[SERVER-45117] Guard NetworkInterfaceTL::setAlarm() more aggressively Created: 12/Dec/19  Updated: 29/Oct/23  Resolved: 27/Feb/20

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

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

Issue Links:
Backports
Depends
Problem/Incident
Related
related to SERVER-43606 Enforce connection reuse in response ... Closed
is related to SERVER-46419 Expand AlarmScheduler to work with Re... Closed
Backwards Compatibility: Fully Compatible
Sprint: Service Arch 2019-12-30, Service Arch 2020-01-13, Service Arch 2020-01-27, Service Arch 2020-02-10, Service Arch 2020-02-24, Service Arch 2020-03-09
Participants:
Linked BF Score: 84

 Description   

NITL shutdown is a one way process, but ASIOReactors don't properly shutdown, they only interrupt. We should destroy the reactors to break the promises of any remaining work.



 Comments   
Comment by Githook User [ 28/Apr/20 ]

Author:

{'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}

Message: SERVER-45117 SERVER-47351 SERVER-47507 Guard NetworkInterfaceTL shutdown for alarms and commands

These three tickets were originally committed separately to v4.4 and
master. However, they build upon each other to throughly shutdown our
NetworkInterfaces upon shutdown.
Branch: v4.2
https://github.com/mongodb/mongo/commit/00b2ba7b26021582bf5d26adb2223568d3362fe9

Comment by Githook User [ 27/Feb/20 ]

Author:

{'name': 'Louis Williams', 'username': 'louiswilliams', 'email': 'louis.williams@mongodb.com'}

Message: SERVER-45117 template AlarmState weak_ptr
Branch: master
https://github.com/mongodb/mongo/commit/20657a8a6e9d2ed4df9fd8fa3f8c54d12907761f

Comment by Benjamin Caimano (Inactive) [ 27/Feb/20 ]

It turns out that full destruction was too intrusive. I've sprinkled guard flags aggressively.

Comment by Githook User [ 26/Feb/20 ]

Author:

{'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}

Message: SERVER-45117 Guard NetworkInterfaceTL::setAlarm() more aggressively

The underlying issue is that NetworkInterfaceTL::_state and
NetworkInterfaceTL::_inProgressMutex do not synchronize with each other.
This is at best a temporary fix. Reasoning about alarm ordering in the
context of the NetworkInterface itself is messy. This approximates what
a proper composible AlarmScheudler type looks like. Hopefully, there
will be more consistent work under SERVER-46419.
Branch: master
https://github.com/mongodb/mongo/commit/57f6385025adf630a410f9d658f61b5afd140121

Comment by Benjamin Caimano (Inactive) [ 24/Feb/20 ]

In a modified form, sure. I'll prioritize it this week.

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