- PR -

Tomcatが強制終了した場合の原因特定方法について

1
投稿者投稿内容
わか
常連さん
会議室デビュー日: 2003/12/14
投稿数: 47
お住まい・勤務地: 広島市
投稿日時: 2007-02-28 15:26
いつもお世話になります、わかと申します。

Apache、Tomcat、Struts にて構築したウェブアプリを稼動させています。
このウェブアプリは(別サーバ上の)PostgreSQLとの、バイナリファイル挿入/取り出しが主な機能です。

数ヶ月に1度の割合で、Tomcatが強制終了する現象が発生していますが、
原因を特定できず、困っております。

javaVMのコアダンプに「java.io.UnixFileSystem.deleteOnExit」と出力があったため、
該当メソッドにてインターネットを検索したところ、JavaVMのバグレポート
 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4904881
にあたりました。

しかし、当方が使用しているバージョンより
大幅に古いバージョンであり、本件に該当するかどうか、判断できずにおります。

識者の方からのアドバイスを頂ければと思い、書き込みました。
ポインタのみでも、何かアドバイス頂ければ幸いです。


<環境>
RedHatEnterpriseLinux ES4 update3 (kernel 2.6.9-34)
JDK 1.5.0_08
apache 2.0.59
tomcat 5.5.18
(CATALINA_OPTS="-server -Xmx2644m -Xms1024m -Xss512k"にて起動しています)
jk2 2.0.4
postgresql-8.1-407.jdbc3.jar

CPU: Intel Xeon 3.8GHz
メモリ: 6GB
ディスク: 72GB

<javaVMのコアダンプ>(長文ご容赦ください)
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x002c2a86, pid=709, tid=42384304
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_08-b03 mixed mode)
# Problematic frame:
# C [libc.so.6+0x68a86] strcpy+0x26
#

--------------- T H R E A D ---------------

Current thread (0x0356ab70): JavaThread "TP-Processor3" daemon [_thread_in_native, id=752]

siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000008

Registers:
EAX=0x0000002f, EBX=0xb75e2f38, ECX=0x47d0108f, EDX=0xb82fef79
ESP=0x0286a610, EBP=0x0286a614, ESI=0x00000008, EDI=0xbfefec80
EIP=0x002c2a86, CR2=0x00000008, EFLAGS=0x00010202

Top of Stack: (sp=0x0286a610)
0x0286a610: 00000000 0286a634 b75d0644 00000008
0x0286a620: b82fef78 b75d142b b75e2f38 b82fef78
0x0286a630: 0546bab8 0286a654 b75d771d 0356ac30
0x0286a640: b82fef78 002ab390 08264cf8 08264cf8
0x0286a650: 0356ab70 0286a68c b1630028 0356ac30
0x0286a660: 0286a6a0 0286a69c 00000001 0c422070
0x0286a670: 0286a668 00000000 0286a6a0 08265568
0x0286a680: 00000000 08264cf8 0286a69c 0286a6c0

Instructions: (pc=0x002c2a86)
0x002c2a76: 90 90 90 90 90 90 90 90 90 90 0f b6 02 42 84 c0
0x002c2a86: 88 04 0a 75 f5 89 f0 5e 5d c3 8b 54 24 04 8b 44

Stack: [0x027eb000,0x0286c000), sp=0x0286a610, free space=509k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libc.so.6+0x68a86] strcpy+0x26
C [libjava.so+0xf644]
C [libjava.so+0x1671d] Java_java_io_UnixFileSystem_deleteOnExit+0x7d
j java.io.UnixFileSystem.deleteOnExit(Ljava/io/File;)Z+0
j java.io.File.deleteOnExit()V+20
j org.apache.commons.fileupload.DefaultFileItem.getTempFile()Ljava/io/File;+60

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.io.UnixFileSystem.deleteOnExit(Ljava/io/File;)Z+0
j java.io.File.deleteOnExit()V+20
j org.apache.commons.fileupload.DefaultFileItem.getTempFile()Ljava/io/File;+60
v ~C2IAdapter
J org.apache.commons.fileupload.FileUploadBase.parseRequest(Ljavax/servlet/http/HttpServletRequest;)Ljava/util/List;
J org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(Ljavax/servlet/http/HttpServletRequest;)V
J org.apache.struts.util.RequestUtils.populate(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/http/HttpServletRequest;)V
v ~I2CAdapter
j org.apache.struts.action.RequestProcessor.processPopulate(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/apache/struts/action/ActionForm;Lorg/apache/struts/action/ActionMapping;)V+74
j org.apache.struts.action.RequestProcessor.process(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+153
j org.apache.struts.action.ActionServlet.process(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+40
j org.apache.struts.action.ActionServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
v ~C2IAdapter
J javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V
J javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
v ~I2CAdapter
j filters.SetCharacterEncodingFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+39
v ~C2IAdapter
J org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V
J org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
J org.apache.jk.server.JkCoyoteHandler.invoke(Lorg/apache/jk/core/Msg;Lorg/apache/jk/core/MsgContext;)I
J org.apache.jk.common.HandlerRequest.invoke(Lorg/apache/jk/core/Msg;Lorg/apache/jk/core/MsgContext;)I
J org.apache.jk.common.ChannelSocket.processConnection(Lorg/apache/jk/core/MsgContext;)V
v ~I2CAdapter
j org.apache.jk.common.ChannelSocket$SocketConnection.runIt([Ljava/lang/Object;)V+8
j org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run()V+167
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x04a2bb30 JavaThread "TP-Processor16" daemon [_thread_blocked, id=21666]
0x045e7638 JavaThread "TP-Processor15" daemon [_thread_in_native, id=21665]
0x05d9b4e0 JavaThread "TP-Processor14" daemon [_thread_blocked, id=21664]
0x057ebce0 JavaThread "TP-Processor13" daemon [_thread_in_native, id=21663]
0x054ea530 JavaThread "TP-Processor12" daemon [_thread_in_native, id=1704]
0x054ecd00 JavaThread "TP-Processor11" daemon [_thread_in_native, id=1703]
0x057e88f0 JavaThread "TP-Processor10" daemon [_thread_in_native, id=1702]
0x054f2290 JavaThread "TP-Processor9" daemon [_thread_blocked, id=1701]
0x05e42b58 JavaThread "TP-Processor8" daemon [_thread_in_native, id=962]
0x05fb5910 JavaThread "TP-Processor7" daemon [_thread_in_native, id=961]
0x0684fa40 JavaThread "TP-Processor6" daemon [_thread_blocked, id=960]
0x054e1b18 JavaThread "TP-Processor5" daemon [_thread_in_native, id=959]
0x03565578 JavaThread "TP-Monitor" daemon [_thread_blocked, id=754]
0x03566500 JavaThread "TP-Processor4" daemon [_thread_in_native, id=753]
=>0x0356ab70 JavaThread "TP-Processor3" daemon [_thread_in_native, id=752]
0x0356a618 JavaThread "TP-Processor2" daemon [_thread_blocked, id=751]
0x0356a190 JavaThread "TP-Processor1" daemon [_thread_in_native, id=750]
0x04fd6348 JavaThread "http-8080-Monitor" [_thread_blocked, id=749]
0x04fd55a0 JavaThread "http-8080-Processor25" daemon [_thread_in_native, id=748]
0x04fd4640 JavaThread "http-8080-Processor24" daemon [_thread_blocked, id=747]
0x04fd3880 JavaThread "http-8080-Processor23" daemon [_thread_blocked, id=746]
0x04fd2ac0 JavaThread "http-8080-Processor22" daemon [_thread_blocked, id=745]
0x04fd1d00 JavaThread "http-8080-Processor21" daemon [_thread_blocked, id=744]
0x04fd0f40 JavaThread "http-8080-Processor20" daemon [_thread_blocked, id=743]
0x04fd0180 JavaThread "http-8080-Processor19" daemon [_thread_blocked, id=742]
0x04fcf3c0 JavaThread "http-8080-Processor18" daemon [_thread_blocked, id=741]
0x04fce618 JavaThread "http-8080-Processor17" daemon [_thread_blocked, id=740]
0x05abaff0 JavaThread "http-8080-Processor16" daemon [_thread_blocked, id=739]
0x05aba230 JavaThread "http-8080-Processor15" daemon [_thread_blocked, id=738]
0x05ab9470 JavaThread "http-8080-Processor14" daemon [_thread_blocked, id=737]
0x035867c8 JavaThread "http-8080-Processor13" daemon [_thread_blocked, id=736]
0x03585a08 JavaThread "http-8080-Processor12" daemon [_thread_blocked, id=735]
0x05a82f88 JavaThread "http-8080-Processor11" daemon [_thread_blocked, id=734]
0x05a82200 JavaThread "http-8080-Processor10" daemon [_thread_blocked, id=733]
0x061d4b18 JavaThread "http-8080-Processor9" daemon [_thread_blocked, id=732]
0x04fddf88 JavaThread "http-8080-Processor8" daemon [_thread_blocked, id=731]
0x04fdd298 JavaThread "http-8080-Processor7" daemon [_thread_blocked, id=730]
0x04fb74b0 JavaThread "http-8080-Processor6" daemon [_thread_blocked, id=729]
0x06431b68 JavaThread "http-8080-Processor5" daemon [_thread_blocked, id=728]
0x061118c0 JavaThread "http-8080-Processor4" daemon [_thread_blocked, id=727]
0x05a3d090 JavaThread "http-8080-Processor3" daemon [_thread_blocked, id=726]
0x04fd7d60 JavaThread "http-8080-Processor2" daemon [_thread_blocked, id=725]
0x06153400 JavaThread "http-8080-Processor1" daemon [_thread_blocked, id=724]
0x05a3d7d0 JavaThread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon [_thread_blocked, id=723]
0x073a7d30 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=721]
0x073a6900 JavaThread "CompilerThread1" daemon [_thread_blocked, id=720]
0x073a5930 JavaThread "CompilerThread0" daemon [_thread_blocked, id=719]
0x073a4930 JavaThread "AdapterThread" daemon [_thread_blocked, id=718]
0x073a3a90 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=717]
0x0739a858 JavaThread "Finalizer" daemon [_thread_blocked, id=716]
0x0739a308 JavaThread "Reference Handler" daemon [_thread_blocked, id=715]
0x0805cea8 JavaThread "main" [_thread_in_native, id=709]

Other Threads:
0x07397ef8 VMThread [id=714]
0x073a92c0 WatcherThread [id=722]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
PSYoungGen total 16576K, used 5950K [0x9efa0000, 0xa06b0000, 0xb1560000)
eden space 14400K, 26% used [0x9efa0000,0x9f353780,0x9fdb0000)
from space 2176K, 99% used [0x9fdb0000,0x9ffcc080,0x9ffd0000)
to space 4608K, 0% used [0xa0230000,0xa0230000,0xa06b0000)
PSOldGen total 1409856K, used 1184213K [0x0c160000, 0x62230000, 0x9efa0000)
object space 1409856K, 83% used [0x0c160000,0x545d56f8,0x62230000)
PSPermGen total 34816K, used 17383K [0x08160000, 0x0a360000, 0x0c160000)
object space 34816K, 49% used [0x08160000,0x09259e48,0x0a360000)

Dynamic libraries:
00100000-001fc000 rwxp 00100000 00:00 0
(省略)
ffffe000-fffff000 --xp 00000000 00:00 0

VM Arguments:
jvm_args: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Xmx2644m -Xms1024m -Xss512k -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp
java_command: org.apache.catalina.startup.Bootstrap start
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=/usr/local/jdk
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/apache2/bin:/usr/local/jdk/bin:/home/tomcat/bin
LD_LIBRARY_PATH=/usr/local/jdk1.5.0_08/jre/lib/i386/server:/usr/local/jdk1.5.0_08/jre/lib/i386:/usr/local/jdk1.5.0_08/jre/../lib/i386:/opt/CA/SharedComponents/lib
SHELL=/bin/bash

Signal Handlers:
SIGSEGV: [libjvm.so+0x508860], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGBUS: [libjvm.so+0x508860], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGFPE: [libjvm.so+0x42cac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGPIPE: [libjvm.so+0x42cac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGILL: [libjvm.so+0x42cac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x42ef10], sa_mask[0]=0x00000000, sa_flags=0x14000004
SIGHUP: [libjvm.so+0x42e940], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGINT: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGQUIT: [libjvm.so+0x42e940], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
SIGTERM: [libjvm.so+0x42e940], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004


--------------- S Y S T E M ---------------

OS:Red Hat Enterprise Linux ES release 4 (Nahant Update 3)

uname:Linux 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:54:53 EST 2006 i686
libc:glibc 2.3.4 NPTL 2.3.4
rlimit: STACK 10240k, CORE 0k, NPROC 105471, NOFILE 1024, AS infinity
load average:0.05 0.04 0.00

CPU:total 4 (cores per cpu 1, threads per core 2) family 15 model 4 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ht

Memory: 4k page, physical 6167188k(303432k free), swap 1600k(1600k free)

vm_info: Java HotSpot(TM) Server VM (1.5.0_08-b03) for linux-x86, built on Jun 28 2006 00:27:00 by java_re with gcc 3.2.1-7a (J2SE release)


# 誤字を修正

[ メッセージ編集済み 編集者: わか 編集日時 2007-02-28 15:27 ]

[ メッセージ編集済み 編集者: わか 編集日時 2007-02-28 15:27 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-28 17:02
ご指摘のバグはシャットダウン時に発生する現象のようですが、貼り付けてあるスタックトレースを見ると File#deleteOnExit() を呼び出したタイミングで落ちているみたいですね。
ちょっと違うバグのような気がします。

まずは気休めに、最新の Update 11 を適用してみてはいかがでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)