2016-06-27 14 views
2

時々JVMが異常にクラッシュする。 JVMクラッシュログの問題のあるフレームはlibzip.soで、エラーはSIGSEGVです。これは、Tomcat 7で発生し、ここで、JDK 7SIGSEGVでJVMがクラッシュする - 問題のあるフレーム - libzip.so

は、参考のためにスタックトレースである:

スタック[0x00007f68b999c000,0x00007f68b9a9d000]、SP = 0x00007f68b9a99770、

空き容量= 1013kネイティブフレーム( J =コンパイルされたJavaコード、J =解釈、 Vvと= VMコード、C =ネイティブコード)C [libzip.so + 0x8099] deflate_slow + 0x49 C

[libzip.so + 0x7433]収縮+ 0x163 C [libzip .so + 0x3049]

Java_java_util_zip_Deflater_deflateBytes + 0x269 J java.util.zip.Deflater.deflateBytes(J [BIII)I + 0 J 3307 C2 java.util.zip.GZIPOutputStream.finish()V(135バイト)

ORG @ .apache.coyote.http11.filters.FlushableGZIPOutputStream.finish()V + 9 j org.apache.coyote.http11.filters.GzipOutputFilter.end()J + 26 j org.apache.coyote.http11.AbstractOutputBuffer.endRequest ()V + 43 J 2372 C2

org.apache.coyote.http11.AbstractHttp11Processor.action(Lorg /コヨーテ/アパッチ/ ActionCode; Ljava /ラング/オブジェクト;)V (602バイト)0x00007f6a4d759c84 @ [0x00007f6a4d759a80 + 0x204] J 2733 C2 org.apache.coyote.Response.action(Lorg /コヨーテ/アパッチ/ ActionCode; Ljava /ラング/オブジェクト;)0x00007f6a4d8b9ad0 @ V

(37バイト)[0x00007f6a4d8b9a80 + 0x50を】J ORG V + 5 j org.apache.catalina.connector.OutputBuffer.close()V + 138 j org.apache.catalina.connector.CoyoteWriter.close()V + 4 j org.apache.catalina.core.ApplicationDispatcher.doForward(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを;)V + 467 J org.apache.catalina.core.ApplicationDispatcher.forward(Ljavax /サーブレット/のServletRequest。 Ljavax/servlet/ServletResponse;)V + 55 j org.apache.struts.acti (Ljava/lang/String; Ljavax/servlet/http/HttpServletRequest; Ljavax/servlet/http/HttpServletResponse;)V + 56 j org.apache.struts.tiles.TilesRequestProcessor.doForward(Ljava/lang (Ljava/lang/String; ZLjavax/servlet/http/HttpServletResponse;); Ljavax/servlet/http/HttpServletResponse; Ljavax/servlet/http/HttpServletResponse; HttpServletRequest; Ljavax/servlet/http/HttpServletResponse; Ljavax/servlet/http/HttpServletResponse; Lorg/apache/struts)を参照してください。/config/ForwardConfig;)V + 74 j org.apache.struts.action.RequestProcessor.process(Ljavax/servlet/http/HttpServ letRequest; Ljavax /サーブレット/ HTTP/HttpServletResponseの;)V + 267 J org.apache.struts.action.ActionServlet.process(Ljavax /サーブレット/ HTTP /のHttpServletRequest; Ljavax /サーブレット/ HTTP/HttpServletResponseの;)V + 40 j org.apache.struts.action.ActionServlet.doGet(Ljavax/servlet/http/HttpServletRequest; Ljavax/servlet/http/HttpServletResponse;)V + 3 j javax.servlet.http.HttpServlet.service(Ljavax/servlet/HTTP/HttpServletRequest; Ljavax/servlet/http/HttpServletResponse;)V + 35 j javax.servlet.http.HttpServlet。サービス(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを;)V + 30 J 2406 C2 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを;)V (624バイト)0x00007f6a4d7760e4 [0x00007f6a4d775da0 + 0x344] J 2407 C2 org.apache.catalina.core.ApplicationFilterChain.doFilter @(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを;)V (105バイト)0x00007f6a4d5b2154 @ [0x00007f6a4d5b2120 + 0x34] j org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest; Ljavax/servlet/ServletResponse; Ljavax/servlet/FilterChain;)V + 21 J 2406 C2 org.apache。 catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest; Ljavax/servlet/ServletRespオンセ; 0x00007f6a4d775f28 @)V (624バイト)[0x00007f6a4d775da0 + 0x188] J 2407 C2 org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを;)V (105のバイト)@ 0x00007f6a4d5b2154 [0x00007f6a4d5b2120 + 0x34] j org.apache.catalina.core.ApplicationDispatcher.invoke(Ljavax/servlet/ServletRequest; Ljavax/servlet/ServletResponse; Lorg/apache/catalina/core/ApplicationDispatcher $ State;)V + 393 J

org.apache.catalina.core.ApplicationDispatcher.processRequest(Ljavax /サーブレット/のServletRequest; Ljavax /サーブレット/ ServletResponseを、Lorg /アパッチ/カタリナ/コア/ ApplicationDispatcher $状態;)V + 98

この問題は、JDK 7 + Tomcat7に移行した後にのみ発生します。下位バージョンでは正常に動作していました。どんな助けも大歓迎です。

答えて

0

スタックトレースにjni呼び出しがあるので、-Xcheck:jniオプションを指定してjvmを実行してみてください(あなたのケースでエラーが検出されるかどうかはわかりません)。

このクラッシュは、tomcatフィルタで出力ストリームを圧縮する際に発生します。あなたは、コネクタに

を(here)の圧縮を無効にすることができます。また、私が見るように、誤差はこの場合、(あなたがTomcatのGzipOutputFilterをオフにして、1-3の間であなたのDeflaterOutputStreamでカスタムフィルタと設定圧縮レベルを作成することができ、deflate_slow方法で発生deflate_fastメソッドはホットスポットで選択されます)

0

このようなクラッシュを避けるには、-Dsun.zip.disableMemoryMapping = trueを使用してください.JDK9は、このようなクラッシュを処理するためのより良いメカニズムを備えています。可能であれば、JDK9を使用するようにアップグレードしてください

関連する問題