Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4975 Discussions

Core dump when using Call Graph on Java application running under Tomcat

edwh
Beginner
356 Views

I'm trying to run Call Graph profiling on a Tomcat application. I can run it fine on a simple test application. When I run under Tomcat, it core dumps early on during initialisation. Occasionally I get some basic Call Graph out of it, other times I don't, presumably depending on how badly it crashes.

I'm using the 9.1 VTune on Windows, talking to a 9.1 RDC on RedHat system running kernel 2.6.18-92.1.10.el5PAE, using the VDK driver from the 3.1.003 PTU.

Below is a sample crash. Any suggestions?

#
# An unexpected error has been detected by Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x082e5aab, pid=11721, tid=971484048
#
# Java VM: Java HotSpot Server VM (10.0-b23 mixed mode linux-x86)
# Problematic frame:
# C 0x082e5aab
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

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

Current thread (0x3864ac00): JavaThread "NioBlockingSelector.BlockPoller-1" daemon [_thread_in_native, id=11824, stack(0x39e2a000,0x39e7b000)]

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

Registers:
EAX=0x19fa48f6, EBX=0xb7ee10b0, ECX=0x00000000, EDX=0x082faa08
ESP=0x39e79bf4, EBP=0x42174610, ESI=0x082fa868, EDI=0x082e6930
EIP=0x082e5aab, CR2=0x00000000, EFLAGS=0x00210202

Top of Stack: (sp=0x39e79bf4)
0x39e79bf4: b7eb771d 082fa840 39e79c38 0000003a
0x39e79c04: b7eb76e6 00002000 000003e8 00000000
0x39e79c14: b7ee2bb0 082e0560 3864ac00 39e79c70
0x39e79c24: b7ebad84 082e6930 39e79c38 3864acf4
0x39e79c34: b7ebac5d 00013a27 00000000 00002000
0x39e79c44: 000003e8 00000000 0000003a 00000000
0x39e79c54: 00000000 00000008 39e79c5c 00000000
0x39e79c64: 39e79ca4 a380c5d0 39e79c8c 39e79c98

Instructions: (pc=0x082e5aab)
0x082e5a9b: 08 d0 0c 2e 08 e0 fc 2d 08 60 35 ee b7 10 03 2e
0x082e5aab: 08 21 00 00 00 60 d0 ee b7 00 00 00 00 00 00 00

Stack: [0x39e2a000,0x39e7b000], sp=0x39e79bf4, free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0x082e5aab

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J org.eclipse.tptp.martini.CGProxy.MethodLeave(I)V
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::StubRoutines (1)

0 Kudos
4 Replies
Peter_W_Intel
Employee
356 Views

I think that you profile Tomcat application which will call java application. However that is different to call simple java application directly since VTune Performance Analyzer add some special arguments to enable performance tuning, like as "-Xrunjavaperf". You might not transfer the paramenter to java application from Tomcat, I think.

Regards, Peter

0 Kudos
edwh
Beginner
356 Views

I think that you profile Tomcat application which will call java application. However that is different to call simple java application directly since VTune Performance Analyzer add some special arguments to enable performance tuning, like as "-Xrunjavaperf". You might not transfer the paramenter to java application from Tomcat, I think.

Regards, Peter

Wouldn't that show up as two separate Java processes, though? One for Tomcat, one for something else. There's only one Java process, so I don't think it can be that, and I do get call graph profiling out of Tomcat for a little while so I know the arguments are being passed.

Any other ideas?

0 Kudos
edwh
Beginner
356 Views

Speculatively, I set:

MARTINI_LOGGER_DIRECTORY=/tmp
MARTINI_LOGGER_LOG_LEVEL=5

I then get a log file in /tmp, which has this at the end:

Error 12/19/08 11:22:32 3867 0 CDataManager File: DataManager.cpp (Line: 1602) condition failed: uiJVMPIMethodIndex < uiJVMPINumMethods

This therefore looks like an error in libJPI.so.

I then tried getting the latest libJPI.so from the profiler SDK at http://www.eclipse.org/tptp/home/downloads/, but this doesn't recognise the cg parameter. So perhaps VTune's libJPI.so is customised?

Does this ring any bells for anyone?

0 Kudos
edwh
Beginner
356 Views
Quoting - edwh

I then tried getting the latest libJPI.so from the profiler SDK at http://www.eclipse.org/tptp/home/downloads/, but this doesn't recognise the cg parameter. So perhaps VTune's libJPI.so is customised?

And it looks like the bug has been fixed in TPTP; see http://webui.sourcelabs.com/eclipse/issues/199647. Does this mean that VTune's version is out of date?

0 Kudos
Reply