| Summary: | Java HotSpot Error in libjava.so Java_java_lang_Class_forName0 | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Tilmann Zaeschke <hans.hans.hans> |
| Component: | TPTP | Assignee: | Bing Xu <xubing> |
| Status: | CLOSED WORKSFORME | QA Contact: | |
| Severity: | major | ||
| Priority: | P1 | CC: | asaf.yaffe, bugs.eclipse.org, hans.hans.hans, igor.alelekov, jkubasta |
| Version: | unspecified | Keywords: | plan |
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | closed460 | ||
| Attachments: | |||
Created attachment 75303 [details]
Byte code enhanced class file.
Created attachment 75304 [details]
The java file
Created attachment 75305 [details]
The pickler file (generated by the byte code enhancer).
Created attachment 75308 [details]
Java file again, without references to my project
Created attachment 75309 [details]
byte code enhanced class file again, without references to my project
Created attachment 75310 [details]
Pickler file again (generated by the enhancer), without references to my project
Created attachment 75311 [details]
jvm crash log again, without references to my project
Just tested it with 4.4.0.2, and the problem is still there. HotSpot on SUSE 10.1 is not supported according to http://www.eclipse.org/tptp/home/project_info/releaseinfo/4.4/support.html. Have you tried IBM JVM? (In reply to comment #9) > HotSpot on SUSE 10.1 is not supported according to > http://www.eclipse.org/tptp/home/project_info/releaseinfo/4.4/support.html. > > Have you tried IBM JVM? > I have the same problem on RedHat 4.0 update 5 using Java 1.5.0 update 12, which is also not on the list. Does the referenced page really mean that only the specified environments are supported? I understood this lists only what has been tested. Otherwise it would exclude pretty much all JAVA/LINUX updates that have been released in 2007 (and partly 2006). I will see whether I can test this on the IBM JVM. I tried it using eclipse 3.3.1.1 (tptp 4.4.1) on SuSE 10.1 with the IMB JVM:
> java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20071025 (SR6b))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20071005 (JIT enabled)
J9VM - 20071004_14218_lHdSMR
JIT - 20070820_1846ifx1_r8
GC - 200708_10)
JCL - 20071025
My applications still crash the JVM when profiled:
24-Jan-08 13:43:34.510 Configuration: Build number is 1337
24-Jan-08 13:43:45.134 ReplStoreFactoryImpl: Creating ObjectStore: ilt_qm_8@hscsv2
Unhandled exception
Type=Segmentation error vmState=0xb7e1a540
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=B7D88B68 Handler2=B7D517BC InaccessibleAddress=08D2D000
EDI=08D12A4F ESI=08D2CFFF EAX=FFFFFFFF EBX=08CEE9C8
ECX=3FFF6FDE EDX=BFF22128
EIP=B7E875CC ES=C010007B DS=0000007B ESP=BFF220C4
EFlags=00010207 CS=00000073 SS=0000007B EBP=BFF220F0
Module=/lib/libc.so.6
Module_base_address=B7E1C000 Symbol=memcpy
Symbol_address=B7E875B0
Target=2_30_20071004_14218_lHdSMR (Linux 2.6.16.53-0.16-default)
JVMDUMP006I Processing Dump Event "abort", detail "" - Please Wait.
JVMDUMP007I JVM Requesting System Dump using '/home/tzaeschk/buildTools/develop/main/core.20080124.124346.4863.dmp'
Unfortunately, the mentioned .dmp file was not created.
I recently learned that Versant 7.0.1.3 is not officially supporting Java 5 bytecode.
However the Sun & IBM JVMs run my applications just fine, so I would not expect the profiler to have problems with the generated bytecode.
Anything else I could/should try?
Does running your application alone crash your JVM? Or it only happens when you profile? Can you try these: 1. Locate the code that causes the crash by commenting out some code and run profiling. You may need to try this several times. 2. If the code reads objects from database, try to reduce the number of objects read say 1 object at a time. (In reply to comment #12) > Does running your application alone crash your JVM? Or it only happens when > you profile? It only happens when profiling. The applications work fine on a number of platforms: Linux (Suse 10.1 or later, RedHat 4.0 or later, Fedora, ...) 64bit/32bit, Solaris 9 or later 64Bit/32Bit, Windows XP. Most of them are using SUN JDK 1.5.0_14. But I also used the IBM JDK 9.2.3 (see above) on Suse 10.1/32bit. > Can you try these: > > 1. Locate the code that causes the crash by commenting out some code and run > profiling. You may need to try this several times. > > 2. If the code reads objects from database, try to reduce the number of objects > read say 1 object at a time. > It fails when reading the first Object from the database. The exact point of failure is in the java crash log attached to this SPR, here is the relevant part (it crashes in java.lang.Class.forName0): C [libjava.so+0x9be6] Java_java_lang_Class_forName0+0x116 j java.lang.Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;) Ljava/lang/Class;+0 j java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class;+5 j com.versant.trans.Wrappers.java_lang_Class_forName(Ljava/lang/String;) Ljava/lang/Class;+9 j com.versant.trans.TransSession.classForName(Ljava/lang/String;) Ljava/lang/Class;+80 j com.versant.trans.TransSession.findPicklerForClassHandle( Lcom/versant/fund/ClassHandle;)Lcom/versant/trans/Pickler;+109 j com.versant.trans.TransSession.loidToJod(J)Lcom/versant/trans/Jod;+58 j com.versant.trans.TransSession.handleToJod(Lcom/versant/fund/Handle;) Lcom/versant/trans/Jod;+39 j com.versant.trans.TransSession.handleToObject(Lcom/versant/fund/Handle;) Ljava/lang/Object;+11 j com.versant.fund.MHandle.handleToObject()Ljava/lang/Object;+5 j vql7.NoLockFund.loadHA([Lcom/versant/fund/Handle; Lcom/versant/trans/TransSession;)[Ljava/lang/Object;+58 j vql7.NoLockFund.run()V+181 j vql7.NoLockFund.main([Ljava/lang/String;)V+33 v ~StubRoutines::call_stub To be honest, I'm a bit confused as to which version I'm using. The agentcontroller is 4.4.0.3, but the eclipse feature-list shows all kinds of version for TPTP modules, ranging from 4.1.301 (Statistical UI) to 4.4.1 (TPTP Monitoring). All this runs in a fresh installation of eclipse 3.3.1.1. Please let me know whether this could pose a problem, and if so, how I would get compatible versions. (In reply to comment #14) > To be honest, I'm a bit confused as to which version I'm using. > The agentcontroller is 4.4.0.3, but the eclipse feature-list shows all kinds of > version for TPTP modules, ranging from 4.1.301 (Statistical UI) to 4.4.1 (TPTP > Monitoring). > All this runs in a fresh installation of eclipse 3.3.1.1. > Please let me know whether this could pose a problem, and if so, how I would > get compatible versions. I checked my TPTP 4.4.0.3 and these versions are correct. I couldn't reproduce your problem since I don't have the versant library but I will check the NoLockFund code and talk to the Profiler developers. Hi Igor, Can you take a look to see if it's related to TI. Hi Tilmann, Can you provide Martini log file? To produce it please set MARTINI_LOGGER_LOG_LEVEL=5 MARTINI_LOGGER_DIRECTORY=<your dir> environment variables. Created attachment 94526 [details]
MARTINI log file as request
I hope I did it correctly: Set the two environment variables, then ./ACStart, then start eclipse and execute the profiler all from the same console. I hope it doesn't matter, but I'm using the SUN JVM again, rather than IBM's. Hi Igor, did you get a chance to look at the log. Should I transfer this to you? Hi Igor, any comments? Asaf, could you please take a look on this? Thanks. Tilmann, Can you try to filter out all com.versant.* classes from the profiling session and check whether it prevents the crash? To do that, in the Monitor tab of the Launch Configuration dialog, highlight the "Java 1.5+" data collector, click the Options button, create a new filter set, exclude com.versant.* classes and methods and include everything else. Thanks, Asaf Closing for now. Reopen when more info are available. As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant enhancements/defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement/defect is verified/closed by the Project Lead since this enhancement/defect has been resolved and unverified for more than 1 year and considered to be fixed. If this enhancement/defect is still unresolved and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open. |
Created attachment 75302 [details] jvm crash log Build ID: I20070625-1500 Steps To Reproduce: Reproducible with both 4.4.0.1 and TPTP-4.4.0.2-200707271340. Trying to profile an application that uses byte-code enhanced classes, enhanced for use with the Versant object database 7.0.1.3 (www.versant.com). I will attach the jvm-crash log and the class file. If the above information is not sufficient to identify the problem, then I will contact Versant whether they allow me to post the required libraries, or provide a demo version, or even give directly support for this problem. Severity to "major" as all Versant byte code enhanced applications crash, with slightly different crash-logs though. Please let me know what to do. More information: