[SERVER-71440] Remove OpCtx::setIgnoreInterruptsExceptForReplStateChange Created: 17/Nov/22  Updated: 23/Jan/24  Resolved: 27/Jan/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.3.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Jordi Olivares Provencio Assignee: Steve Tarzia
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
is caused by SERVER-57469 Return partial results from subset of... Closed
Related
related to SERVER-59673 Investigate better solutions for fixi... Closed
is related to SERVER-85593 Remove unused _killRequestedForReplSt... Closed
Backwards Compatibility: Fully Compatible
Sprint: QE 2023-02-06
Participants:

 Description   

As part of SERVER-59673 we wanted to remove the method as it is a layering violation. OpCtx shouldn't have replication specifics members.



 Comments   
Comment by Githook User [ 27/Jan/23 ]

Author:

{'name': 'Steve Tarzia', 'email': 'steve.tarzia@mongodb.com', 'username': 'starzia'}

Message: SERVER-71440 Remove OpCtx::setIgnoreInterruptsExceptForReplStateChange
Branch: master
https://github.com/mongodb/mongo/commit/212db59da7d7c745acbb7c038b16f714b8ca7bbe

Comment by Steve Tarzia [ 17/Jan/23 ]

Thanks for the feedback, jordi.olivares-provencio@mongodb.com. I updated the PR to avoid making the operation uninterruptible:
https://github.com/10gen/mongo/pull/9596

It's a little more complicated, but based on your feedback, it seems like a safer approach. I also removed OpCtx:: setIgnoreInterruptsExceptForReplStateChange, as you requested.

Can you review the OpCtx parts of that PR?

Comment by Steve Tarzia [ 22/Dec/22 ]

I have this branch with a solution that seems to work:
https://github.com/10gen/mongo/compare/starzia/SERVER-71440-run-with-deadline

I'll come back to this after the holidays.

Comment by Steve Tarzia [ 05/Dec/22 ]

Update from last week:

OpCtx artificial deadlines seem to be a much cleaner way to handle this use case.  An artificial deadline can be created with opCtx->runWithDeadline() which pushes an artificial deadline onto the opCtx via a DeadlineGuard.  I will look into this approach next, but it's not my highest priority right now and may not have time to look at this again in this sprint.

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