Opened 13 years ago

Closed 13 years ago

#15312 closed (invalid)

dispatch signals may be skipped

Reported by: zac256@… Owned by: nobody
Component: Uncategorized Version: 1.2
Severity: Keywords: bug, dispatcher, dispatch, signal, garbage collection
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Because in dispatch.dispatcher.py _live_receivers does not acquire the lock that _remove_receiver does it is possible for the iteration over self.receivers to skip items. This is possible even without threading because _remove_receiver can be called as a result of garbage collection.

The fix is simple: acquire self.lock around the iteration over self.receivers in _live_receivers

Change History (1)

comment:1 by Russell Keith-Magee, 13 years ago

Resolution: invalid
Status: newclosed

When you're describing a subtle locking problem, vague hand waving about "_live_receivers does not acquire the lock" isn't even remotely helpful. A bug report needs to include *specific* instructions that allow another person to reproduce a problem.

Marking invalid. If you care to provide a patch, a piece of sample code that demonstrates the problem, or a *specific* set of instructions for the conditions under which the problem can be reproduced, please reopen.

Note: See TracTickets for help on using tickets.
Back to Top