Operational Defect Database

BugZero found this defect 340 days ago.

MongoDB | 2368448

AsyncRequestsSender should return final inconclusive error if it exhausts its retries

Last update date:

3/13/2024

Affected products:

MongoDB Server

Affected releases:

No affected releases provided.

Fixed releases:

No fixed releases provided.

Description:

Info

The AsyncRequestsSender (ARS) will retry remote requests according to the retry policy its given up to 3 times and will return the final attempt's response if it exhausts this retry limit. For retrying, it considers top-level command errors and write concern errors the same. Some retriable errors mean a write definitely didn't occur for that attempt (like a NotWritablePrimary command error), and others are inconclusive (like a network error or a retryable write concern error). This behavior means the ARS may receive an inconclusive error on some attempt, retry until exhausting retries, then return a definitive error, leading a higher layer client to believe the write definitively did not occur, when it may have. A possible fix is for the ARS to remember if it receives an inconclusive response during its retries and return the final inclusive error it has seen (if there was one), instead of whatever the most recent attempt failed with. This is essentially a subset of SERVER-69295 without mongos also returning the NoWritesPerformed error label.

Top User Comments


Steps to Reproduce


Additional Resources / Links

Share:

BugZero® Risk Score

What's this?

Coming soon

Status

Open

Learn More

Search:

...