Closed Bug 334523 Opened 18 years ago Closed 18 years ago

[branch only] deadlock in nsObserverList::RemoveObserver

Categories

(Core :: XPCOM, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla1.8.1

People

(Reporter: darin.moz, Assigned: darin.moz)

Details

(Keywords: fixed1.8.0.4, fixed1.8.1)

Attachments

(2 files)

Possible deadlock in nsObserverList::RemoveObserver

If RemoveObserver results in an observer being destroyed, then that could result in another call to RemoveObserver, which will dead-lock trying to acquire nsObserverList::mLock.  This is not a bug on the trunk because mLock has been removed.

The simple solution is to insert a kungFuDeathGrip.
Attached patch v1 patchSplinter Review
Attachment #218885 - Flags: review?(benjamin)
Attached file stack showing deadlock
Status: NEW → ASSIGNED
Flags: blocking1.8.1?
Flags: blocking1.8.0.3?
Summary: [branch only] possible deadlock in nsObserverList::RemoveObserver → [branch only] deadlock in nsObserverList::RemoveObserver
Target Milestone: --- → mozilla1.8.1
Attachment #218885 - Flags: review?(benjamin) → review+
Comment on attachment 218885 [details] [diff] [review]
v1 patch

Actually, I meant to request 1.8.1 approval too.  This is 1.8 branch only.
Attachment #218885 - Flags: approval1.8.0.3?
Attachment #218885 - Flags: approval-branch-1.8.1?(benjamin)
Comment on attachment 218885 [details] [diff] [review]
v1 patch

Yeah, me too ;-)
Attachment #218885 - Flags: approval-branch-1.8.1?(benjamin) → approval-branch-1.8.1+
fixed1.8.1
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Keywords: fixed1.8.1
Resolution: --- → FIXED
Flags: blocking1.8.1?
Flags: blocking1.8.1+
Flags: blocking1.8.0.3?
Flags: blocking1.8.0.3+
Comment on attachment 218885 [details] [diff] [review]
v1 patch

approved for 1.8.0 branch, a=dveditz for drivers
Attachment #218885 - Flags: approval1.8.0.3? → approval1.8.0.3+
fixed1.8.0.4
Keywords: fixed1.8.0.4
please provide guidance on how to verify this fix on the 180 branch
You need to log in before you can comment on or make changes to this bug.