Closed Bug 180169 Opened 22 years ago Closed 21 years ago

ASSERTION: RgnRectMemoryAllocator not thread-safe triggers because static class exists past nspr shutdown

Categories

(Core :: Web Painting, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Assigned: timeless)

References

Details

(Keywords: assertion)

Attachments

(1 file)

NTDLL! 77f9f9df()
nsDebug::Assertion(const char * 0x0134dd70 `string', const char * 0x101326c0,
const char * 0x10132698, int 533) line 280 + 13 bytes
NS_CheckThreadSafe(void * 0x002825a0, const char * 0x0134dd70 `string') line 533
+ 34 bytes
RgnRectMemoryAllocator::DestroyLock() line 53 + 30 bytes
RgnRectMemoryAllocator::~RgnRectMemoryAllocator() line 110
$E2() + 13 bytes
_CRT_INIT(void * 0x01320000, unsigned long 0, void * 0x00000001) line 236
_DllMainCRTStartup(void * 0x01320000, unsigned long 0, void * 0x00000001) line
289 + 17 bytes
NTDLL! 77f83c48()
NTDLL! 77f8c4d4()
KERNEL32! 77e9b110()
MSVCRTD! 1020b0c6()
MSVCRTD! 1020afc0()
MSVCRTD! 10214ed0()
MSVCRTD! 10211714()
PR_Assert(const char * 0x3002f098 `string', const char * 0x3002f060 `string',
int 295) line 518
SocketConnectContinue(PRFileDesc * 0x0359faf0, short 1) line 295 + 30 bytes
pl_DefConnectcontinue(PRFileDesc * 0x03582fc8, short 1) line 200 + 23 bytes
PR_ConnectContinue(PRFileDesc * 0x03582fc8, short 1) line 188 + 17 bytes
nsSocketTransport::doConnection(short 1) line 1006 + 21 bytes
nsSocketTransport::Process(short 1) line 542 + 13 bytes
nsSocketTransportService::Run(nsSocketTransportService * const 0x010988d4) line
532 + 13 bytes
nsThread::Main(void * 0x01098348) line 123 + 26 bytes
_PR_NativeRunThread(void * 0x0154cbc0) line 433 + 13 bytes
MSVCRTD! 1020c323()
KERNEL32! 77e92ca8()

Yes I know the stack is strange, the lower stuff is bug 180155. the rest is me
trying to run past nspr shooting mozilla (bug 108157).

abnormal program termination
###!!! ASSERTION: nsCacheSession not thread-safe: 'owningThread ==
NS_CurrentThread()', file i:/build/mozilla/xpcom/glue/nsDebug.cpp, line 533
Break: at file i:/build/mozilla/xpcom/glue/nsDebug.cpp, line 533
###!!! ASSERTION: RgnRectMemoryAllocator not thread-safe: 'owningThread ==
NS_CurrentThread()', file i:/build/mozilla/xpcom/glue/nsDebug.cpp, line 533
Break: at file i:/build/mozilla/xpcom/glue/nsDebug.cpp, line 533
Blocks: 180171
err make that bug 180157
Keywords: assertion
roc, can you think of a place where we could put the region pool as a member of
something rather than using a static?
No.

I think you should just remove the assertion from here:
> void DestroyLock() { NS_ASSERT_OWNINGTHREAD(RgnRectMemoryAllocator); }

We have to assume that shutdown has already stopped all the other threads before
unloading this DLL. Otherwise the whole app is toast anyway.
um, fwiw, TestProtcols + ^C also triggers this assert :)
The assertion will also trigger if PR_Cleanup is actually called by xpcom.
Attachment #122144 - Flags: superreview?(roc+moz)
Attachment #122144 - Flags: review?(dbaron)
.
Assignee: roc+moz → timeless
OS: Windows 2000 → All
Summary: ASSERTION: RgnRectMemoryAllocator not thread-safe → ASSERTION: RgnRectMemoryAllocator not thread-safe triggers because static class exists past nspr shutdown
Comment on attachment 122144 [details] [diff] [review]
Don't call DestroyLock() from destructor

all good
Attachment #122144 - Flags: superreview?(roc+moz)
Attachment #122144 - Flags: superreview+
Attachment #122144 - Flags: review?(dbaron)
Attachment #122144 - Flags: review+
checked in
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: