[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

FUTEX_WAIT java - was iceweasel javaplugin



On 2009-12-11, Alan Greenberger <alanjg@ptd.net> wrote:
> I am experiencing strange behavior of the sun java6 plugin in iceweasel
> on a Lenny installation.
>  iceweasel       3.0.6-3
>  sun-java6-plugin 6-12-1 (/etc/alternatives/iceweasel-javaplugin.so ->
>                       /usr/lib/jvm/java-6-sun/jre/lib/i386/libnpjp2.so)
> Tested with http://www.java.com/en/download/help/testvm.xml or other
> applets gives the spinning pattern for about THREE MINUTES until the
> applet suddenly starts.  On the same box, konqueror starts the applets
> quickly.  I copied an applet from the internet which exhibits the slow
> start.  When iceweasel accesses it from the disk, it starts quickly.  On
> another Lenny box with the same versions, the applets start quickly from
> iceweasel.
> 
> I have tried purging java and reinstalling.  I don't see anything
> obvious using wireshark and strace.  I get the same result under a new
> user id without previous iceweasel use.
> 
> The slow system was not a fresh install, but was upgraded.  I suspect
> there is some inherited setting somewhere causing this.  Does anyone
This theory was wrong, see below.
> have a clue?  A java debug technique?

New information:
I have a java application that worked fine under Sarge, but on Lenny in
March would not print.  /var/log/cups/error_log would immediately get
complaints about no %BoundingBox or %%PAGES in header.  Same for trying
to print from /usr/share/doc/sun-java6-jdk/demo/jfc/Font2DTest.  I
believe this is a known fight between java and ghostscript.  I tried
again and now it just hung until I killed the process with no error
message.  Then I thought, "what if I leave it for three minutes"?  It
then brought up the printer GUI and when the print button was pressed,
got the error message!

Next I downloaded a trivial java test program from
http://freemind.sourceforge.net/wiki/index.php/FreeMind_on_Linux
 javac  DummyPrinter.java
 strace java DummyPrinter
It hangs with:
 futex(0xb7d6cbd8, FUTEX_WAIT, 1992, NULL
After three minutes, it brings up the printer GUI.  When the print
button is pressed, it completes the trace line as:
futex(0xb7d6cbd8, FUTEX_WAIT, 1992, NULL) = ? ERESTARTSYS (To be restarted)
The fourth argument of NULL is telling it to wait forever. Now I think
a kernel (2.6.26-1-686) watchdog may be timing it out.

Then I grepped other traces for 'FUTEX_WAIT,' .
slow system iceweasel:
futex(0xb444dbd8, FUTEX_WAIT, 16372, NULL) = -1 EAGAIN (Resource temporarily
 unavailable)
fast system iceweasel:
futex(0xb3affbd8, FUTEX_WAIT, 3411, NULL) = 0

slow system konqueror, which responded quickly, did not have FUTEX_WAIT.
It did have FUTEX_WAKE_PRIVATE.

So it is a java futex problem always showing up on printing and
triggered by iceweasel but not konqueror.  It wasn't happening on
Lenny-slow in March.  Does anyone have an idea what I could have done to
this system to cause the FUTEX_WAIT problem with java to appear?


Reply to: