-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
1.1.5
-
sparc
-
solaris_2.5.1
MAy 13 - Ss
see comments also
---------------------
See the test attached. There is a tar file.
>The problem seems to only happen when
>I continuously run /usr/proc/bin/pfiles
>on the server pid ('pfiles' prints the list
>of file descriptors that the process is using).
>Sounds like the green threads version of java
>isn't particularly robust.
>
>Below is the java dump and the core file
>traceback. These vary from run to run.
>All the core files are from SIGSYS:
>"bad argument to system call".
>
>When I run it under native threads, the
>/usr/proc/bin/pfiles program prints
>"Prelease PIOCSHOLD/PIOCSREG: Device busy"
>and there is no core dump.
>------------ java dump -------------
>SIGSYS 12* bad argument to system call
>
>Full thread dump:
> "TCP Accept-4" (TID:0xee705c48, sys_thread_t:0xee081db8, state:CW)
prio=5
> java.net.PlainSocketImpl.accept(PlainSocketImpl.java:387)
> java.net.ServerSocket.implAccept(ServerSocket.java:206)
> java.net.ServerSocket.accept(ServerSocket.java:189)
>
>sun.rmi.transport.proxy.HttpAwareServerSocket.accept(HttpAwareServerSocket.
j
>ava:77)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:351)
> java.lang.Thread.run(Thread.java)
> "Cleaner" (TID:0xee703a80, sys_thread_t:0xee0b1db8, state:CW) prio=5
> sun.rmi.transport.DGCClient.run(DGCClient.java:628)
> java.lang.Thread.run(Thread.java)
> "LeaseRenewer" (TID:0xee7039f0, sys_thread_t:0xee0e1db8, state:CW)
prio=5
> sun.rmi.transport.DGCClient.doRenewal(DGCClient.java:684)
> sun.rmi.transport.DGCClient$LeaseRenewer.run(DGCClient.java:943)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-3" (TID:0xee704ba8, sys_thread_t:0xee111db8, state:R)
prio=5
> java.net.SocketInputStream.read(SocketInputStream.java:92)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.DataInputStream.readByte(DataInputStream.java)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:582)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "LeaseChecker" (TID:0xee704760, sys_thread_t:0xee141db8, state:CW)
prio=5
> sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:278)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-2" (TID:0xee705be8, sys_thread_t:0xee171db8, state:R)
prio=5
> java.text.SimpleDateFormat.format(SimpleDateFormat.java)
> java.text.DateFormat.format(DateFormat.java)
> SessionImpl.sendRequest(Server.java:44)
> SessionImpl_Skel.dispatch(SessionImpl_Skel.java:54)
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:164)
> sun.rmi.transport.Transport.serviceCall(Transport.java:161)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:593)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "Pinger" (TID:0xee704908, sys_thread_t:0xee1a1db8, state:CW) prio=5
> sun.rmi.transport.tcp.Pinger.run(TCPEndpoint.java:325)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-1" (TID:0xee704538, sys_thread_t:0xee1d1db8, state:CW)
prio=5
> java.net.SocketInputStream.read(SocketInputStream.java:92)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.DataInputStream.readByte(DataInputStream.java)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:582)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "KeepAlive" (TID:0xee704630, sys_thread_t:0xee241db8, state:CW) prio=5
> sun.rmi.transport.KeepAlive.run(ObjectTable.java:180)
> java.lang.Thread.run(Thread.java)
> "Reaper" (TID:0xee7043e0, sys_thread_t:0xee271db8, state:CW) prio=5
> sun.rmi.transport.Reaper.run(ObjectTable.java:197)
> java.lang.Thread.run(Thread.java)
> "Finalizer thread" (TID:0xee700220, sys_thread_t:0xee2c1db8, state:CW)
>prio=1
> "Async Garbage Collector" (TID:0xee700268, sys_thread_t:0xee2f1db8,
>state:CW) prio=1
> "Idle thread" (TID:0xee7002b0, sys_thread_t:0xee3c1db8, state:R) prio=0
> "Clock" (TID:0xee700088, sys_thread_t:0xee3f1db8, state:R) prio=12
>*current thread*
> "main" (TID:0xee7000b0, sys_thread_t:0x67980, state:CW) prio=5
>Monitor Cache Dump:
> java.io.BufferedInputStream@EE705DA0/EE757080: owner "TCP Accept-3"
>(0xee111db8, 1 entry)
> java.net.PlainSocketImpl@EE7045A0/EE751A18: owner "TCP Accept-4"
>(0xee081db8, 1 entry)
> <unknown key> (0xee141db8): <unowned>
> Waiting to be notified:
> "LeaseChecker" (0xee141db8)
> <unknown key> (0xee1a1db8): <unowned>
> Waiting to be notified:
> "Pinger" (0xee1a1db8)
> <unknown key> (0xee241db8): <unowned>
> Waiting to be notified:
> "KeepAlive" (0xee241db8)
> java.lang.Object@EE703778/EE7574B0: <unowned>
> Waiting to be notified:
> "LeaseRenewer" (0xee0e1db8)
> java.util.Vector@EE703500/EE758290: <unowned>
> Waiting to be notified:
> "Cleaner" (0xee0b1db8)
> java.io.BufferedInputStream@EE705978/EE756EA8: owner "TCP Accept-3"
>(0xee111db8, 1 entry)
> <unknown key> (0xee2f1db8): <unowned>
> Waiting to be notified:
> "Async Garbage Collector" (0xee2f1db8)
> <unknown key> (0xee271db8): <unowned>
> Waiting to be notified:
> "Reaper" (0xee271db8)
> java.io.BufferedInputStream@EE705CC0/EE753428: owner "TCP Accept-1"
>(0xee1d1db8, 1 entry)
> java.io.BufferedInputStream@EE705850/EE7531E8: owner "TCP Accept-1"
>(0xee1d1db8, 1 entry)
>Registered Monitor Dump:
> Thread queue lock: <unowned>
> Waiting to be notified:
> "main" (0x67980)
> Name and type hash table lock: <unowned>
> String intern lock: <unowned>
> JNI pinning lock: <unowned>
> JNI global reference lock: <unowned>
> BinClass lock: <unowned>
> Class loading lock: <unowned>
> Java stack lock: <unowned>
> Code rewrite lock: <unowned>
> Heap lock: <unowned>
> Has finalization queue lock: <unowned>
> Finalize me queue lock: <unowned>
> Waiting to be notified:
> "Finalizer thread" (0xee2c1db8)
> Monitor IO lock: <unowned>
> Child death monitor: <unowned>
> Event monitor: <unowned>
> I/O monitor: <unowned>
> Alarm monitor: owner "Clock" (0xee3f1db8, 1 entry)
> Sbrk lock: <unowned>
> Monitor registry: owner "Clock" (0xee3f1db8, 1 entry)
>Thread Alarm Q:
> sys_thread_t 0xee271db8 [Timeout expired]
> sys_thread_t 0xee2f1db8 [Timeout expired]
> sys_thread_t 0xee0b1db8 [Timeout in 145266 ms]
> sys_thread_t 0xee1a1db8 [Timeout in 261105 ms]
> sys_thread_t 0xee141db8 [Timeout in 262831 ms]
> sys_thread_t 0xee0e1db8 [Timeout in 265388 ms]
> sys_thread_t 0xee241db8 [Timeout in 2147444364 ms]
>
>------------ core stack traceback -------------
>john@indian:rmiTEST> dbx /common/jdk/bin/sparc/green_threads/java core
>(dbx) where
>=>[1] _lwp_kill(0x0, 0x6, 0xfffed21, 0xef72e318, 0x0, 0x0), at 0xef4b9924
> [2] sysAbort(0x0, 0x0, 0xee3f1908, 0xc, 0x0, 0x0), at 0xef70b598
> ---- called from signal handler with signal 12 (SIGSYS) ------
> [3] queueWait(), at 0xef711de8
> [4] clockHandler(0xef7360e8, 0xef736548, 0x3506c49a, 0xf4240, 0x0, 0x0),
>at 0xef70ba4c
> [5] start_func(0xef71c400, 0xee700088, 0xef70b8b0, 0x0, 0x0, 0x0), at
>0xef713858
>(dbx)
see comments also
---------------------
See the test attached. There is a tar file.
>The problem seems to only happen when
>I continuously run /usr/proc/bin/pfiles
>on the server pid ('pfiles' prints the list
>of file descriptors that the process is using).
>Sounds like the green threads version of java
>isn't particularly robust.
>
>Below is the java dump and the core file
>traceback. These vary from run to run.
>All the core files are from SIGSYS:
>"bad argument to system call".
>
>When I run it under native threads, the
>/usr/proc/bin/pfiles program prints
>"Prelease PIOCSHOLD/PIOCSREG: Device busy"
>and there is no core dump.
>------------ java dump -------------
>SIGSYS 12* bad argument to system call
>
>Full thread dump:
> "TCP Accept-4" (TID:0xee705c48, sys_thread_t:0xee081db8, state:CW)
prio=5
> java.net.PlainSocketImpl.accept(PlainSocketImpl.java:387)
> java.net.ServerSocket.implAccept(ServerSocket.java:206)
> java.net.ServerSocket.accept(ServerSocket.java:189)
>
>sun.rmi.transport.proxy.HttpAwareServerSocket.accept(HttpAwareServerSocket.
j
>ava:77)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:351)
> java.lang.Thread.run(Thread.java)
> "Cleaner" (TID:0xee703a80, sys_thread_t:0xee0b1db8, state:CW) prio=5
> sun.rmi.transport.DGCClient.run(DGCClient.java:628)
> java.lang.Thread.run(Thread.java)
> "LeaseRenewer" (TID:0xee7039f0, sys_thread_t:0xee0e1db8, state:CW)
prio=5
> sun.rmi.transport.DGCClient.doRenewal(DGCClient.java:684)
> sun.rmi.transport.DGCClient$LeaseRenewer.run(DGCClient.java:943)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-3" (TID:0xee704ba8, sys_thread_t:0xee111db8, state:R)
prio=5
> java.net.SocketInputStream.read(SocketInputStream.java:92)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.DataInputStream.readByte(DataInputStream.java)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:582)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "LeaseChecker" (TID:0xee704760, sys_thread_t:0xee141db8, state:CW)
prio=5
> sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:278)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-2" (TID:0xee705be8, sys_thread_t:0xee171db8, state:R)
prio=5
> java.text.SimpleDateFormat.format(SimpleDateFormat.java)
> java.text.DateFormat.format(DateFormat.java)
> SessionImpl.sendRequest(Server.java:44)
> SessionImpl_Skel.dispatch(SessionImpl_Skel.java:54)
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:164)
> sun.rmi.transport.Transport.serviceCall(Transport.java:161)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:593)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "Pinger" (TID:0xee704908, sys_thread_t:0xee1a1db8, state:CW) prio=5
> sun.rmi.transport.tcp.Pinger.run(TCPEndpoint.java:325)
> java.lang.Thread.run(Thread.java)
> "TCP Accept-1" (TID:0xee704538, sys_thread_t:0xee1d1db8, state:CW)
prio=5
> java.net.SocketInputStream.read(SocketInputStream.java:92)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
> java.io.DataInputStream.readByte(DataInputStream.java)
>
>sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:582)
> sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:499)
> java.lang.Thread.run(Thread.java)
> "KeepAlive" (TID:0xee704630, sys_thread_t:0xee241db8, state:CW) prio=5
> sun.rmi.transport.KeepAlive.run(ObjectTable.java:180)
> java.lang.Thread.run(Thread.java)
> "Reaper" (TID:0xee7043e0, sys_thread_t:0xee271db8, state:CW) prio=5
> sun.rmi.transport.Reaper.run(ObjectTable.java:197)
> java.lang.Thread.run(Thread.java)
> "Finalizer thread" (TID:0xee700220, sys_thread_t:0xee2c1db8, state:CW)
>prio=1
> "Async Garbage Collector" (TID:0xee700268, sys_thread_t:0xee2f1db8,
>state:CW) prio=1
> "Idle thread" (TID:0xee7002b0, sys_thread_t:0xee3c1db8, state:R) prio=0
> "Clock" (TID:0xee700088, sys_thread_t:0xee3f1db8, state:R) prio=12
>*current thread*
> "main" (TID:0xee7000b0, sys_thread_t:0x67980, state:CW) prio=5
>Monitor Cache Dump:
> java.io.BufferedInputStream@EE705DA0/EE757080: owner "TCP Accept-3"
>(0xee111db8, 1 entry)
> java.net.PlainSocketImpl@EE7045A0/EE751A18: owner "TCP Accept-4"
>(0xee081db8, 1 entry)
> <unknown key> (0xee141db8): <unowned>
> Waiting to be notified:
> "LeaseChecker" (0xee141db8)
> <unknown key> (0xee1a1db8): <unowned>
> Waiting to be notified:
> "Pinger" (0xee1a1db8)
> <unknown key> (0xee241db8): <unowned>
> Waiting to be notified:
> "KeepAlive" (0xee241db8)
> java.lang.Object@EE703778/EE7574B0: <unowned>
> Waiting to be notified:
> "LeaseRenewer" (0xee0e1db8)
> java.util.Vector@EE703500/EE758290: <unowned>
> Waiting to be notified:
> "Cleaner" (0xee0b1db8)
> java.io.BufferedInputStream@EE705978/EE756EA8: owner "TCP Accept-3"
>(0xee111db8, 1 entry)
> <unknown key> (0xee2f1db8): <unowned>
> Waiting to be notified:
> "Async Garbage Collector" (0xee2f1db8)
> <unknown key> (0xee271db8): <unowned>
> Waiting to be notified:
> "Reaper" (0xee271db8)
> java.io.BufferedInputStream@EE705CC0/EE753428: owner "TCP Accept-1"
>(0xee1d1db8, 1 entry)
> java.io.BufferedInputStream@EE705850/EE7531E8: owner "TCP Accept-1"
>(0xee1d1db8, 1 entry)
>Registered Monitor Dump:
> Thread queue lock: <unowned>
> Waiting to be notified:
> "main" (0x67980)
> Name and type hash table lock: <unowned>
> String intern lock: <unowned>
> JNI pinning lock: <unowned>
> JNI global reference lock: <unowned>
> BinClass lock: <unowned>
> Class loading lock: <unowned>
> Java stack lock: <unowned>
> Code rewrite lock: <unowned>
> Heap lock: <unowned>
> Has finalization queue lock: <unowned>
> Finalize me queue lock: <unowned>
> Waiting to be notified:
> "Finalizer thread" (0xee2c1db8)
> Monitor IO lock: <unowned>
> Child death monitor: <unowned>
> Event monitor: <unowned>
> I/O monitor: <unowned>
> Alarm monitor: owner "Clock" (0xee3f1db8, 1 entry)
> Sbrk lock: <unowned>
> Monitor registry: owner "Clock" (0xee3f1db8, 1 entry)
>Thread Alarm Q:
> sys_thread_t 0xee271db8 [Timeout expired]
> sys_thread_t 0xee2f1db8 [Timeout expired]
> sys_thread_t 0xee0b1db8 [Timeout in 145266 ms]
> sys_thread_t 0xee1a1db8 [Timeout in 261105 ms]
> sys_thread_t 0xee141db8 [Timeout in 262831 ms]
> sys_thread_t 0xee0e1db8 [Timeout in 265388 ms]
> sys_thread_t 0xee241db8 [Timeout in 2147444364 ms]
>
>------------ core stack traceback -------------
>john@indian:rmiTEST> dbx /common/jdk/bin/sparc/green_threads/java core
>(dbx) where
>=>[1] _lwp_kill(0x0, 0x6, 0xfffed21, 0xef72e318, 0x0, 0x0), at 0xef4b9924
> [2] sysAbort(0x0, 0x0, 0xee3f1908, 0xc, 0x0, 0x0), at 0xef70b598
> ---- called from signal handler with signal 12 (SIGSYS) ------
> [3] queueWait(), at 0xef711de8
> [4] clockHandler(0xef7360e8, 0xef736548, 0x3506c49a, 0xf4240, 0x0, 0x0),
>at 0xef70ba4c
> [5] start_func(0xef71c400, 0xee700088, 0xef70b8b0, 0x0, 0x0, 0x0), at
>0xef713858
>(dbx)