[SERVER-25572] Fix ASAN clean shutdown logic Created: 11/Aug/16  Updated: 02/Sep/16  Resolved: 23/Aug/16

Status: Closed
Project: Core Server
Component/s: Networking
Affects Version/s: 3.3.10
Fix Version/s: 3.3.12

Type: Bug Priority: Major - P3
Reporter: Mira Carey Assignee: Mira Carey
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

./buildscripts/resmoke.py --executor sharding_jscore_passthrough jstests/core/all.js # or anything else that isn't blacklisted.

  1. Watch and see that it takes a full 10 seconds before the fixture comes down because a connection is live in shutdown
Sprint: Platforms 2016-08-26
Participants:
Linked BF Score: 0

 Description   

During shutdown a number of things are currently happening that shouldn't be:

1. The legacy transport layer is failing to actually close sockets in closeAll. It's doing this because the default argument to closeAll is to leave all sockets open on the legacy transport layer (versus to close them on the actual interface header).

2. The thing we're checking for in shutdown is wrong. It's just that we've left recv in all db workers, rather than that we've left all client workers (so ASAN is occasionally unhappy about "leaks")

3. Tests rely on external callers to close sockets. when this contract changes, we take an extra 10 seconds to shut down every mongod, making some tests time out.

Fix this by adding a counter for actual live workers, so we can track when it's safe to shutdown correctly. Also fix the typo



 Comments   
Comment by Githook User [ 23/Aug/16 ]

Author:

{u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}

Message: SERVER-25572 Fix ASAN clean shutdown logic

During shutdown a number of things are currently happening that shouldn't be:

1. The legacy transport layer is failing to actually close sockets in closeAll. It's doing this
because the default argument to closeAll is to leave all sockets open on the legacy transport layer
(versus to close them on the actual interface header).

2. The thing we're checking for in shutdown is wrong. It's just that we've left recv in all db
workers, rather than that we've left all client workers (so ASAN is occasionally unhappy about
"leaks")

3. Tests rely on external callers to close sockets. when this contract changes, we take an extra 10
seconds to shut down every mongod, making some tests time out.

Fix this by adding a counter for actual live workers, so we can track when it's safe to shutdown
correctly. Also fix the typo
Branch: master
https://github.com/mongodb/mongo/commit/07020e0b0cadf1639824f985a3ae6ce09d4c5ee8

Comment by Daniel Pasette (Inactive) [ 17/Aug/16 ]

how many build failures are blocked on this issue?

Generated at Thu Feb 08 04:09:35 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.