You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by Brian Cho <ch...@gmail.com> on 2014/11/14 10:16:42 UTC

Bug in Mac OS X JDK caused SIGSEGV, requires JDK update

FYI,

TLDR: If you see JNI crashes while running REEF tests in Mac OS X, try
updating your JDK version.

I experienced strange JNI SIGSEGV crashes while running the REEF tests.
(Some logs at the end.) These happened during the ReefHTTP tests.

I'm fairly confident that these were a manifestation of
https://bugs.openjdk.java.net/browse/JDK-8035897 which only effects Mac OS
X. The large number of sockets for HTTP tests is consistent with the bug
description.

The crashes went away after I upgraded from "1.7.0_51" to "1.7.0_71"
(according to the bug report, it should be fixed from "1.7.0_60" onwards).

Thanks,
Brian

```

Current thread (0x00007fb912d1c000):  JavaThread "1146094491@qtp-113275219-0
- Acceptor0 SocketConnector@0.0.0.0:13345" [_thread_in_native, id=62723,
stack(0x00000001169cf000,0x0000000116acf000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR),
si_addr=0x00007ff912d1c1e8

Stack: [0x00000001169cf000,0x0000000116acf000],  sp=0x0000000116acdf80,
free space=1019k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
code)

C  [libjava.dylib+0x9a20]  JNU_NewStringPlatform+0x1c8

C  [libjava.dylib+0x9b9d]  JNU_ThrowByNameWithLastError+0x4b

C  [libnet.dylib+0x5e44]  NET_ThrowByNameWithLastError+0x64

C  [libnet.dylib+0x82dc]  Java_java_net_PlainSocketImpl_socketAccept+0xf1

J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V

j  java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7

j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60

j  java.net.ServerSocket.accept()Ljava/net/Socket;+48

j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4

j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153

j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25

v  ~StubRoutines::call_stub

V  [libjvm.dylib+0x2d6bb0]  JavaCalls::call_helper(JavaValue*,
methodHandle*, JavaCallArguments*, Thread*)+0x22a

V  [libjvm.dylib+0x2d70c7]  JavaCalls::call_virtual(JavaValue*,
KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x11b

V  [libjvm.dylib+0x2d7204]  JavaCalls::call_virtual(JavaValue*, Handle,
KlassHandle, Symbol*, Symbol*, Thread*)+0x4a

V  [libjvm.dylib+0x3261ea]  thread_entry(JavaThread*, Thread*)+0xad

V  [libjvm.dylib+0x4efb57]  JavaThread::thread_main_inner()+0x9b

V  [libjvm.dylib+0x4f125f]  JavaThread::run()+0x1a3

V  [libjvm.dylib+0x41b1d6]  java_start(Thread*)+0x126

C  [libsystem_pthread.dylib+0x32fc]  _pthread_body+0x83

C  [libsystem_pthread.dylib+0x3279]  _pthread_body+0x0

C  [libsystem_pthread.dylib+0x14b1]  thread_start+0xd


Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)

J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V

j  java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7

j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60

j  java.net.ServerSocket.accept()Ljava/net/Socket;+48

j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4

j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153

j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25

v  ~StubRoutines::call_stub

```

Re: Bug in Mac OS X JDK caused SIGSEGV, requires JDK update

Posted by Markus Weimer <ma...@weimo.de>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

thanks! This seems to be a nasty one. I haven't seen the JVM crash in
a long while :-)

This reminds me of another test-related issue: I experience
intermittent reef-io and reef-webserver test failures on my machine(s)
as well, and they depend on the network environment I am in. The
failure is always triggered by a port already being taken.  When I try
to run tests in parallel, the failure frequency goes up.

Do others see similar behavior? Or is this limited to my machine?
Should we do something about this?

Markus




On 2014-11-14 01:16, Brian Cho wrote:
> FYI,
> 
> TLDR: If you see JNI crashes while running REEF tests in Mac OS X,
> try updating your JDK version.
> 
> I experienced strange JNI SIGSEGV crashes while running the REEF
> tests. (Some logs at the end.) These happened during the ReefHTTP
> tests.
> 
> I'm fairly confident that these were a manifestation of 
> https://bugs.openjdk.java.net/browse/JDK-8035897 which only effects
> Mac OS X. The large number of sockets for HTTP tests is consistent
> with the bug description.
> 
> The crashes went away after I upgraded from "1.7.0_51" to
> "1.7.0_71" (according to the bug report, it should be fixed from
> "1.7.0_60" onwards).
> 
> Thanks, Brian
> 
> ```
> 
> Current thread (0x00007fb912d1c000):  JavaThread
> "1146094491@qtp-113275219-0 - Acceptor0
> SocketConnector@0.0.0.0:13345" [_thread_in_native, id=62723, 
> stack(0x00000001169cf000,0x0000000116acf000)]
> 
> siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), 
> si_addr=0x00007ff912d1c1e8
> 
> Stack: [0x00000001169cf000,0x0000000116acf000],
> sp=0x0000000116acdf80, free space=1019k
> 
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,
> C=native code)
> 
> C  [libjava.dylib+0x9a20]  JNU_NewStringPlatform+0x1c8
> 
> C  [libjava.dylib+0x9b9d]  JNU_ThrowByNameWithLastError+0x4b
> 
> C  [libnet.dylib+0x5e44]  NET_ThrowByNameWithLastError+0x64
> 
> C  [libnet.dylib+0x82dc]
> Java_java_net_PlainSocketImpl_socketAccept+0xf1
> 
> J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V
> 
> j
> java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7
> 
> j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60
> 
> j  java.net.ServerSocket.accept()Ljava/net/Socket;+48
> 
> j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4
> 
> j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153
> 
> j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25
> 
> v  ~StubRoutines::call_stub
> 
> V  [libjvm.dylib+0x2d6bb0]  JavaCalls::call_helper(JavaValue*, 
> methodHandle*, JavaCallArguments*, Thread*)+0x22a
> 
> V  [libjvm.dylib+0x2d70c7]  JavaCalls::call_virtual(JavaValue*, 
> KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x11b
> 
> V  [libjvm.dylib+0x2d7204]  JavaCalls::call_virtual(JavaValue*,
> Handle, KlassHandle, Symbol*, Symbol*, Thread*)+0x4a
> 
> V  [libjvm.dylib+0x3261ea]  thread_entry(JavaThread*,
> Thread*)+0xad
> 
> V  [libjvm.dylib+0x4efb57]  JavaThread::thread_main_inner()+0x9b
> 
> V  [libjvm.dylib+0x4f125f]  JavaThread::run()+0x1a3
> 
> V  [libjvm.dylib+0x41b1d6]  java_start(Thread*)+0x126
> 
> C  [libsystem_pthread.dylib+0x32fc]  _pthread_body+0x83
> 
> C  [libsystem_pthread.dylib+0x3279]  _pthread_body+0x0
> 
> C  [libsystem_pthread.dylib+0x14b1]  thread_start+0xd
> 
> 
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> 
> J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V
> 
> j
> java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7
> 
> j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60
> 
> j  java.net.ServerSocket.accept()Ljava/net/Socket;+48
> 
> j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4
> 
> j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153
> 
> j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25
> 
> v  ~StubRoutines::call_stub
> 
> ```
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJUZiz6AAoJEOEJzzjJZ6pcIlQP/002i9Q/q3Smf6ZT0iVo/fi4
0QYYgShLl/8lBC70PKHfZLQJ7zIEacxZl+b7P/Sa2Fit/he0nSY8vzrfLSIZ2Do3
XDUPdU16dvPzQ2FqKZMBQsvohunRmhHLtTSLebqUtHQ3KrmiWO8l6i4YGXC7+KEt
TlGWo2BcvjBCBEeiqbSIBSBDJUAiNq5TfdENo7XLlD1KhotasIgGg+QsW671qDC+
w28xGEcTSVjVC54bRjVuacMi9yHhFVxU8BFmmXMwjCvHroLvz1MLPmsTyV3zSNYG
9aKLw7dfuSuVXUqwYgNQP5+SUdBRV9wtmoKZ4YEeqEPKX3IXkFlpCKY16Qqwe/XG
PM4hi47m/RQ9JXQzYqreo917/Fede6XuHKdKysHifhoNHHzCaYJJFP79+PqHE1cY
/R1kpWAV0MhfZgLTrFahfqySUTbIR9ZA2e1Zg6TXSXjWeVcgoCZ8f2J6s9Z2S2mh
ET12ulgb9/WTPA+yKYmvIMtj3+vQ67iPhU4A/K6aSJFgwxNZi10EDZHuOlmZDR5H
fSds2pYchMFBVWC8C7lMv4t3Vj45tyM3gYRTx/4bOcrZ1FgtWl1ibxbteLJIZ1Wg
CDxnDl+K46dHQNvjLr1Bs72yIpoOD9UPj+kk0OAkqqLrwGrJ4uOJ59DllgfnxcX/
/i2erIGqv7SEZuvnBtqB
=eqoT
-----END PGP SIGNATURE-----

Re: Bug in Mac OS X JDK caused SIGSEGV, requires JDK update

Posted by Byung-Gon Chun <bg...@gmail.com>.
Thanks, Brian!

On Fri, Nov 14, 2014 at 6:16 PM, Brian Cho <ch...@gmail.com> wrote:

> FYI,
>
> TLDR: If you see JNI crashes while running REEF tests in Mac OS X, try
> updating your JDK version.
>
> I experienced strange JNI SIGSEGV crashes while running the REEF tests.
> (Some logs at the end.) These happened during the ReefHTTP tests.
>
> I'm fairly confident that these were a manifestation of
> https://bugs.openjdk.java.net/browse/JDK-8035897 which only effects Mac OS
> X. The large number of sockets for HTTP tests is consistent with the bug
> description.
>
> The crashes went away after I upgraded from "1.7.0_51" to "1.7.0_71"
> (according to the bug report, it should be fixed from "1.7.0_60" onwards).
>
> Thanks,
> Brian
>
> ```
>
> Current thread (0x00007fb912d1c000):  JavaThread
> "1146094491@qtp-113275219-0
> - Acceptor0 SocketConnector@0.0.0.0:13345" [_thread_in_native, id=62723,
> stack(0x00000001169cf000,0x0000000116acf000)]
>
> siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR),
> si_addr=0x00007ff912d1c1e8
>
> Stack: [0x00000001169cf000,0x0000000116acf000],  sp=0x0000000116acdf80,
> free space=1019k
>
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
> code)
>
> C  [libjava.dylib+0x9a20]  JNU_NewStringPlatform+0x1c8
>
> C  [libjava.dylib+0x9b9d]  JNU_ThrowByNameWithLastError+0x4b
>
> C  [libnet.dylib+0x5e44]  NET_ThrowByNameWithLastError+0x64
>
> C  [libnet.dylib+0x82dc]  Java_java_net_PlainSocketImpl_socketAccept+0xf1
>
> J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V
>
> j  java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7
>
> j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60
>
> j  java.net.ServerSocket.accept()Ljava/net/Socket;+48
>
> j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4
>
> j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153
>
> j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25
>
> v  ~StubRoutines::call_stub
>
> V  [libjvm.dylib+0x2d6bb0]  JavaCalls::call_helper(JavaValue*,
> methodHandle*, JavaCallArguments*, Thread*)+0x22a
>
> V  [libjvm.dylib+0x2d70c7]  JavaCalls::call_virtual(JavaValue*,
> KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x11b
>
> V  [libjvm.dylib+0x2d7204]  JavaCalls::call_virtual(JavaValue*, Handle,
> KlassHandle, Symbol*, Symbol*, Thread*)+0x4a
>
> V  [libjvm.dylib+0x3261ea]  thread_entry(JavaThread*, Thread*)+0xad
>
> V  [libjvm.dylib+0x4efb57]  JavaThread::thread_main_inner()+0x9b
>
> V  [libjvm.dylib+0x4f125f]  JavaThread::run()+0x1a3
>
> V  [libjvm.dylib+0x41b1d6]  java_start(Thread*)+0x126
>
> C  [libsystem_pthread.dylib+0x32fc]  _pthread_body+0x83
>
> C  [libsystem_pthread.dylib+0x3279]  _pthread_body+0x0
>
> C  [libsystem_pthread.dylib+0x14b1]  thread_start+0xd
>
>
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
>
> J  java.net.PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V
>
> j  java.net.AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+7
>
> j  java.net.ServerSocket.implAccept(Ljava/net/Socket;)V+60
>
> j  java.net.ServerSocket.accept()Ljava/net/Socket;+48
>
> j  org.mortbay.jetty.bio.SocketConnector.accept(I)V+4
>
> j  org.mortbay.jetty.AbstractConnector$Acceptor.run()V+153
>
> j  org.mortbay.thread.QueuedThreadPool$PoolThread.run()V+25
>
> v  ~StubRoutines::call_stub
>
> ```
>



-- 
Byung-Gon Chun