DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9732>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9732

calling XML parser from a JNI library crashes the Java VM

           Summary: calling XML parser from a JNI library crashes the Java
                    VM
           Product: Xerces-C++
           Version: 1.7.0
          Platform: PC
               URL: http://www.biochec.com/beta/bckLogin.html
        OS/Version: Linux
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: Miscellaneous
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


We have built a JNI that references a base shared-library which in turn 
incorporates Xerces-C++ parsing.  The base library has been built/tested 
successfully under both Win2K and RHL7.2.  The JNI has been built/tested 
successfully under Win2K running JRE1.4.  However, running the JNI under RHL7.2 
with JRE1.4, we receive the following crash:

---------------------------------------------------------------
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x4C6FB6BD
Function=lock__8XMLMutex+0x19
Library=/work/lib/libxerces-c1_7_0.so

Current Java thread:
        at com.bioChec.bioChecKey_JNI.bCk_VerifySignature(Native Method)
        at com.bioChec.vendor.bioChecKey.server.bpServerSDK.GetVerifyScore
(bpServerSDK.java:37)
        at com.bioChec.server.bpxVerificationImpl.rmi_VERIFY_AUTH
(bpxVerificationImpl.java:109)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
        at sun.rmi.transport.Transport$1.run(Transport.java:148)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:460)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:701)
        at java.lang.Thread.run(Thread.java:536)

Dynamic libraries:
08048000-0804d000 r-xp 00000000 08:05 55531      /opt/j2sdk1.4.0/bin/java
0804d000-0804e000 rw-p 00004000 08:05 55531      /opt/j2sdk1.4.0/bin/java
40000000-40016000 r-xp 00000000 08:05 415105     /lib/ld-2.2.4.so
40016000-40017000 rw-p 00015000 08:05 415105     /lib/ld-2.2.4.so
40018000-40027000 r-xp 00000000 08:05 415166     /lib/libpthread-0.9.so
40027000-4002f000 rw-p 0000e000 08:05 415166     /lib/libpthread-0.9.so
4002f000-40032000 r-xp 00000000 08:05 415142     /lib/libdl-2.2.4.so
40032000-40033000 rw-p 00002000 08:05 415142     /lib/libdl-2.2.4.so
40033000-40168000 r-xp 00000000 08:05 415108     /lib/libc-2.2.4.so
40168000-4016d000 rw-p 00134000 08:05 415108     /lib/libc-2.2.4.so
40171000-40434000 r-xp 00000000 08:05 
37916      /opt/j2sdk1.4.0/jre/lib/i386/client/libjvm.so
40434000-4057c000 rw-p 002c2000 08:05 
37916      /opt/j2sdk1.4.0/jre/lib/i386/client/libjvm.so
40590000-405a3000 r-xp 00000000 08:05 415122     /lib/libnsl-2.2.4.so
405a3000-405a4000 rw-p 00012000 08:05 415122     /lib/libnsl-2.2.4.so
405a6000-405da000 r-xp 00000000 08:05 253760     /usr/lib/libstdc++-2-libc6.1-1-
2.9.0.so
405da000-405e6000 rw-p 00033000 08:05 253760     /usr/lib/libstdc++-2-libc6.1-1-
2.9.0.so
405a3000-405a4000 rw-p 00012000 08:05 415122     /lib/libnsl-2.2.4.so
405a6000-405da000 r-xp 00000000 08:05 253760     /usr/lib/libstdc++-2-libc6.1-1-
2.9.0.so
405da000-405e6000 rw-p 00033000 08:05 253760     /usr/lib/libstdc++-2-libc6.1-1-
2.9.0.so
405e8000-4060a000 r-xp 00000000 08:05 415144     /lib/libm-2.2.4.so
4060a000-4060b000 rw-p 00021000 08:05 415144     /lib/libm-2.2.4.so
4060b000-40614000 r-xp 00000000 08:05 
37914      /opt/j2sdk1.4.0/jre/lib/i386/native_threads/libhpi.so
40614000-40615000 rw-p 00008000 08:05 
37914      /opt/j2sdk1.4.0/jre/lib/i386/native_threads/libhpi.so
40615000-40626000 r-xp 00000000 08:05 
37920      /opt/j2sdk1.4.0/jre/lib/i386/libverify.so
40626000-40628000 rw-p 00010000 08:05 
37920      /opt/j2sdk1.4.0/jre/lib/i386/libverify.so
40628000-40649000 r-xp 00000000 08:05 
37921      /opt/j2sdk1.4.0/jre/lib/i386/libjava.so
40649000-4064b000 rw-p 00020000 08:05 
37921      /opt/j2sdk1.4.0/jre/lib/i386/libjava.so
4064c000-40660000 r-xp 00000000 08:05 
37923      /opt/j2sdk1.4.0/jre/lib/i386/libzip.so
40660000-40663000 rw-p 00013000 08:05 
37923      /opt/j2sdk1.4.0/jre/lib/i386/libzip.so
40663000-41cdb000 r--s 00000000 08:05 37963      /opt/j2sdk1.4.0/jre/lib/rt.jar
41d1d000-41d34000 r--s 00000000 08:05 
37944      /opt/j2sdk1.4.0/jre/lib/sunrsasign.jar
41d34000-41da2000 r--s 00000000 08:05 
37946      /opt/j2sdk1.4.0/jre/lib/jsse.jar
41da2000-41db5000 r--s 00000000 08:05 37945      /opt/j2sdk1.4.0/jre/lib/jce.jar
41db5000-42036000 r--s 00000000 08:05 
37961      /opt/j2sdk1.4.0/jre/lib/charsets.jar
42036000-421b6000 r--s 00000000 08:05 
1259231    /usr/oracle/jdbc/lib/classes12.zip
4425e000-4425f000 r--p 00000000 08:05 
2093843    /usr/lib/locale/en_US/LC_IDENTIFICATION
4425f000-44260000 r--p 00000000 08:05 
1498214    /usr/lib/locale/en_US/LC_MEASUREMENT
4c2e0000-4c30b000 r--p 00000000 08:05 1299471    /usr/lib/locale/en_US/LC_CTYPE
4c30b000-4c30c000 r--p 00000000 08:05 
2039795    /usr/lib/locale/en_US/LC_TELEPHONE
4c30c000-4c30d000 r--p 00000000 08:05 
2040102    /usr/lib/locale/en_US/LC_ADDRESS
4c30d000-4c30e000 r--p 00000000 08:05 2039803    /usr/lib/locale/en_US/LC_NAME
4c30e000-4c30f000 r--p 00000000 08:05 2111650    /usr/lib/locale/en_US/LC_PAPER
4c30f000-4c310000 r--p 00000000 08:05 
2039801    /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
4c310000-4c311000 r--p 00000000 08:05 
1497990    /usr/lib/locale/en_US/LC_MONETARY
4c311000-4c317000 r--p 00000000 08:05 
2057477    /usr/lib/locale/en_US/LC_COLLATE
4c317000-4c318000 r--p 00000000 08:05 2094022    /usr/lib/locale/en_US/LC_TIME
4c318000-4c319000 r--p 00000000 08:05 
1299493    /usr/lib/locale/en_US/LC_NUMERIC
4c319000-4c323000 r-xp 00000000 08:05 415154     /lib/libnss_files-2.2.4.so
4c323000-4c324000 rw-p 00009000 08:05 415154     /lib/libnss_files-2.2.4.so
4c34f000-4c352000 r-xp 00000000 08:05 
2239404    /work/bioChecKey/redist/linux/libbioChecKey_JNI.so
4c352000-4c353000 rw-p 00002000 08:05 
2239404    /work/bioChecKey/redist/linux/libbioChecKey_JNI.so
4c35e000-4c37b000 r--s 00000000 08:05 
651451     /opt/j2sdk1.4.0/jre/lib/ext/sunjce_provider.jar
4c37b000-4c37d000 r--s 00000000 08:05 
651452     /opt/j2sdk1.4.0/jre/lib/ext/dnsns.jar
4c37d000-4c420000 r--s 00000000 08:05 
651453     /opt/j2sdk1.4.0/jre/lib/ext/localedata.jar
4c420000-4c42e000 r--s 00000000 08:05 
651454     /opt/j2sdk1.4.0/jre/lib/ext/ldapsec.jar
4c42e000-4c43d000 r--s 00000000 08:05 
813018     /export/bioChec/classes/rmi/bioChecVerification.jar
4c43d000-4c44f000 r-xp 00000000 08:05 
37926      /opt/j2sdk1.4.0/jre/lib/i386/libnet.so
4c44f000-4c450000 rw-p 00011000 08:05 
37926      /opt/j2sdk1.4.0/jre/lib/i386/libnet.so
4c450000-4c451000 r-xp 00000000 08:05 
37937      /opt/j2sdk1.4.0/jre/lib/i386/librmi.so
4c451000-4c452000 rw-p 00000000 08:05 
37937      /opt/j2sdk1.4.0/jre/lib/i386/librmi.so
4c452000-4c475000 r-xp 00000000 08:05 252922     /usr/lib/libglib-1.2.so.0.0.10
4c475000-4c476000 rw-p 00022000 08:05 252922     /usr/lib/libglib-1.2.so.0.0.10
4c476000-4c4af000 r-xp 00000000 08:05 252739     /usr/lib/libstdc++-3-libc6.2-2-
2.10.0.so
4c4af000-4c4b6000 rw-p 00038000 08:05 252739     /usr/lib/libstdc++-3-libc6.2-2-
2.10.0.so
4c4b8000-4c5d0000 r-xp 00000000 08:05 
2239297    /work/bioChecKey/redist/linux/libbioChecKey.so
4c5d0000-4c5d7000 rw-p 00117000 08:05 
2239297    /work/bioChecKey/redist/linux/libbioChecKey.so
4c5d8000-4c7fc000 r-xp 00000000 08:05 145017     /opt/xerces-c1_7_0-
linux7.2/lib/libxerces-c1_7_0.so
4c7fc000-4c86f000 rw-p 00223000 08:05 145017     /opt/xerces-c1_7_0-
linux7.2/lib/libxerces-c1_7_0.so

Local Time = Sun Jun  9 22:40:48 2002
Elapsed Time = 10
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.0-b92 mixed mode)
#
# An error report file has been saved as hs_err_pid2991.log.
# Please refer to the file for further information.
#

---------------------------------------------------------------
We have compiled and linked under RHL7.2 with the following LD options:

 -L/usr/lib -L/usr/local/lib -L/usr/ucb/lib -L/usr/lib/gcc-lib/i386-redhat-
linux/2.96 -lglib -lstdc++ -lm -lpthread -lbioChecKey -lxerces-c1_7_0
---------------------------------------------------------------

What are any obvious things I can check to further debug this?  Why would this 
work under Win2K and not Linux? Given the obvious answer -- the implementation 
of threads and locks differs greatly between the 2 OSes -- does this mean I 
need to build a single-threaded version under Java?  Or would that just create 
more problems?

Thanks for all your help!

John

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to