Project

General

Profile

Actions

Bug #884

closed

sessiond sends a "disable event" command to agents for each event, enabled or not, on session destroy

Added by Philippe Proulx about 9 years ago. Updated over 8 years ago.

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:

  1. create session A [ref count = 0, will not call tracepoint()]
  2. session A: enable event E for domain D [ref count = 1, will call tracepoint()]
  3. create session B [ref count = 1]
  4. session B: enable event E for domain D [ref count = 2]
  5. session B: disable event E for domain D [ref count = 1]
  6. session B: destroy [ref count = 0, will not call tracepoint()]
  7. session A: start
  8. ...
  9. 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

Also available in: Atom PDF