-
-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Match rules leak when using addSigHandler/removeSigHandler #76
Comments
I changed the Please test and report back. |
Thank you very much. I've tested the changes in my environment and can no longer reproduce the exceptions. |
Great! I was facing the same issue. Will there be a new release any time soon? |
I don't think that I'll create a new release in the near future as version 3.2.0 has been released recently and this is the first and only bugfix since release. My plan is to wait at least until the end of the year or maybe until mid/end of January 2020. |
Ok, understandable...no problem |
In the DBusConnection class, the method addSigHandler (line 875) adds a match rule to the DBus interface by calling AddMatch unconditionally and puts the handler to the internal map used to keep track of the signal handlers.
The method removeSigHandler (line 779) removes the signal handler from the internal map, but only calls RemoveMatch on the DBus interface if no other handler is in the map which matches the same SignalTuple.
This asymmetry causes a match rule leak when adding and removing multiple signal handlers which result in the same SignalTuple value.
In my case, the application adds and removes handlers depending on state information. After some time, adding new match rules will fail because the maximum number of allowed rules is reached.
The text was updated successfully, but these errors were encountered: