[SERVER-57229] killOp_against_journal_flusher_thread.js must ensure the JournalFlusher doesn't reset the opCtx between finding the opId and running killOp Created: 26/May/21  Updated: 29/Oct/23  Resolved: 03/Jun/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0.4, 5.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: Dianna Hohensee (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Related
related to SERVER-79810 make JournalFlusher::waitForJournalFl... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v5.0
Sprint: Execution Team 2021-06-14
Participants:
Linked BF Score: 23

 Description   

it's possible for the JournalFlusher to miss the killOp interrupt by timing the opCtx reset right: the killOp marks the JournalFlusher's opCtx killed, but then the JournalFlusher resets the opCtx and never throws the expected error.

The opId that the test fetches via currentOp is associated with the JournalFlusher's opCtx at that moment, and then the opCtx has changed by the time that the test tries to kill the journal flusher thread via killOp. It's a small window of time.

The test sets the JournalFlusher interval (how frequently it runs) to 500 ms. We could decrease the frequency (higher interval), but then we also need the run the JournalFlusher to run in order to get that error thrown.

I recommend a new FAILPOINT, to stop the JournalFlusher before the currentOp and then release it after the killOp is sent.



 Comments   
Comment by Vivian Ge (Inactive) [ 06/Oct/21 ]

Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it’s been triggered. For more active release information, please keep an eye on #server-release. Thank you!

Comment by Githook User [ 27/Sep/21 ]

Author:

{'name': 'Dianna Hohensee', 'email': 'dianna.hohensee@mongodb.com', 'username': 'DiannaHohensee'}

Message: SERVER-57229 killOp_against_journal_flusher_thread.js must ensure the JournalFlusher doesn't reset
the opCtx between finding the opId and running killOp

(cherry picked from commit 30d51c7a49a118805a78a1e8be70c6576f46569e)
Branch: v5.0
https://github.com/mongodb/mongo/commit/42f9f06863b747d52728d299ef32124a5e71c47e

Comment by Githook User [ 03/Jun/21 ]

Author:

{'name': 'Dianna Hohensee', 'email': 'dianna.hohensee@mongodb.com', 'username': 'DiannaHohensee'}

Message: SERVER-57229 killOp_against_journal_flusher_thread.js must ensure the JournalFlusher doesn't reset
the opCtx between finding the opId and running killOp
Branch: master
https://github.com/mongodb/mongo/commit/30d51c7a49a118805a78a1e8be70c6576f46569e

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