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





------- Additional comments from [email protected] Fri Jul 16 06:07:40 
+0000 2010 -------
The attached patch fixes the problem.

My findings: If a remote process dies during a remote call, the code in
JobQueue::enter() breaks the loop if the first callstack entry is 0 (comment
says disposed!).
However, in this situation the m_cndWait condition variable may still be 
signaled.

The next remote call (to a different process) that reuses this JobQueue now runs
into a race condition: m_cndWait is still signalled, but the remote response
hasn't arrived yet. JobQueue::enter() will find condition variable signaled, but
will find the m_lstJob lits empty. It walks over the assertion !m_lstJob.empty()
and finally returns 0, which causes the caller to not clear its exception 
variable.

Additionally, I found that ClientJob::m_bExceptionOccured isn't initialized in
the constructor (this made debugging hard...).

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