[rfc][icedtea-web] Fix for PR1157: Applets can hang browser after fatal exception
Adam Domurad
adomurad at redhat.com
Wed Feb 27 12:17:21 PST 2013
On 01/28/2013 06:40 AM, Jiri Vanek wrote:
> On 01/25/2013 04:56 PM, Adam Domurad wrote:
>> This one was took quite some effort to track down. Essentially
>> because Firefox does not hold our plugin out-of-process we can
>> potentially hang the browser if we are not careful.
>>
>> The issue is explained in comment in patch file PR1157.patch.
>> Basically there was a long timeout in
>> PluginAppletViewer.waitForAppletInit. It was supposed to 'wake up'
>> when an applet dispatched an event signifying it completed loading,
>> but it was not happening in the case of a fatal exception.
>>
>> No automated reproducer yet, but I believe this patch is simple
>> enough that it can go in before one.
>>
>> I have added a 'reproducing catalyst' -- pseudo-reproducer.patch.
>> This is NOT a patch intended to go into ITW HEAD. With this patch the
>> worker pool consists of one thread effectively, so the hanging
>> manifests itself very easily. Confirming the patch works with this
>> goes as follow:
>> 1. Apply pseudo-reproducer.patch to HEAD
>> 2. Run
>> http://jogamp.org/deployment/jogamp-current/jogl-applet-runner-newt-gears-normal-napplet.html
>> and refresh. Firefox should hang, or at least display bizarre behaviour.
>> --- this is nothing special - just a failing (ATM) applet
>> 3. Apply PR1157.patch on top
>> 4. Run the same page and refresh, Firefox should work fine.
>>
>> ChangeLog for PR1157.patch:
>> 2013-XX-XX Adam Domurad <adomurad at redhat.com>
>>
>> Fix PR1157: Applets can hang browser after fatal exception
>> * NEWS: Add entry for PR1157
>> * netx/net/sourceforge/jnlp/NetxPanel.java
>> (runLoader): Move dispatchAppletEvent into a 'finally' block.
>
> Although I have still some troubles on my old HW with f14, jdk6, it
> behaves much better and I'm for this one asap:)
> It would be nice to try deepak and his sometimes freezing machine to try.
>
> As you told, no special reproducer needed, this is tested by all
> reprodcuers which throws lunchError. The only lines to be added is
> some tests that FF have not deadlocked after this. I have this on
> todo, and I will add later.
>
> Ok. for head.
>
> J.
I would like this to be considered for backporting to 1.2 & 1.3. There
is considerable benefit for stability, and if we push the unsigned
applet confirmation it will rely on launcherrors.
Happy hacking,
-Adam
More information about the distro-pkg-dev
mailing list