[CDRIVER-3325] Recovery token is not tracked when running bulk writes Created: 19/Aug/19 Updated: 22/Aug/19 Resolved: 22/Aug/19 |
|
| Status: | Closed |
| Project: | C Driver |
| Component/s: | None |
| Affects Version/s: | 1.15.0 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Andreas Braun | Assignee: | Clyde Bazile III (Inactive) |
| Resolution: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
The recovery token used for sharded transactions is tracked in mongoc_cluster_run_command_monitored, but this function isn't called when executing a bulk write. Recovery token tracking also needs to happen in _mongoc_write_command_execute. Note: I haven't checked whether other places need to track a recovery token, I merely found this instance because the PHP driver uses bulk writes even for single inserts, which caused our spec tests to fail due to the missing token. |
| Comments |
| Comment by Andreas Braun [ 22/Aug/19 ] |
|
Taking a deeper look at the code, you're right. I also can't reproduce the original failure (I experienced this while testing mongos session pinning for sharded transactions), so I'll just close this as "Cannot Reproduce". Sorry for the noise. |