[SERVER-46031] Race in CurrentOpExhaustCursorTest calling DBClientCursor more() concurrently in two threads Created: 07/Feb/20  Updated: 29/Oct/23  Resolved: 10/Feb/20

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.3.4

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

Issue Links:
Depends
Related
is related to SERVER-45934 Race in ExhaustCursorUpdatesLastKnown... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Repl 2020-02-10, Repl 2020-02-24
Participants:
Linked BF Score: 0

 Description   

Similar to SERVER-45934, since DBClientCursor APIs are not thread safe, calling DBClientCursor::more concurrently in two different threads can race in setting private members. In particular, one thread can set cursorId to 0 during dataReceived while the other thread checking the cursorId in more(). Thus, in CurrentOpExhaustCursorTest, runOneGetMore can race with the startExhaustQuery thread on calling more(), resulting in false positive failures.



 Comments   
Comment by Githook User [ 07/Feb/20 ]

Author:

{'username': 'ldennis', 'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com'}

Message: SERVER-46031: CurrentOpExhaustCursorTest should not call DBClientCursor::more concurrentlt
Branch: master
https://github.com/mongodb/mongo/commit/1d0eac80c06f6fabdccaaa77d985f283192f94a9

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