[SERVER-50103] DBClientCursor doesn't set a socket timeout when using a side connection to send the kill cursor request Created: 04/Aug/20  Updated: 29/Oct/23  Resolved: 09/Oct/20

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.9.0, 4.4.2

Type: Bug Priority: Major - P3
Reporter: Lingzhi Deng Assignee: Samyukta Lanka
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Duplicate
Related
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v4.4
Sprint: Repl 2020-09-07, Repl 2020-09-21, Repl 2020-10-05, Repl 2020-10-19
Participants:

 Description   

When closing an exhaust cursor currently in use, we have this logic in DBClientCursor to use a side connection to send a best-effort kill cursor request. In the implementation of DBClientBase::withConnection_do_not_use, we use a ScopedDbConnection without a socket timeout.



 Comments   
Comment by Githook User [ 22/Oct/20 ]

Author:

{'name': 'Samy Lanka', 'email': 'samy.lanka@mongodb.com', 'username': 'lankas'}

Message: SERVER-50103 Don't send killCursor request for exhaust cursors in DBClientCursor

(cherry picked from commit a5ab1eda7d43aee1f944bb2f1e3734924aa5566c)
Branch: v4.4
https://github.com/mongodb/mongo/commit/4af92e06310df55fb7744556dbf2447d90fa2238

Comment by Githook User [ 09/Oct/20 ]

Author:

{'name': 'Samy Lanka', 'email': 'samy.lanka@mongodb.com', 'username': 'lankas'}

Message: SERVER-50103 Don't send killCursor request for exhaust cursors in DBClientCursor
Branch: master
https://github.com/mongodb/mongo/commit/a5ab1eda7d43aee1f944bb2f1e3734924aa5566c

Comment by Lingzhi Deng [ 05/Aug/20 ]

Yes, as I mentioned in the HELP ticket, I think after SERVER-44700 we dont need to send killCursor. I should have changed the title. (I think I was thinking the title should reflect the bug. But I agree with the solution)

Comment by Mira Carey [ 05/Aug/20 ]

I wonder if it's actually necessary to send the killCursor after https://jira.mongodb.org/browse/SERVER-44700. It seems to me that, at least on 4.4 and later, that we should be able to clean up the server side work entirely by disconnecting from the client side (rather than by sending this disconnect with a socket timeout)

Would you be looking to still send the killCursor because we're hesitant to backport that change?

 

Generated at Thu Feb 08 05:21:44 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.