Summary
GridFS upload streams should refresh their timeouts when aborted.
Motivation
Who is the affected end user?
GridFS users.
How does this affect the end user?
If the user aborts a gridfs upload stream but timeoutMS is nearly exhausted, it is possible that the stream may not get a chance to clean up any chunks already successfully uploaded (this is done with a deleteMany()).
Cursors and sessions refresh their timeoutMS when cleaning up resources. GridFS upload streams should too. This behavior is also likely more important for GridFS streams are also likely more important because unlike cursors and transactions, there is no automatic server or driver process that will delete any orphaned chunks if the driver fails to delete them.
How likely is it that this problem or use case will occur?
unsure.
If the problem does occur, what are the consequences and how severe are they?
The user's database is left in an incorrect state - the driver may have uploaded some chunks of the uploaded file, but never deleted them.
Is this issue urgent?
No.
Is this ticket required by a downstream team?
No.
Is this ticket only for tests?
No.
Acceptance Criteria
Specify that drivers should refresh timeoutMS for the deleteMany() when a gridfs upload stream is aborted.