To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=93051





------- Additional comments from [EMAIL PROTECTED] Thu Aug 28 10:54:22 +0000 
2008 -------
So - a little more analysis; I imagine that the deadlock has always been there,
but perhaps masked by the previous, more granular locking: you would have had to
be writing the same piece of the tree that an activating component was wanting
to read from previously to trigger it; now any write has the effect. IMHO the
solution is not more granular locking to re-conceal the problem however.

Perhaps I'm mis-understanding something, is it the case that the UnsafeBridge
mutex is part of the new Kay Ramme threading framework ? if so, is it the case
that almost whenever an UNO method is invoked on some code, that this lock is
taken ?

eg. if the configmgr wants to use the ServiceManager to instantiate a new
service - then this code is deemed not-thread-safe, and thus the one-big-mutex
is taken ?

If so - we need to put configmgr inside that same appartment; since clearly it
uses components outside it's scope and visibility to do (eg.) I/O - or even
simple things like activating a service ;-)

Of course, we can still leave the UnoApiLock construct against a time when the
subsystems that configmgr relies on are thread-safe: the service manager, the
explicit external services we use are:

com.sun.star.io.DataOutputStream
com.sun.star.xml.sax.Writer
com.sun.star.script.Converter
com.sun.star.comp.stoc.OServiceManagerWrapper

none of which looks like it should be too horrific. Presumably things like the
UCB and sax code are still viewed as thread-safe & not in the global apartment ?

Ultimately - it's a simple lock ordering problem as Stefan points out. Code we
call assumes that this UnsafeBridge mutex can be taken, but we have the
UnoApiLock; while other code assumes that the UnsafeBridge mutex is already held
and that we can then take the UnoApiLock. Ultimately IMHO, the best fix is to
make these locks truly independent by killing all takes of the UnsafeBridge
mutex in the (fairly basic surely) code that configmgr itself uses.

Kay ?

---------------------------------------------------------------------
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]

Reply via email to