To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=113979 Issue #|113979 Summary|getUnloadingMutex() uses already destructed object dur |ing process exit Component|porting Version|DEV300m86 Platform|Opteron/x86_64 URL| OS/Version|Linux Status|UNCONFIRMED Status whiteboard| Keywords| Resolution| Issue type|DEFECT Priority|P3 Subcomponent|code Assigned to|mh Reported by|olistraub
------- Additional comments from [email protected] Thu Aug 19 09:18:22 +0000 2010 ------- While debugging a deadlock during process shutdown, we found out the following: -the process being exited still had a Reference<> to an object in another process as static variable -__cxa_finalizers are currently running, and have already destroyed the static mutex within the getUnloadingMutex() function (in unload.cxx) -__cxa_finalizer now destroys the static Reference<> object, causing an infinite hang when locking the unloading mutex, since it was already destroyed. In sal/osl/unx/mutex.c, the osl_getGlobalMutex had the same problem. It was fixed by using pthread_once to initialize the mutex without ever destroying it. We should do this here too, or allocate the unloading mutex on the heap (causing a memory leak, but no hang). --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
