Skip to Main Content

Java HotSpot Virtual Machine

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JNI on AIX.

843829Oct 26 2001 — edited Sep 29 2003
Hello Guys,

We have received some c code from our client their encryption/decryption algorithams from our client which we have to integrate in our java code. I have written a java class with some native methods. And a c program which is called from java using JNI and this c program calls the functions from the code provided by our client. Taking togather my own c program and the progs provided by the client i create a dll file on windows and i can call all the functions properly. So no problems till this point. Now we have to deploy the project on AIX, I take the same code to AIX and now i am creating a .so file insted of dll, compilation and library creation is fine( I am using C for AIX Compiler, Version 5), i am creating the library with the command

cc -g -G -I/usr/WebSphere/AppServer/java/include/ *.c -o libVMD.so

invoking some of the native methods in my java class from a test program also works fine but with a couple of other functions the JVM is crashing

This is the output that i get on my command window



SIGILL 4 (*) illegal instruction (not reset when caught)

si_signo [4]: SIGILL: (*) illegal instruction (not reset when caught)

si_errno [0]: Error 0

si_code [30]: ILL_ILLOPC [addr: 0x0]

stackpointer=2ff21ca8

Writing java dump to /usr/dev/cookie/src/javacore22492.1004125181.txt... OK

Illegal instruction(coredump)

and here is the core dump.

Fri Oct 26 15:39:41 2001


SIGILL received at d4d4d1d8 in /usr/lib/libVMD.so. Processing terminated.
J2RE 1.3.0 IBM build ca130-20010615a
/usr/WebSphere/AppServer/java/bin/java com.nubase.vmd.core.util.VmdHelper em manon4

System Properties
-----------------
Java Home Dir: /usr/WebSphere/AppServer/java/jre
Java DLL Dir: /usr/WebSphere/AppServer/java/jre/bin
Sys Classpath: /usr/WebSphere/AppServer/java/jre/lib/rt.jar:/usr/WebSphere/AppServer/java/jre/lib/i18n.jar:/usr/WebSphere/AppServer/java/jre/classes
User Args:
-Djava.class.path=:/opt/db2inst1/sqllib/java/sqlj.zip:/opt/db2inst1/sqllib/java/db2java.zip:/opt/db2inst1/sqllib/java/runtime.zip:.


Current Thread Details
----------------------

"main" (TID:0x300987e0, sys_thread_t:0x3000d7d8, state:R, native ID:0x1) prio=5
at com.nubase.vmd.core.util.VmdHelper.encryptPassword(Native Method)
at com.nubase.vmd.core.util.VmdHelper.main(VmdHelper.java:172)


----- Native Stack -----
VmdEncrypteMotDePasse
Java_com_nubase_vmd_core_util_VmdHelper_encryptPassword
mmisInvoke_O_OHelper
_OHelper0 ?!??|^H^B?^C?^E^H`?
-------------------------------------------------------------------------

Operating Environment
---------------------
Host : VMD:192.168.0.253
OS Level : AIX 4.3.3.0
Processors -
Architecture : POWER_PC (impl: POWER_604, ver: PV_604)
How Many : 1
Enabled : 1

User Limits (in bytes except for NOFILE and NPROC) -
RLIMIT_FSIZE : 1073741312
RLIMIT_DATA : 2147483645
RLIMIT_STACK : 33554432
RLIMIT_CORE : 1073741312
RLIMIT_NOFILE : 2000
NPROC(max) : 262144

Page Space (in blocks) -
/dev/hd6: size=524288, free=523755

Application Environment
-----------------------
Signal Handlers -
SIGQUIT : intrDispatchMD (libhpi.a)
SIGILL : intrDispatchMD (libhpi.a)
SIGTRAP : unknown handler (libjitc.a)
SIGABRT : intrDispatchMD (libhpi.a)
SIGEMT : intrDispatchMD (libhpi.a)
SIGFPE : intrDispatchMD (libhpi.a)
SIGBUS : intrDispatchMD (libhpi.a)
SIGSEGV : intrDispatchMD (libhpi.a)
SIGSYS : intrDispatchMD (libhpi.a)
SIGPIPE : ignored
SIGUSR2 : unknown handler (libjitc.a)
Environment Variables -
_=/usr/WebSphere/AppServer/java/bin/java
LANG=en_US
LOGIN=root
IMQCONFIGCL=/etc/IMNSearch/dbcshelp
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/opt/root/bin:/usr/bin/X11:/sbin:.:/opt/db2inst1/sqllib/bin:/opt/db2inst1/sqllib/adm:/opt/db2inst1/sqllib/misc
LC__FASTMSG=true
IMQCONFIGSRV=/etc/IMNSearch
CGI_DIRECTORY=/var/docsearch/cgi-bin
CLASSPATH=:/opt/db2inst1/sqllib/java/sqlj.zip:/opt/db2inst1/sqllib/java/db2java.zip:/opt/db2inst1/sqllib/java/runtime.zip:.
LOGNAME=root
MAIL=/usr/spool/mail/root
LOCPATH=/usr/lib/nls/loc
DOCUMENT_SERVER_MACHINE_NAME=localhost
USER=root
AUTHSTATE=compat
SHELL=/bin/ksh
ODMDIR=/etc/objrepos
DOCUMENT_SERVER_PORT=49213
HOME=/opt/root
DB2INSTANCE=db2inst1
LD_LIBRARY_PATH=/usr/lib
TERM=vt100
MAILMSG=[YOU HAVE NEW MAIL]
PWD=/usr/dev/cookie/src
DOCUMENT_DIRECTORY=/usr/docsearch/html
TZ=EST5EDT
A__z=! LOGNAME
XFILESEARCHPATH=/usr/WebSphere/AppServer/java/jre/lib/locale/%L/%T/%N%S:/usr/WebSphere/AppServer/java/jre/lib/locale/%L/%T/%N%S:
MALLOCMULTIHEAP=1
AIXTHREAD_SCOPE=S
AIXTHREAD_MUTEX_DEBUG=OFF
AIXTHREAD_RWLOCK_DEBUG=OFF
AIXTHREAD_COND_DEBUG=OFF
LIBPATH=/usr/WebSphere/AppServer/java/jre/bin:/usr/WebSphere/AppServer/java/jre/bin/classic:/opt/db2inst1/sqllib/lib
NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat
IBM_JAVA_COMMAND_LINE=/usr/WebSphere/AppServer/java/bin/java com.nubase.vmd.core.util.VmdHelper em manon4
JAVA_MAIN_VM=805392576

Loaded Libraries (sizes in bytes)
---------------------------------
/usr/lib/libVMD.so
filesize : 111802
text start : d4d48000
text size : aa17
data start : 34d6e928
data size : 20f8
/usr/WebSphere/AppServer/java/jre/bin/libjitc.a
filesize : 2262001
text start : d3785000
text size : 1c53f3
data start : 34452570
data size : b020
/usr/lib/libiconv.a
filesize : 377832
text start : d0034100
text size : 13f3a
data start : 34404da0
data size : a574
/usr/lib/libi18n.a
filesize : 122601
text start : d002c100
text size : 78b4
data start : 344104b0
data size : 1124
/usr/lib/nls/loc/en_US
filesize : 14340
text start : d0026000
text size : 2d71
data start : d0029130
data size : 2324
/usr/WebSphere/AppServer/java/jre/bin/libzip.a
filesize : 106943
text start : d3771000
text size : 133ab
data start : 34291c70
data size : 1fdc
/usr/WebSphere/AppServer/java/jre/bin/libhpi.a
filesize : 111461
text start : d3761000
text size : fe2b
data start : 3003f340
data size : d20
/usr/WebSphere/AppServer/java/jre/bin/libxhpi.a
filesize : 10041
text start : d375f000
text size : 134a
data start : 3003ed50
data size : 1c8
/usr/WebSphere/AppServer/java/jre/bin/libjava.a
filesize : 398297
text start : d371f000
text size : 3fbf5
data start : 30036b18
data size : 6d18
/usr/WebSphere/AppServer/java/jre/bin/classic/libjvm.a
filesize : 1721315
text start : d35ed000
text size : 131aaf
data start : 300111d8
data size : 24e08
/usr/lib/libbsd.a
filesize : 62186
text start : d00d24e0
text size : 7deb
data start : f010ab28
data size : 1460
/usr/lib/libC.a
filesize : 2610937
text start : d080c360
text size : 5982
data start : f01d4760
data size : a08
/usr/lib/libC.a
filesize : 2610937
text start : d0798660
text size : 5fca
data start : f01d3460
data size : 83c
/usr/lib/libC.a
filesize : 2610937
text start : d079f7c0
text size : 6c174
data start : f01c0dc0
data size : 113c4
/usr/lib/libC.a
filesize : 2610937
text start : d078c070
text size : b756
data start : f01bf31c
data size : 1c
/usr/lib/libpthreads.a
filesize : 713478
text start : d0001000
text size : 22b4
data start : f0082000
data size : 41004
/usr/lib/libpthreads.a
filesize : 713478
text start : d0004000
text size : 202a1
data start : f00c4000
data size : 400c
/usr/lib/libC.a
filesize : 2610937
text start : d0757100
text size : 33653
data start : f01bad00
data size : 411c
/usr/lib/libcrypt.a
filesize : 11167
text start : d00250f8
text size : 87a
data start : f0081528
data size : 13c
/usr/lib/libc.a
filesize : 6409580
text start : d015f720
text size : 1c26a3
data start : f0000a20
data size : 7f908


"Finalizer" (TID:0x30098708, sys_thread_t:0x342f6d38, state:CW, native ID:0x304) prio=8
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:114)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:129)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:168)


----- Native Stack -----
unavailable - iar 3008ffe8 not in text area
-------------------------------------------------------------------------

"Reference Handler" (TID:0x30098750, sys_thread_t:0x342f0c58, state:CW, native ID:0x203) prio=10
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:421)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)


----- Native Stack -----
unavailable - iar 0 not in text area
-------------------------------------------------------------------------

"Signal dispatcher" (TID:0x30098798, sys_thread_t:0x342ebf98, state:CW, native ID:0x102) prio=5


----- Native Stack -----
unavailable - iar 0 not in text area
-------------------------------------------------------------------------

"main" (TID:0x300987e0, sys_thread_t:0x3000d7d8, state:R, native ID:0x1) prio=5
at com.nubase.vmd.core.util.VmdHelper.encryptPassword(Native Method)
at com.nubase.vmd.core.util.VmdHelper.main(VmdHelper.java:172)


----- Native Stack -----
VmdEncrypteMotDePasse
Java_com_nubase_vmd_core_util_VmdHelper_encryptPassword
mmisInvoke_O_OHelper
_OHelper0 ?!??|^H^B?^C?^E^H`?
-------------------------------------------------------------------------

Monitor pool info:
Initial monitor count: 32
Minimum number of free monitors before expansion: 5
Pool will next be expanded by: 16
Current total number of monitors: 32
Current number of free monitors: 28

Monitor Pool Dump (inflated object-monitors):
sys_mon_t:0x30009de8 infl_mon_t: 0x300099f8:
java.lang.ref.Reference$Lock@3009DB38/3009DB40: <unowned>
Waiting to be notified:
"Reference Handler" (0x342f0c58)
sys_mon_t:0x30009ee8 infl_mon_t: 0x30009a38:
java.lang.ref.ReferenceQueue$Lock@3009D748/3009D750: <unowned>
Waiting to be notified:
"Finalizer" (0x342f6d38)

JVM System Monitor Dump (registered monitors):
Integer lock access-lock: <unowned>
ACS Heap lock: <unowned>
System Heap lock: <unowned>
Sleep lock: <unowned>
Method trace lock: <unowned>
UTF8 Cache lock: <unowned>
Heap lock: <unowned>
Rewrite Code lock: <unowned>
Monitor Cache lock: owner "main" (0x3000d7d8) 1 entry
JNI Pinning lock: <unowned>
JNI Global Reference lock: <unowned>
Classloader lock: <unowned>
Linking class lock: <unowned>
Binclass lock: <unowned>
Monitor Registry lock: owner "main" (0x3000d7d8) 1 entry
Thread queue lock: owner "main" (0x3000d7d8) 1 entry

Thread identifiers (as used in flat monitors):
ident 5 "Finalizer" (0x342f6d38) ee 0x342f6b6c
ident 4 "Reference Handler" (0x342f0c58) ee 0x342f0a8c
ident 3 "Signal dispatcher" (0x342ebf98) ee 0x342ebdcc
ident 2 "main" (0x3000d7d8) ee 0x3000d60c

Java Object Monitor Dump (flat & inflated object-monitors):
java.lang.ref.ReferenceQueue$Lock@3009D748/3009D750
locknflags 80000400 Monitor inflated infl_mon 0x30009a38
java.lang.ref.Reference$Lock@3009DB38/3009DB40
locknflags 80000200 Monitor inflated infl_mon 0x300099f8

what i am doing wrong here? or if there are any other issues while using JNI on AIX.

All the help appreciated.

Thanks

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 27 2003
Added on Oct 26 2001
5 comments
444 views