[SERVER-37992] Exchange may deadlock when consumers do not exhaust their input cursors. Created: 07/Nov/18  Updated: 29/Oct/23  Resolved: 21/Nov/18

Status: Closed
Project: Core Server
Component/s: Aggregation Framework
Affects Version/s: None
Fix Version/s: 4.1.6

Type: Bug Priority: Major - P3
Reporter: Martin Neupauer Assignee: Martin Neupauer
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

Exc

Sprint: Query 2018-12-03
Participants:

 Description   

Once any one consumer has stopped consuming results from an exchange (AKA it has called Exchange::dispose()), it's possible for any other consumer to hang indefinitely, since it would possibly need to wait for that consumer to consume the results in its buffer.



 Comments   
Comment by Githook User [ 21/Nov/18 ]

Author:

{'name': 'Martin Neupauer', 'email': 'martin.neupauer@mongodb.com', 'username': 'MartinNeupauer'}

Message: SERVER-37992 Exchange may deadlock when consumers do not exhaust their input cursors.
Branch: master
https://github.com/mongodb/mongo/commit/756f8e070b5fbf6728ecefbd625601f3dd7e75a0

Comment by Ian Whalen (Inactive) [ 09/Nov/18 ]

a related improvement would be to have an exchange consumer waiting on the condition variable able to be killed.

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