JDK-6725592 : scengraph demo applets fails to load using Kernel JRE due to heart beat no replay.
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows
  • CPU: x86
  • Submitted: 2008-07-14
  • Updated: 2011-02-12
  • Resolved: 2011-02-12
Related Reports
Relates :  
Description
SceneGraph Demo applets fails to load using Kernel JRE due to no heat beat reply.
I think we need to increase the heart reply timeout.

Steps to reproduce:
Install Kernel JRE ( make sure that BackgroundDownloader is off)
set JPI_PLUGIN2_DEBUG=1  (for debugging)
<IEXPLORE.EXE> https://scenegraph-demos.dev.java.net/demo-applets.html

Applet is not even loading - Plugin2 throws various exceptions. It is due to heart beat reply. 

First time while loading I got this exception :  (in debug window)
Reusing JVM instance with product version 1.6.0.10.rc; best available product ve
rsion 1.6.0.10.rc
JVMManager reusing JVMInstance for product version 1.6.0.10.rc
JVMInstance for 1.6.0.10.rc sending start applet message
  isRelaunch: false
  Parameters:
    demo.classname=demo.dynamic.DynamicDemo
    jnlp_href=scenario-applet.jnlp
    height=380
    java_arguments=-Xmx128m
    width=380
    code=CompatibilityApplet
    archive=CompatibilityApplet.jar
    java_version=1.6.0_10
    codebase=http://download.java.net/javadesktop/plugin2/scenegraph/
JVMManager: applet launch (ID [AppletID 6]) succeeded
  Received applet ID [AppletID 6]
IExplorerPlugin.SetObjectRects(cAxControl = 0x2114c68, left = 380, right = 580,
top = 252, bottom = 452)
IExplorerPlugin.SetObjectRects(cAxControl = 0x59249a0, left = 977, right = 1217,
 top = 252, bottom = 582)
IExplorerPlugin.SetObjectRects(cAxControl = 0x597eb10, left = 320, right = 640,
top = 620, bottom = 1120)
IExplorerPlugin.SetObjectRects(cAxControl = 0x6300f28, left = 897, right = 1297,
 top = 620, bottom = 1020)
JVMInstance for 1.6.0.10.rc killing sub-process because of no heartbeat reply
Terminating Java Plug-In Pipe Worker Thread (Server-Side) due to exception:
java.io.IOException: Error 0 reading from named pipe, numRead 0, ReadFile ts: 4182132613, now ts: 4183907204, dT 1774591
JVM instance for 1.6.0.10.rc exited
  LiveConnectSupport.shutdown(1)
        at sun.plugin2.ipc.windows.WindowsNamedPipe.read(Unknown Source)
  LiveConnectSupport.shutdown(2)
        at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.read(Unknown Source)  LiveConnectSupport.shutdown(3)

  LiveConnectSupport.shutdown(4)
        at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.readByte(Unknown Source)  
  LiveConnectSupport.shutdown(5)

  LiveConnectSupport.shutdown(6)        
        at sun.plugin2.message.AbstractSerializer.readInt(Unknown Source)
        at sun.plugin2.message.transport.SerializingTransport.read(Unknown Source)
        at sun.plugin2.message.Pipe$WorkerThread.run(Unknown Source)
java.lang.InterruptedException
        at java.lang.Object.wait(Native Method)
        at sun.plugin2.message.Queue.waitForMessage(Unknown Source)
        at sun.plugin2.message.Pipe.receive(Unknown Source)
        at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)

Second time while loading I got again another exception  reason is same no heart beat reply. 
JVMInstance for 1.6.0.10.rc killing sub-process because of no heartbeat reply
JVM instance for 1.6.0.10.rc exited
  LiveConnectSupport.shutdown(1)
  LiveConnectSupport.shutdown(2)
  LiveConnectSupport.shutdown(3)java.lang.InterruptedException

  LiveConnectSupport.shutdown(4)
        at java.lang.Object.wait(Native Method)  LiveConnectSupport.shutdown(5)

  LiveConnectSupport.shutdown(6)        at sun.plugin2.message.Queue.waitForMess
age(Unknown Source)

Terminating Java Plug-In Pipe Worker Thread (Server-Side) due to exception:
at sun.plugin2.message.Pipe.receive(Unknown Source)

        at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
java.io.IOException: Error 0 reading from named pipe, numRead 0, ReadFile ts: 44
18806243, now ts: 4418961072, dT 154829
        at sun.plugin2.ipc.windows.WindowsNamedPipe.read(Unknown Source)
        at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.read(
Unknown Source)
        at sun.plugin2.message.transport.NamedPipeTransport$SerializerImpl.readB
yte(Unknown Source)
        at sun.plugin2.message.AbstractSerializer.readInt(Unknown Source)
        at sun.plugin2.message.transport.SerializingTransport.read(Unknown Sourc
e)
        at sun.plugin2.message.Pipe$WorkerThread.run(Unknown Source)


Thread Dump during No heart beat reply :
2008-07-15 00:46:20
Full thread dump Java HotSpot(TM) Kernel VM (11.0-b14 mixed mode):

"traceMsgQueueThread" daemon prio=6 tid=0x05a53800 nid=0x9b8 in Object.wait() [0
x0384f000..0x0384fcd4]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08240d58> (a java.util.ArrayList)
        at java.lang.Object.wait(Object.java:485)
        at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
        - locked <0x08240d58> (a java.util.ArrayList)
        at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x059d8400 nid=0xe60 runnable [0x0000000
0..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x059d7000 nid=0x3d8 waiting on condition [
0x00000000..0x05f7f680]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x059d6800 nid=0xfa4 waiting on condition
 [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x059c5000 nid=0x450 in Object.wait() [0x05d7f000.
.0x05d7fc54]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x082c8958> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x082c8958> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x059c0400 nid=0xa80 in Object.wait() [0x
05c7f000..0x05c7fcd4]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x082c89e0> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x082c89e0> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x02119c00 nid=0xd48 runnable [0x00000000..0x0013e7a4]
   java.lang.Thread.State: RUNNABLE

"VM Thread" prio=10 tid=0x059bcc00 nid=0x110 runnable

"VM Periodic Task Thread" prio=10 tid=0x059da800 nid=0x714 waiting on condition


JNI global references: 727

Comments
EVALUATION There are other CRs related to improving robustness of heartbeat messages and java kernel is being deprecated. As kernel specific part is not important anymore there is no point to keep this CR open.
12-02-2011

EVALUATION while reproducing this bug, we noticed that jbroker.exe exited while the kernel jre is not completed yet, which is a bug. jbroker.exe should only go away while jre is completed. we need to investigate why jbroker.exe exited even if jre is not completed yet.
06-08-2008

EVALUATION We have attempted to reproduce this issue with 6u10 build 28 with the following results: - We can provoke the failure to launch applets when the Kernel background downloader is disabled. We can also see failures to launch the scene graph applets the first time even when the background downloader is disabled. We believe the latter failure is due to or related to 6727020. - We were not able to provoke a heartbeat-related failure. We plan to investigate 6727020 relatively urgently, as it is a generic reliability problem. Given the parameters, this bug does not warrant P2 status. Downgrading to P3.
06-08-2008