[SERVER-78632] Exception in QuerySettingsManager lock acquisition triggers server crash Created: 03/Jul/23  Updated: 29/Oct/23  Resolved: 13/Jul/23

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

Type: Bug Priority: Major - P3
Reporter: Ian Boros Assignee: Denis Grebennicov
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Problem/Incident
is caused by SERVER-77077 Implement QuerySettingsManager Closed
Related
is related to SERVER-78026 Make ClusterServerParameter base clas... Open
Assigned Teams:
Query Execution
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: QE 2023-07-24
Participants:
Linked BF Score: 130

 Description   

 This lock acquisition may throw. Furthermore, this function is called from the ClusterServerParameterRefresher thread, which does not seem to catch DBExceptions. When the lock acquisition does throw, (e.g. an unfortunately timed shutdown), std::terminate() is called crashing the entire server. The only manifestation of this issue in our testing has been shutdown, but it may be possible to trip this in other ways.



 Comments   
Comment by Githook User [ 13/Jul/23 ]

Author:

{'name': 'Denis Grebennicov', 'email': 'denis.grebennicov@mongodb.com', 'username': 'denis631'}

Message: SERVER-78632 Exception in QuerySettingsManager lock acquisition triggers server crash
Branch: master
https://github.com/mongodb/mongo/commit/8419308760004bac772062335af22e4252c9af49

Comment by Ian Boros [ 03/Jul/23 ]

It's not clear to me whether this should be dealt with per-parameter, or if the refreshing code should have a generic way to handle exceptions on this path. I've tried to phrase the ticket in a way that doesn't imply one way or the other (or neither) is the correct solution.

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