[REVIEW-3-5] Better fix for ThreadPool/ORequestThread life cycle
Stephan Bergmann
sbergman at redhat.com
Wed May 23 05:33:14 PDT 2012
On 05/19/2012 09:57 PM, Caolán McNamara wrote:
> On Fri, 2012-05-18 at 23:04 +0200, Stephan Bergmann wrote:
>> I'd like to get this reviewed and backported to libreoffice-3-5. As
>> the commit message explains, only part of it is strictly necessary to
>> fix the bug, so
>
> fair enough, won't pretend to understand area fully, but pushed anyway.
> I do recall there was some semi-reproducible crash/hang scenario in the
> past which could be replicated by effectively
> for (i = 0; i< 10000; ++i) unopkg add XXX, unopkg remove XXX;
...yeah, now that you mentioned that, I remembered how fine a test case
that was. Only to find out that this "fix" was fundamentally
flawed---see commit message of
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=2fa2660b55a34a5780f9ea8dbbbe92d05dc9a818>
"Better fix for ThreadPool/ORequestThread life cycle" for details.
With this second fix, however, calling unopkg add/remove of active.oxt
and passive.oxt (from desktop/test/deployment/) in a tight loop revealed
no anomalies any longer, on neither master nor libreoffice-3-5 (and on
master, I let it burn cycles all night long; the only problem it
revealed was sporadic crashes from within pyuno::GCThread::execute while
main thread is already exiting---a known problem, to be addressed
separately, eventually).
So, please somebody review this additional fix and backport it to
libreoffice-3-5. As the master commit would not cleanly apply to
libreoffice-3-5, I attached an adapted
0001-Better-fix-for-ThreadPool-ORequestThread-life-cycle.patch.
Thanks,
Stephan
More information about the LibreOffice
mailing list