ObjectDB ObjectDB

JVM crash when using IBM JDK 1.6.0

#1

The FAQ states in the system requirements only that a JDK/JRE 1.5 or 1.6(prefered) is required.

When I try to use the IBM JDK 1.6.0 I get a GPF exception while creating the entity manager.

Looks like a call to putInt on sun.misc.Unsafe object

Does this mean there is a BUG in the IBM JDK or are not all JDK's supported?

1XMCURTHDINFO  Current thread
NULL           ----------------------
3XMTHREADINFO      "main" J9VMThread:0x00007F00C402FA00, j9thread_t:0x00007F00C40079E0, java/lang/Thread:0x00007EFFFE170C48, state:R, prio=5
3XMTHREADINFO1            (native thread ID:0x1CDD, native priority:0x5, native policy:UNKNOWN)
3XMTHREADINFO2            (native stack address range from:0x00007F00CBFB1000, to:0x00007F00CC9B2000, size:0xA01000)
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at com/objectdb/o/BYW.z(BYW.java:888)
4XESTACKTRACE                at com/objectdb/o/BYW.z(BYW.java:206)
4XESTACKTRACE                at com/objectdb/o/BTR.G(BTR.java:374)
4XESTACKTRACE                at com/objectdb/o/UTT.A(UTT.java:396)
4XESTACKTRACE                at com/objectdb/o/UTT.l(UTT.java:272)
4XESTACKTRACE                at com/objectdb/o/TSK.i(TSK.java:146)
4XESTACKTRACE                at com/objectdb/o/TSK.f(TSK.java:95)
4XESTACKTRACE                at com/objectdb/o/MST.aK(MST.java:225)
4XESTACKTRACE                at com/objectdb/o/MST.<init>(MST.java:114)
4XESTACKTRACE                at com/objectdb/o/MST.aG(MST.java:96)
4XESTACKTRACE                at com/objectdb/o/MSF.UH(MSF.java:167)
4XESTACKTRACE                at com/objectdb/o/OMF.ai(OMF.java:725)
4XESTACKTRACE                at com/objectdb/jpa/EMF.ai(EMF.java:143)
4XESTACKTRACE                at com/objectdb/o/OMF.ah(OMF.java:681)
4XESTACKTRACE                at com/objectdb/jpa/EMF.createEntityManager(EMF.java:160)
4XESTACKTRACE                at com/ibm/check/cmvc2git/database/Database.<init>(Database.java:52)
4XESTACKTRACE                at com/ibm/check/cmvc2git/CMVCSync.runCommand(CMVCSync.java:100)
4XESTACKTRACE                at com/ibm/check/cmvc2git/CMVCSync.main(CMVCSync.java:90)
3XMTHREADINFO3           Native callstack:
4XENATIVESTACK               (0x00000000008797A2 [libj9prt24.so+0xe7a2])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x000000000087982D [libj9prt24.so+0xe82d])
4XENATIVESTACK               (0x000000000087993A [libj9prt24.so+0xe93a])
4XENATIVESTACK               (0x00000000008795E4 [libj9prt24.so+0xe5e4])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x000000000087965D [libj9prt24.so+0xe65d])
4XENATIVESTACK               (0x0000000000875706 [libj9prt24.so+0xa706])
4XENATIVESTACK               (0x0000000000875A5A [libj9prt24.so+0xaa5a])
4XENATIVESTACK               (0x00007F00CBAD1645 [libj9dmp24.so+0x12645])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x00007F00CBACE171 [libj9dmp24.so+0xf171])
4XENATIVESTACK               (0x00007F00CBAD157A [libj9dmp24.so+0x1257a])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x00007F00CBACC78A [libj9dmp24.so+0xd78a])
4XENATIVESTACK               (0x00007F00CBAD175A [libj9dmp24.so+0x1275a])
4XENATIVESTACK               (0x00007F00CBAC3743 [libj9dmp24.so+0x4743])
4XENATIVESTACK               (0x00007F00CBAC6625 [libj9dmp24.so+0x7625])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x00007F00CBAC65FE [libj9dmp24.so+0x75fe])
4XENATIVESTACK               (0x00007F00CBAC62C9 [libj9dmp24.so+0x72c9])
4XENATIVESTACK               (0x00007F00CBAD29FE [libj9dmp24.so+0x139fe])
4XENATIVESTACK               (0x000000000023BB9C [libj9vm24.so+0x14b9c])
4XENATIVESTACK               (0x0000000000883BF1 [libj9prt24.so+0x18bf1])
4XENATIVESTACK               (0x000000000023B3DD [libj9vm24.so+0x143dd])
4XENATIVESTACK               (0x0000000000884661 [libj9prt24.so+0x19661])
4XENATIVESTACK               (0x00000036D380F4C0 [libpthread.so.0+0xf4c0])
4XENATIVESTACK               sun_misc_Unsafe_putInt__Ljava_lang_Object_2JI+0x42 (0x00007F00CA950FDA [libjclscar_24.so+0x4efda])

 

edit
delete
#2

ObjectDB uses Sun's Unsafe as an optimization - only when it is available.

Apparently, the Unsafe class is included in IBM J9 VM and when it is checked on startup with simple operations it works well, but later during run somehow it fails.

As a workaround - this optimization is disabled for IBM J9 VM starting build 2.2.6_02.

Thank you for your report.

 

 

ObjectDB Support
edit
delete
#3

This fixed the GPF crash.

I have <enhancement agent="true" reflection="error" /> in my objectdb.conf file

With the Sun JDK it would automaticly enhance the Entities.

Now with the IBM JDK it requires I add the -javaagent arg during start.

Is that the expected behavior without the Unsafe optimization?

edit
delete
#4

It is the expected behavior, but it is unrelated to Unsafe.

Only Sun JDK 6.0 (and not even Sun JRE) has the ability to add an agent to the JVM while running. Using -javaagent explicitly is preferred since it is more reliable.

ObjectDB Support
edit
delete

Reply

To post on this website please sign in.