Actions
Bug #884
closedsessiond sends a "disable event" command to agents for each event, enabled or not, on session destroy
Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
03/31/2015
Due date:
% Done:
100%
Estimated time:
Description
When a session is destroyed, the session daemon sends a "disable event" command to all the agents, for each event, enabled or not.
This is problematic because agents typically keep a reference count of enabled events so that they may avoid calling the UST tracepoint when it's not necessary (when the ref count is 0). With this bug, the following situation can happen:
- create session A [ref count = 0, will not call
tracepoint()
] - session A: enable event E for domain D [ref count = 1, will call
tracepoint()
] - create session B [ref count = 1]
- session B: enable event E for domain D [ref count = 2]
- session B: disable event E for domain D [ref count = 1]
- session B: destroy [ref count = 0, will not call
tracepoint()
] - session A: start
- ...
- session A: stop
The double-disable in session B makes the agent's internal reference count go back to 0, which disables the calls to tracepoint()
. This results in session A having no recorded events E, even if they occured and event E was still enabled.
Files
Actions