Manually close AMQP sockets upon stopping event catcher #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With this commit we address a bugs that exist in qpid_proton gem that abruptly closed connections are leaking file descriptors. When AMQP connection is closed abruptly it results in TCP socket remaining open in CLOSE_WAIT state, which means file descriptor is not released:
After period of time (9 hours in our case) there are enough file descriptors open for
operating system to yield:
This is a bug in qpid_proton gem as reported here: https://issues.apache.org/jira/browse/PROTON-1791 Until it gets resolved, we're introducing a workaround for it with this commit. Basically we capture socket references and manually close them upon closing AMQP connection.
We also add some more debug logging to the messaging handler with this commit to be able to debug why connection is even being closed abruptly.
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1554771
@miq-bot assign @juliancheal
@miq-bot add_label enhancement,gaprindashvili/yes