[rfc][icedtea-web] Fix for PR1157: Applets can hang browser after fatal exception
Jiri Vanek
jvanek at redhat.com
Wed Feb 27 23:59:39 PST 2013
On 02/27/2013 09:17 PM, Adam Domurad wrote:
> 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
Sure!
IIRC, there were several more fixes marked as "push to head, wait few days, then backport"
Mostly your small, but valuable classlaoder ones. If you will have time to get gatehr them and backport, it would be nice (but not necessary)
Thanx for keeping an eye on it
J.
More information about the distro-pkg-dev
mailing list