-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
There are some operations that the driver implements which the server does not support retrying writes for, such as update_many and delete_many. In these methods the driver unconditionally requests legacy retryable write logic instead of requesting the modern retryable writes. What happens then is the legacy logic is able to retry because the max_retry_writes remains at 1, when the correct behavior probably is to not retry.
The simplest solution here is perhaps to add another method on top of legacy_write_with_retry which will not retry if retry_writes is true, otherwise delegate to legacy_write_with_retry.