APAR status
Closed as program error.
Error description
Error Message: When running a Java program with the -Xjit:enableGPU option, the program will suddenly end and print the following error message: Unhandled exception Type=Segmentation error vmState=0x00000000 . Stack Trace: Stack Trace (0x0000000000000000 <OSB><unknown>+0x0<CSB>) (0x00003FFFA6FDB1E4 <OSB>libj9jit28.so+0x116b1e4<CSB>) (0x00003FFFA610EF1C <OSB>libj9jit28.so+0x29ef1c<CSB>) (0x00003FFFA61092F4 <OSB>libj9jit28.so+0x2992f4<CSB>) (0x00003FFFA616B02C <OSB>libj9jit28.so+0x2fb02c<CSB>) J9VMDllMain+0xfdc (0x00003FFFA61696DC <OSB>libj9jit28.so+0x2f96dc<CSB>) (0x00003FFFA7B1F740 <OSB>libj9vm28.so+0xcf740<CSB>) (0x00003FFFA7B7531C <OSB>libj9vm28.so+0x12531c<CSB>) (0x00003FFFA7B1F490 <OSB>libj9vm28.so+0xcf490<CSB>) (0x00003FFFA7B19D6C <OSB>libj9vm28.so+0xc9d6c<CSB>) (0x00003FFFA7983CB4 <OSB>libj9prt28.so+0x53cb4<CSB>) (0x00003FFFA7B18540 <OSB>libj9vm28.so+0xc8540<CSB>) J9_CreateJavaVM+0xb8 (0x00003FFFA7AFAE38 <OSB>libj9vm28.so+0xaae38<CSB>) JNI_CreateJavaVM+0x900 (0x00003FFFA7C0CBC0 <OSB>libjvm.so+0x1cbc0<CSB>) JNI_CreateJavaVM+0x1cc (0x00003FFFA858A52C <OSB>libjvm.so+0x1a52c<CSB>) (0x00003FFFA87BC22C <OSB>libjli.so+0xc22c<CSB>) (0x00003FFFA87E89C8 <OSB>libpthread.so.0+0x89c8<CSB>) clone+0x98 (0x00003FFFA86EE570 <OSB>libc.so.6+0x11e570<CSB>) . When running the Java program, the LD_LIBRARY_PATH environment variable is missing the location of one or more of the following three GPU libraries: libnvvm.so, libcudart.so, libcuda.so
Local fix
Set the LD_LIBRARY_PATH to point to working copies of libnvvm.so, libcudart.so and libcuda.so libraries. For example: export LD_LIBRARY_PATH=path/to/libnvvm.so:path/to/libcudart.so:path/to/ libcuda.so:$LD_LIBRARY_PATH, where each "path/to" is filled in with the proper location of the library.
Problem summary
The JVM does not check to make sure that the GPU libraries were all properly loaded before using them. As a result, Java crashes when it attempts to use a library that was not properly loaded.
Problem conclusion
The JVM has been updated to ensure that the GPU libraries were properly loaded before using them. If the libraries are not found, Java will silently fall back and use the CPU to run the program instead of the GPU. If the -Xjit:enableGPU={verbose} option is used, the error message "Dynamic linking error" will also be printed to screen if a library can not be found. . This APAR will be fixed in the following Java Releases: 8 SR2 (8.0.2.0) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Temporary fix
Comments
APAR Information
APAR number
IV77911
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-10-09
Closed date
2015-10-09
Last modified date
2015-10-09
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JIT
Fixed component ID
620700124
Applicable component levels
R130 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
09 October 2015