Closed Bug 113740 Opened 18 years ago Closed 18 years ago

Spinlock-based PR_Stack* can cause hang on Solaris

Categories

(NSPR :: NSPR, defect, P1)

4.1.2
Sun
Solaris
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ruslan, Assigned: wtc)

Details

Attachments

(2 files, 1 obsolete file)

Spinlock-based implementation of PR_StackPop/Push can cause a hang on Solaris. 
When thread that is holding a lock gets descheduled via SIGLWP and goes into 
do_preempt - all other threads trying to access the stack are left in a spinning 
state. For some unknown reason Solaris doesn't seem to give the CPU back to the 
owner of the lock. This is not a priority inversion problem.
Attached patch Proposed patch. (obsolete) — Splinter Review
Ruslan, please review this patch.
I added a reference to this bug in the comment.
Attachment #60667 - Attachment is obsolete: true
Fixed on the NSPRPUB_RELEASE_4_1_BRANCH, NSPRPUB_PRE_4_2_CLIENT_BRANCH,
and the main trunk of NSPR.
Status: NEW → RESOLVED
Closed: 18 years ago
Priority: -- → P1
Resolution: --- → FIXED
Target Milestone: --- → 4.1.3
You need to log in before you can comment on or make changes to this bug.