Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GR-60364] [Native Image] - Application crashes at runtime when using AWT on Linux #10244

Open
2 tasks done
Rottinator opened this issue Dec 5, 2024 · 5 comments
Open
2 tasks done
Assignees

Comments

@Rottinator
Copy link

Describe the Issue

Hi,

i've builded an application using the library "org.apache.pdfbox.pdfbox:3.0.3" to convert images to PDF documents. The library is based on AWT.
When building a native image under windows and executing, everything works fine, as expected.
When building a native image under linux with aarch64, the application crashes at runtime with the error message below:

I've already tried to update to latest graalvm version (23), same issue. The application also uses metadata generated with tracing agent.

I've created a nib file to reproduce the issue. (I removed the final binary in the /output-directory, otherwise i would exceed the 25MB limit of file uploads in github issues)
pdfboxsample-bundle.zip

Runtime error message:

Fatal error reported via JNI: Could not allocate library name

Printing instructions (ip=0x00005555aea0092c):
0x00005555aea0082c: 0xe0 0x03 0x1f 0xaa 0xfb 0x73 0x46 0xa9 0xfd 0x7b 0x4f 0xa9 0xff 0x03 0x04 0x91
0x00005555aea0083c: 0xc0 0x03 0x5f 0xd6 0xee 0xbf 0x46 0xad 0xec 0xb7 0x45 0xad 0xea 0xaf 0x44 0xad
0x00005555aea0084c: 0xe8 0xa7 0x43 0xad 0xe1 0x0b 0x46 0xa9 0xf9 0x6b 0x45 0xa9 0xf7 0x63 0x44 0xa9
0x00005555aea0085c: 0xf5 0x5b 0x43 0xa9 0xf3 0x53 0x42 0xa9 0x00 0x00 0x1b 0xcb 0x00 0xfc 0x43 0xd3
0x00005555aea0086c: 0x80 0xab 0x00 0xb9 0xe0 0x07 0x00 0x32 0x88 0x53 0x00 0x91 0x00 0xfd 0x9f 0x88
0x00005555aea0087c: 0xe0 0x03 0x1f 0xaa 0xfb 0x03 0x01 0xaa 0xfc 0x03 0x02 0xaa 0xfd 0x7b 0x4f 0xa9
0x00005555aea0088c: 0xff 0x03 0x04 0x91 0xc0 0x03 0x5f 0xd6 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc
0x00005555aea0089c: 0xcc 0xcc 0xcc 0xcc 0xff 0x43 0x04 0xd1 0xfd 0x7b 0x10 0xa9 0xe2 0x03 0x1b 0xaa
0x00005555aea008ac: 0xe3 0x03 0x1c 0xaa 0xe0 0x05 0x00 0xb4 0xfc 0x03 0x00 0xaa 0x04 0x30 0x40 0xf9
0x00005555aea008bc: 0xfb 0x03 0x04 0xaa 0x88 0x03 0x03 0x91 0x04 0xfd 0xdf 0x88 0x24 0x08 0x00 0x35
0x00005555aea008cc: 0xe4 0x07 0x00 0x32 0xe5 0x03 0x00 0x32 0x86 0x53 0x00 0x91 0xc7 0x7c 0x5f 0x88
0x00005555aea008dc: 0xff 0x00 0x04 0x6b 0xa9 0x00 0x87 0x1a 0xc9 0xfc 0x08 0x88 0x88 0xff 0xff 0x35
0x00005555aea008ec: 0xbf 0x3b 0x03 0xd5 0xe4 0x17 0x9f 0x1a 0xc4 0x06 0x00 0x34 0xee 0x3f 0x07 0xad
0x00005555aea008fc: 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad 0xe2 0x0f 0x07 0xa9
0x00005555aea0090c: 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9 0xf3 0x53 0x03 0xa9
0x00005555aea0091c: 0xe4 0x03 0x00 0xaa 0xe5 0x03 0x01 0xaa 0xe4 0x17 0x02 0xa9 0x62 0x22 0x03 0x94

0x00005555aea0092c: 0x1f 0x20 0x03 0xd5 0xf3 0x07 0x00 0x32 0x88 0x53 0x00 0x91 0x13 0xfd 0x9f 0x88
0x00005555aea0093c: 0xf3 0x53 0x43 0xa9 0xf5 0x5b 0x44 0xa9 0xf7 0x63 0x45 0xa9 0xf9 0x6b 0x46 0xa9
0x00005555aea0094c: 0xfb 0x73 0x47 0xa9 0xe8 0x27 0x44 0xad 0xea 0x2f 0x45 0xad 0xec 0x37 0x46 0xad
0x00005555aea0095c: 0xee 0x3f 0x47 0xad 0xfd 0x7b 0x50 0xa9 0xff 0x43 0x04 0x91 0xc0 0x03 0x5f 0xd6
0x00005555aea0096c: 0xee 0x3f 0x07 0xad 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad
0x00005555aea0097c: 0xe2 0x0f 0x07 0xa9 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9
0x00005555aea0098c: 0xf3 0x53 0x03 0xa9 0xe0 0x07 0x02 0xa9 0x81 0xb0 0x00 0x90 0x21 0x60 0x3d 0x91
0x00005555aea0099c: 0xe0 0x03 0x1f 0x32 0x9c 0xd0 0x01 0x94 0x1f 0x20 0x03 0xd5 0xf3 0x53 0x43 0xa9
0x00005555aea009ac: 0xf5 0x5b 0x44 0xa9 0xf7 0x63 0x45 0xa9 0xf9 0x6b 0x46 0xa9 0xfb 0x73 0x47 0xa9
0x00005555aea009bc: 0xe8 0x27 0x44 0xad 0xea 0x2f 0x45 0xad 0xec 0x37 0x46 0xad 0xee 0x3f 0x47 0xad
0x00005555aea009cc: 0xee 0x3f 0x07 0xad 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad
0x00005555aea009dc: 0xe2 0x0f 0x07 0xa9 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9
0x00005555aea009ec: 0xf3 0x53 0x03 0xa9 0xe0 0x07 0x02 0xa9 0xe0 0x03 0x00 0x32 0xe1 0x03 0x1f 0x2a
0x00005555aea009fc: 0x29 0xf8 0x04 0x94 0x1f 0x20 0x03 0xd5 0xe0 0x07 0x42 0xa9 0xc5 0xff 0xff 0x17
0x00005555aea00a0c: 0xee 0x3f 0x47 0xad 0xec 0x37 0x46 0xad 0xea 0x2f 0x45 0xad 0xe8 0x27 0x44 0xad
0x00005555aea00a1c: 0xe2 0x0f 0x47 0xa9 0xf9 0x6b 0x46 0xa9 0xf7 0x63 0x45 0xa9 0xf5 0x5b 0x44 0xa9

Top of stack (sp=0x00007fffc84dbe80):
0x00007fffc84dbe60: 0x00005555aea0092c 0x00007fffc84dbe80 0x00007fffc84dbf90 0x00005555aea0092c

0x00007fffc84dbe80: 0x00007fffc84dbf90 0x00005555aea00408 0x0000000000000000 0x0000000000000000
0x00007fffc84dbea0: 0x00005555e87a4900 0x00007ff795e847e0 0x00005555e87a4900 0x00007ff795edb000
0x00007fffc84dbec0: 0x00007fffc84dbff8 0x0000000000000003 0x0000000000000041 0x00007ff798d3e9c0
0x00007fffc84dbee0: 0x00007ff798d80000 0x00007ff798d3e9e8 0x00007ff796700000 0x00005555e87a4900
0x00007fffc84dbf00: 0x23ae74d5825ab8a8 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf20: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf40: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf60: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf80: 0x00007fffc84dbf90 0x00007ff795e7cd68 0x00007fffc84ddf90 0x00005555aeab0d48
0x00007fffc84dbfa0: 0x0000000000000001 0x0000000000000000 0x0000000000000060 0x00007ff796f7dac0
0x00007fffc84dbfc0: 0x0000000000000060 0x0000000800000007 0xc3f3f8cd00000000 0x00005555e87a4df0
0x00007fffc84dbfe0: 0x00007ff795df0000 0x0000000000000000 0x0000000000000000 0x64702f737070612f
0x00007fffc84dc000: 0x6178652d786f6266 0x6664702f656c706d 0x6c706d6173786f62 0x656c646e75622d65
0x00007fffc84dc020: 0x2f74757074756f2e 0x2f746c7561666564 0x685f74776162696c 0x2e7373656c646165
0x00007fffc84dc040: 0x0000000000006f73 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dc060: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000

VM thread locals for the failing thread 0x00005555e87a4900:
0: JNIThreadLocalEnvironment.jniFunctions = (bytes) 0x00007ff797385478
8: StackOverflowCheckImpl.stackBoundaryTL = (Word) 0x0000000000000001 (1)
16: Safepoint.safepointRequested = (int) 0x7fff7f95 (2147450773)
20: StatusSupport.statusTL = (int) 0x00000001 (1)
24: ThreadLocalAllocation.regularTLAB = (bytes)
0x00005555e87a4918: 0x00007ff798d00000 0x00007ff798d80000
0x00005555e87a4928: 0x00007ff798d3fbc8 0x0000000000000000
56: JavaFrameAnchors.lastAnchor = (Word) 0x00007fffc84dd020 (140736553930784)
64: JavaThreads.currentVThreadId = (long) 0x0000000000000001 (1)
72: PlatformThreads.currentThread = (Object) 0x00007ff798023cd8
is an object of type java.lang.Thread
80: SubstrateDiagnostics.threadOnlyAttachedForCrashHandler = (bytes) 0x0000000000000000
88: ThreadLocalAllocation.allocatedBytes = (Word) 0x0000000000000000 (0)
96: VMThreads.IsolateTL = (Word) 0x00007ff796700000 (140701357572096)
104: VMThreads.OSThreadHandleTL = (Word) 0x00007fff96914020 (140735719489568)
112: VMThreads.OSThreadIdTL = (Word) 0x00000000000021b5 (8629)
120: VMThreads.StackBase = (Word) 0x00007fffc84e0000 (140736553943040)
128: VMThreads.StackEnd = (Word) 0x00007fffc7ce0000 (140736545554432)
136: VMThreads.StartedByCurrentIsolate = (bytes) 0x0000000000000000
144: VMThreads.nextTL = (Word) 0x0000000000000000 (0)
152: VMThreads.unalignedIsolateThreadMemoryTL = (Word) 0x00005555e87a48d0 (93827460909264)
160: ExceptionUnwind.currentException = (Object) 0x0000000000000000
164: JNIObjectHandles.handles = (Object) 0x00007ff798d00928
is an object of type com.oracle.svm.core.handles.ThreadLocalHandles
168: JNIThreadLocalPendingException.pendingException = (Object) 0x0000000000000000
172: JNIThreadLocalReferencedObjects.referencedObjectsListHead = (Object) 0x0000000000000000
176: JNIThreadOwnedMonitors.ownedMonitors = (Object) 0x0000000000000000
180: NoAllocationVerifier.openVerifiers = (Object) 0x0000000000000000
184: RecurringCallbackTimer.exception = (Object) 0x0000000000000000
188: ThreadingSupportImpl.activeTimer = (Object) 0x0000000000000000
192: ActionOnTransitionToJavaSupport.actionTL = (int) 0x00000000 (0)
196: ImplicitExceptions.implicitExceptionsAreFatal = (int) 0x00000000 (0)
200: Safepoint.suspended = (int) 0x00000000 (0)
204: StackOverflowCheckImpl.yellowZoneStateTL = (int) 0x7efefefe (2130640638)
208: StatusSupport.safepointBehaviorTL = (int) 0x00000001 (1)
212: ThreadingSupportImpl.currentPauseDepth = (int) 0x00000000 (0)

Java frame anchors for the failing thread 0x00005555e87a4900:
Anchor 0x00007fffc84dd020 LastJavaSP 0x00007fffc84dd000 LastJavaIP 0x00005555aeab0d2c

Stacktrace for the failing thread 0x00005555e87a4900 (A=AOT compiled, J=JIT compiled, D=deoptimized, i=inlined):
A SP 0x00007fffc84dbe80 IP 0x00005555aea0092c size=272 com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_FatalError_lnAeWJzbKX7xreBcsLcdq7(IsolateEnterStub.java:0)
i SP 0x00007fffc84dd000 IP 0x00005555aeab0d2c size=96 com.oracle.svm.core.jni.JNIOnLoadFunctionPointer.invoke(JNILibraryInitializer.java)
A SP 0x00007fffc84dd000 IP 0x00005555aeab0d2c size=96 com.oracle.svm.core.jni.JNILibraryInitializer.callOnLoadFunction(JNILibraryInitializer.java:70)
A SP 0x00007fffc84dd060 IP 0x00005555aeab07c0 size=64 com.oracle.svm.core.jni.JNILibraryInitializer.initialize(JNILibraryInitializer.java:131)
A SP 0x00007fffc84dd0a0 IP 0x00005555aea877ec size=128 com.oracle.svm.core.jdk.NativeLibrarySupport.addLibrary(NativeLibrarySupport.java:128)
i SP 0x00007fffc84dd120 IP 0x00005555aea86b24 size=64 com.oracle.svm.core.jdk.NativeLibrarySupport.addLibrary(NativeLibrarySupport.java:84)
A SP 0x00007fffc84dd120 IP 0x00005555aea86b24 size=64 com.oracle.svm.core.jdk.NativeLibraries.loadLibrary0(NativeLibraries.java:147)
A SP 0x00007fffc84dd160 IP 0x00005555aea86df8 size=112 com.oracle.svm.core.jdk.NativeLibraries.loadLibraryRelative(NativeLibraries.java:128)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.ClassLoader.loadLibrary(ClassLoader.java:108)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.Runtime.loadLibrary0(Runtime.java:916)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.System.loadLibrary(System.java:2066)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.awt.image.ColorModel$1.run(ColorModel.java:211)
A SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.awt.image.ColorModel$1.run(ColorModel.java:209)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.security.AccessController.executePrivileged(AccessController.java:132)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.security.AccessController.doPrivileged(AccessController.java:319)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.awt.image.ColorModel.loadLibraries(ColorModel.java:208)
A SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.awt.image.ColorModel.(ColorModel.java:221)
A SP 0x00007fffc84dd230 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dd260 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dd2a0 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84dd5e0 IP 0x00005555af242fd8 size=48 java.awt.image.Raster.(Raster.java:172)
A SP 0x00007fffc84dd610 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dd640 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dd680 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84dd9c0 IP 0x00005555afa54010 size=48 org.apache.pdfbox.pdmodel.PDDocument.(PDDocument.java:105)
A SP 0x00007fffc84dd9f0 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dda20 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dda60 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84ddda0 IP 0x00005555af1b0e70 size=144 de.rotti.samples.pdfbox.Application.main(Application.java:25)
i SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
i SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 com.oracle.svm.core.JavaMainWrapper.invokeMain(JavaMainWrapper.java:181)
A SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 com.oracle.svm.core.JavaMainWrapper.runCore0(JavaMainWrapper.java:232)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:201)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.doRun(JavaMainWrapper.java:299)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:284)
A SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_XNhh1mz2Ib2aPR1wdv014D(IsolateEnterStub.java:0)

Threads:
0x00007ff790000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Reference Handler" - 0x00007ff797e7ff88, daemon, stack(0x00007ff795f04000,0x00007ff796700000)
0x00005555e87a4900 STATUS_IN_JAVA (PREVENT_VM_FROM_REACHING_SAFEPOINT) "main" - 0x00007ff798023cd8, stack(0x00007fffc7ce0000,0x00007fffc84e0000)

No VMOperation in progress

The 30 most recent VM operation status changes:

VM mutexes:
mutex "RealLog.backTracePrinterMutex" is unlocked.
mutex "freeList" is unlocked.
mutex "mainVMOperationControlWorkQueue" is unlocked.
mutex "referencePendingList" is unlocked.
mutex "thread" is unlocked.

Build time information:
Version: 23+37, serial gc, compressed references
Platform: linux/aarch64
Page size: 65536
Container support: true
CPU features used for AOT compiled code: FP, ASIMD

Runtime information:
CPU cores (container): unknown
CPU cores (OS): 4
Memory: 8052M
Page size: 16384
VM uptime: 0.014s
Current timestamp: 1733402485411
AOT compiled code: 0x00005555ae9c0000 - 0x00005555affbd43f

OS information:
Max threads: 61731
Max memory mappings: 65530
Max PID: 4194304

Command line:

Heap settings and statistics:
Supports isolates: true
Heap base: 0x00007ff796700000
Object reference size: 4
Reserved object header bits: 0b11111
Aligned chunk size: 524288
Large array threshold: 131072
Incremental collections: 0
Complete collections: 0

Heap usage:
Eden: 1.00M (0.00M in 0 aligned chunks, 0.00M in 0 unaligned chunks)
Old: 0.00M (0.00M in 0 aligned chunks, 0.00M in 0 unaligned chunks)

Native image heap boundaries:
ReadOnly: 0x00007ff796780830 - 0x00007ff797385470
ReadOnly Relocatables: 0x00007ff797385470 - 0x00007ff7974f2fb0
Writable: 0x00007ff7974f2fb0 - 0x00007ff7987680a0
Writable Huge: 0x00007ff798780038 - 0x00007ff798802a78
ReadOnly Huge: 0x00007ff798802ab0 - 0x00007ff798ce12e0

Heap chunks: E=eden, S=survivor, O=old, F=free; A=aligned chunk, U=unaligned chunk; T=to space

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

Tried with Oracle GraalVM 21+35.1 and Oracle GraalVM 23+37.1

Operating System and Version

Container Linux 7ca6fdf83717 6.6.31-v8+ #1766 SMP PREEMPT Fri May 24 12:14:10 BST 2024 aarch64 aarch64 aarch64 GNU/Linux (Ubuntu 22.04) - HOST: Linux rp-5b8-2 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux (Raspberry pi 5)

Troubleshooting Confirmation

Run Command

Build the .nib-file to an native image on linux aarch64 with latest 23 GraalVM and then execute ./pdfboxsample-bundle.output/default/pdfboxsample

Expected Behavior

The application prints the following output:

Read image from scan 15929 size
Image to embed: width 768,000000, height 200,000000
Finished creating pdf. Size 16801

Actual Behavior

Application crashes with following error:
Fatal error reported via JNI: Could not allocate library name

Printing instructions (ip=0x00005555aea0092c):
0x00005555aea0082c: 0xe0 0x03 0x1f 0xaa 0xfb 0x73 0x46 0xa9 0xfd 0x7b 0x4f 0xa9 0xff 0x03 0x04 0x91
0x00005555aea0083c: 0xc0 0x03 0x5f 0xd6 0xee 0xbf 0x46 0xad 0xec 0xb7 0x45 0xad 0xea 0xaf 0x44 0xad
0x00005555aea0084c: 0xe8 0xa7 0x43 0xad 0xe1 0x0b 0x46 0xa9 0xf9 0x6b 0x45 0xa9 0xf7 0x63 0x44 0xa9
0x00005555aea0085c: 0xf5 0x5b 0x43 0xa9 0xf3 0x53 0x42 0xa9 0x00 0x00 0x1b 0xcb 0x00 0xfc 0x43 0xd3
0x00005555aea0086c: 0x80 0xab 0x00 0xb9 0xe0 0x07 0x00 0x32 0x88 0x53 0x00 0x91 0x00 0xfd 0x9f 0x88
0x00005555aea0087c: 0xe0 0x03 0x1f 0xaa 0xfb 0x03 0x01 0xaa 0xfc 0x03 0x02 0xaa 0xfd 0x7b 0x4f 0xa9
0x00005555aea0088c: 0xff 0x03 0x04 0x91 0xc0 0x03 0x5f 0xd6 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc
0x00005555aea0089c: 0xcc 0xcc 0xcc 0xcc 0xff 0x43 0x04 0xd1 0xfd 0x7b 0x10 0xa9 0xe2 0x03 0x1b 0xaa
0x00005555aea008ac: 0xe3 0x03 0x1c 0xaa 0xe0 0x05 0x00 0xb4 0xfc 0x03 0x00 0xaa 0x04 0x30 0x40 0xf9
0x00005555aea008bc: 0xfb 0x03 0x04 0xaa 0x88 0x03 0x03 0x91 0x04 0xfd 0xdf 0x88 0x24 0x08 0x00 0x35
0x00005555aea008cc: 0xe4 0x07 0x00 0x32 0xe5 0x03 0x00 0x32 0x86 0x53 0x00 0x91 0xc7 0x7c 0x5f 0x88
0x00005555aea008dc: 0xff 0x00 0x04 0x6b 0xa9 0x00 0x87 0x1a 0xc9 0xfc 0x08 0x88 0x88 0xff 0xff 0x35
0x00005555aea008ec: 0xbf 0x3b 0x03 0xd5 0xe4 0x17 0x9f 0x1a 0xc4 0x06 0x00 0x34 0xee 0x3f 0x07 0xad
0x00005555aea008fc: 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad 0xe2 0x0f 0x07 0xa9
0x00005555aea0090c: 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9 0xf3 0x53 0x03 0xa9
0x00005555aea0091c: 0xe4 0x03 0x00 0xaa 0xe5 0x03 0x01 0xaa 0xe4 0x17 0x02 0xa9 0x62 0x22 0x03 0x94

0x00005555aea0092c: 0x1f 0x20 0x03 0xd5 0xf3 0x07 0x00 0x32 0x88 0x53 0x00 0x91 0x13 0xfd 0x9f 0x88
0x00005555aea0093c: 0xf3 0x53 0x43 0xa9 0xf5 0x5b 0x44 0xa9 0xf7 0x63 0x45 0xa9 0xf9 0x6b 0x46 0xa9
0x00005555aea0094c: 0xfb 0x73 0x47 0xa9 0xe8 0x27 0x44 0xad 0xea 0x2f 0x45 0xad 0xec 0x37 0x46 0xad
0x00005555aea0095c: 0xee 0x3f 0x47 0xad 0xfd 0x7b 0x50 0xa9 0xff 0x43 0x04 0x91 0xc0 0x03 0x5f 0xd6
0x00005555aea0096c: 0xee 0x3f 0x07 0xad 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad
0x00005555aea0097c: 0xe2 0x0f 0x07 0xa9 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9
0x00005555aea0098c: 0xf3 0x53 0x03 0xa9 0xe0 0x07 0x02 0xa9 0x81 0xb0 0x00 0x90 0x21 0x60 0x3d 0x91
0x00005555aea0099c: 0xe0 0x03 0x1f 0x32 0x9c 0xd0 0x01 0x94 0x1f 0x20 0x03 0xd5 0xf3 0x53 0x43 0xa9
0x00005555aea009ac: 0xf5 0x5b 0x44 0xa9 0xf7 0x63 0x45 0xa9 0xf9 0x6b 0x46 0xa9 0xfb 0x73 0x47 0xa9
0x00005555aea009bc: 0xe8 0x27 0x44 0xad 0xea 0x2f 0x45 0xad 0xec 0x37 0x46 0xad 0xee 0x3f 0x47 0xad
0x00005555aea009cc: 0xee 0x3f 0x07 0xad 0xec 0x37 0x06 0xad 0xea 0x2f 0x05 0xad 0xe8 0x27 0x04 0xad
0x00005555aea009dc: 0xe2 0x0f 0x07 0xa9 0xf9 0x6b 0x06 0xa9 0xf7 0x63 0x05 0xa9 0xf5 0x5b 0x04 0xa9
0x00005555aea009ec: 0xf3 0x53 0x03 0xa9 0xe0 0x07 0x02 0xa9 0xe0 0x03 0x00 0x32 0xe1 0x03 0x1f 0x2a
0x00005555aea009fc: 0x29 0xf8 0x04 0x94 0x1f 0x20 0x03 0xd5 0xe0 0x07 0x42 0xa9 0xc5 0xff 0xff 0x17
0x00005555aea00a0c: 0xee 0x3f 0x47 0xad 0xec 0x37 0x46 0xad 0xea 0x2f 0x45 0xad 0xe8 0x27 0x44 0xad
0x00005555aea00a1c: 0xe2 0x0f 0x47 0xa9 0xf9 0x6b 0x46 0xa9 0xf7 0x63 0x45 0xa9 0xf5 0x5b 0x44 0xa9

Top of stack (sp=0x00007fffc84dbe80):
0x00007fffc84dbe60: 0x00005555aea0092c 0x00007fffc84dbe80 0x00007fffc84dbf90 0x00005555aea0092c

0x00007fffc84dbe80: 0x00007fffc84dbf90 0x00005555aea00408 0x0000000000000000 0x0000000000000000
0x00007fffc84dbea0: 0x00005555e87a4900 0x00007ff795e847e0 0x00005555e87a4900 0x00007ff795edb000
0x00007fffc84dbec0: 0x00007fffc84dbff8 0x0000000000000003 0x0000000000000041 0x00007ff798d3e9c0
0x00007fffc84dbee0: 0x00007ff798d80000 0x00007ff798d3e9e8 0x00007ff796700000 0x00005555e87a4900
0x00007fffc84dbf00: 0x23ae74d5825ab8a8 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf20: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf40: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf60: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dbf80: 0x00007fffc84dbf90 0x00007ff795e7cd68 0x00007fffc84ddf90 0x00005555aeab0d48
0x00007fffc84dbfa0: 0x0000000000000001 0x0000000000000000 0x0000000000000060 0x00007ff796f7dac0
0x00007fffc84dbfc0: 0x0000000000000060 0x0000000800000007 0xc3f3f8cd00000000 0x00005555e87a4df0
0x00007fffc84dbfe0: 0x00007ff795df0000 0x0000000000000000 0x0000000000000000 0x64702f737070612f
0x00007fffc84dc000: 0x6178652d786f6266 0x6664702f656c706d 0x6c706d6173786f62 0x656c646e75622d65
0x00007fffc84dc020: 0x2f74757074756f2e 0x2f746c7561666564 0x685f74776162696c 0x2e7373656c646165
0x00007fffc84dc040: 0x0000000000006f73 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x00007fffc84dc060: 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000

VM thread locals for the failing thread 0x00005555e87a4900:
0: JNIThreadLocalEnvironment.jniFunctions = (bytes) 0x00007ff797385478
8: StackOverflowCheckImpl.stackBoundaryTL = (Word) 0x0000000000000001 (1)
16: Safepoint.safepointRequested = (int) 0x7fff7f95 (2147450773)
20: StatusSupport.statusTL = (int) 0x00000001 (1)
24: ThreadLocalAllocation.regularTLAB = (bytes)
0x00005555e87a4918: 0x00007ff798d00000 0x00007ff798d80000
0x00005555e87a4928: 0x00007ff798d3fbc8 0x0000000000000000
56: JavaFrameAnchors.lastAnchor = (Word) 0x00007fffc84dd020 (140736553930784)
64: JavaThreads.currentVThreadId = (long) 0x0000000000000001 (1)
72: PlatformThreads.currentThread = (Object) 0x00007ff798023cd8
is an object of type java.lang.Thread
80: SubstrateDiagnostics.threadOnlyAttachedForCrashHandler = (bytes) 0x0000000000000000
88: ThreadLocalAllocation.allocatedBytes = (Word) 0x0000000000000000 (0)
96: VMThreads.IsolateTL = (Word) 0x00007ff796700000 (140701357572096)
104: VMThreads.OSThreadHandleTL = (Word) 0x00007fff96914020 (140735719489568)
112: VMThreads.OSThreadIdTL = (Word) 0x00000000000021b5 (8629)
120: VMThreads.StackBase = (Word) 0x00007fffc84e0000 (140736553943040)
128: VMThreads.StackEnd = (Word) 0x00007fffc7ce0000 (140736545554432)
136: VMThreads.StartedByCurrentIsolate = (bytes) 0x0000000000000000
144: VMThreads.nextTL = (Word) 0x0000000000000000 (0)
152: VMThreads.unalignedIsolateThreadMemoryTL = (Word) 0x00005555e87a48d0 (93827460909264)
160: ExceptionUnwind.currentException = (Object) 0x0000000000000000
164: JNIObjectHandles.handles = (Object) 0x00007ff798d00928
is an object of type com.oracle.svm.core.handles.ThreadLocalHandles
168: JNIThreadLocalPendingException.pendingException = (Object) 0x0000000000000000
172: JNIThreadLocalReferencedObjects.referencedObjectsListHead = (Object) 0x0000000000000000
176: JNIThreadOwnedMonitors.ownedMonitors = (Object) 0x0000000000000000
180: NoAllocationVerifier.openVerifiers = (Object) 0x0000000000000000
184: RecurringCallbackTimer.exception = (Object) 0x0000000000000000
188: ThreadingSupportImpl.activeTimer = (Object) 0x0000000000000000
192: ActionOnTransitionToJavaSupport.actionTL = (int) 0x00000000 (0)
196: ImplicitExceptions.implicitExceptionsAreFatal = (int) 0x00000000 (0)
200: Safepoint.suspended = (int) 0x00000000 (0)
204: StackOverflowCheckImpl.yellowZoneStateTL = (int) 0x7efefefe (2130640638)
208: StatusSupport.safepointBehaviorTL = (int) 0x00000001 (1)
212: ThreadingSupportImpl.currentPauseDepth = (int) 0x00000000 (0)

Java frame anchors for the failing thread 0x00005555e87a4900:
Anchor 0x00007fffc84dd020 LastJavaSP 0x00007fffc84dd000 LastJavaIP 0x00005555aeab0d2c

Stacktrace for the failing thread 0x00005555e87a4900 (A=AOT compiled, J=JIT compiled, D=deoptimized, i=inlined):
A SP 0x00007fffc84dbe80 IP 0x00005555aea0092c size=272 com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_FatalError_lnAeWJzbKX7xreBcsLcdq7(IsolateEnterStub.java:0)
i SP 0x00007fffc84dd000 IP 0x00005555aeab0d2c size=96 com.oracle.svm.core.jni.JNIOnLoadFunctionPointer.invoke(JNILibraryInitializer.java)
A SP 0x00007fffc84dd000 IP 0x00005555aeab0d2c size=96 com.oracle.svm.core.jni.JNILibraryInitializer.callOnLoadFunction(JNILibraryInitializer.java:70)
A SP 0x00007fffc84dd060 IP 0x00005555aeab07c0 size=64 com.oracle.svm.core.jni.JNILibraryInitializer.initialize(JNILibraryInitializer.java:131)
A SP 0x00007fffc84dd0a0 IP 0x00005555aea877ec size=128 com.oracle.svm.core.jdk.NativeLibrarySupport.addLibrary(NativeLibrarySupport.java:128)
i SP 0x00007fffc84dd120 IP 0x00005555aea86b24 size=64 com.oracle.svm.core.jdk.NativeLibrarySupport.addLibrary(NativeLibrarySupport.java:84)
A SP 0x00007fffc84dd120 IP 0x00005555aea86b24 size=64 com.oracle.svm.core.jdk.NativeLibraries.loadLibrary0(NativeLibraries.java:147)
A SP 0x00007fffc84dd160 IP 0x00005555aea86df8 size=112 com.oracle.svm.core.jdk.NativeLibraries.loadLibraryRelative(NativeLibraries.java:128)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.ClassLoader.loadLibrary(ClassLoader.java:108)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.Runtime.loadLibrary0(Runtime.java:916)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.lang.System.loadLibrary(System.java:2066)
i SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.awt.image.ColorModel$1.run(ColorModel.java:211)
A SP 0x00007fffc84dd1d0 IP 0x00005555af210214 size=48 java.awt.image.ColorModel$1.run(ColorModel.java:209)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.security.AccessController.executePrivileged(AccessController.java:132)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.security.AccessController.doPrivileged(AccessController.java:319)
i SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.awt.image.ColorModel.loadLibraries(ColorModel.java:208)
A SP 0x00007fffc84dd200 IP 0x00005555af210660 size=48 java.awt.image.ColorModel.(ColorModel.java:221)
A SP 0x00007fffc84dd230 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dd260 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dd2a0 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84dd5e0 IP 0x00005555af242fd8 size=48 java.awt.image.Raster.(Raster.java:172)
A SP 0x00007fffc84dd610 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dd640 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dd680 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84dd9c0 IP 0x00005555afa54010 size=48 org.apache.pdfbox.pdmodel.PDDocument.(PDDocument.java:105)
A SP 0x00007fffc84dd9f0 IP 0x00005555ae9e4800 size=48 com.oracle.svm.core.classinitialization.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:552)
A SP 0x00007fffc84dda20 IP 0x00005555ae9e466c size=64 com.oracle.svm.core.classinitialization.ClassInitializationInfo.doInitialize(ClassInitializationInfo.java:465)
A SP 0x00007fffc84dda60 IP 0x00005555ae9e9604 size=832 com.oracle.svm.core.classinitialization.ClassInitializationInfo.slowPath(ClassInitializationInfo.java:414)
A SP 0x00007fffc84ddda0 IP 0x00005555af1b0e70 size=144 de.rotti.samples.pdfbox.Application.main(Application.java:25)
i SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
i SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 com.oracle.svm.core.JavaMainWrapper.invokeMain(JavaMainWrapper.java:181)
A SP 0x00007fffc84dde30 IP 0x00005555ae9c9bcc size=48 com.oracle.svm.core.JavaMainWrapper.runCore0(JavaMainWrapper.java:232)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:201)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.doRun(JavaMainWrapper.java:299)
i SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:284)
A SP 0x00007fffc84dde60 IP 0x00005555ae9ff934 size=304 com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_XNhh1mz2Ib2aPR1wdv014D(IsolateEnterStub.java:0)

Threads:
0x00007ff790000b80 STATUS_IN_NATIVE (ALLOW_SAFEPOINT) "Reference Handler" - 0x00007ff797e7ff88, daemon, stack(0x00007ff795f04000,0x00007ff796700000)
0x00005555e87a4900 STATUS_IN_JAVA (PREVENT_VM_FROM_REACHING_SAFEPOINT) "main" - 0x00007ff798023cd8, stack(0x00007fffc7ce0000,0x00007fffc84e0000)

No VMOperation in progress

The 30 most recent VM operation status changes:

VM mutexes:
mutex "RealLog.backTracePrinterMutex" is unlocked.
mutex "freeList" is unlocked.
mutex "mainVMOperationControlWorkQueue" is unlocked.
mutex "referencePendingList" is unlocked.
mutex "thread" is unlocked.

Build time information:
Version: 23+37, serial gc, compressed references
Platform: linux/aarch64
Page size: 65536
Container support: true
CPU features used for AOT compiled code: FP, ASIMD

Runtime information:
CPU cores (container): unknown
CPU cores (OS): 4
Memory: 8052M
Page size: 16384
VM uptime: 0.014s
Current timestamp: 1733402485411
AOT compiled code: 0x00005555ae9c0000 - 0x00005555affbd43f

OS information:
Max threads: 61731
Max memory mappings: 65530
Max PID: 4194304

Command line:

Heap settings and statistics:
Supports isolates: true
Heap base: 0x00007ff796700000
Object reference size: 4
Reserved object header bits: 0b11111
Aligned chunk size: 524288
Large array threshold: 131072
Incremental collections: 0
Complete collections: 0

Heap usage:
Eden: 1.00M (0.00M in 0 aligned chunks, 0.00M in 0 unaligned chunks)
Old: 0.00M (0.00M in 0 aligned chunks, 0.00M in 0 unaligned chunks)

Native image heap boundaries:
ReadOnly: 0x00007ff796780830 - 0x00007ff797385470
ReadOnly Relocatables: 0x00007ff797385470 - 0x00007ff7974f2fb0
Writable: 0x00007ff7974f2fb0 - 0x00007ff7987680a0
Writable Huge: 0x00007ff798780038 - 0x00007ff798802a78
ReadOnly Huge: 0x00007ff798802ab0 - 0x00007ff798ce12e0

Heap chunks: E=eden, S=survivor, O=old, F=free; A=aligned chunk, U=unaligned chunk; T=to space

Steps to Reproduce

Build the .nib-file to an native image on linux aarch64 with latest 23 GraalVM and then execute ./pdfboxsample-bundle.output/default/pdfboxsample

Additional Context

I've already tried to set a lot of options i found in other issues or in the troubleshooting guide like:
-Djava.awt.headless=false (also tried the other one -Djava.awt.headless=true)
-H:+AddAllCharsets
-H:+IncludeAllLocales

My build an execution runs in an docker container (based on ubuntu 22.04) image. The host system it's running on, is a Raspberry pi 5 with Raspbian. Don't know if this is relevant here.

Run-Time Log Output and Error Messages

No response

@selhagani
Copy link
Member

Hi @Rottinator,

Thank you for reaching out to us!

Unfortunately, our policy prohibits downloading zip files for reproducer purposes. To assist you effectively, could you please provide a concise reproducer along with the steps to replicate the issue? It would be helpful if you could share this in a public GitHub repository.

@Rottinator
Copy link
Author

Hi @selhagani
no problem. I've uploaded my sample to https://github.com/Rottinator/graalvm-pdfbox-example
I've also figured out, that the same problem is happening on x64 systems with linux, so it looks like a general linux problem and not a aarch64 specific one.

@Rottinator Rottinator changed the title [Native Image] - Application crashes at runtime when using AWT on Linux aarch64 [Native Image] - Application crashes at runtime when using AWT on Linux Dec 5, 2024
@selhagani selhagani changed the title [Native Image] - Application crashes at runtime when using AWT on Linux [GR-60364] [Native Image] - Application crashes at runtime when using AWT on Linux Dec 6, 2024
@selhagani
Copy link
Member

Hi @Rottinator,

Thank you for providing us the reproducer. We will take a closer look into this and I'll make sure to keep you updated.

@fniephaus
Copy link
Member

Hi @Rottinator,
the crash seems to be JNI-related and Native Image requires metadata for JNI to function properly. Do you have followed the recommendation in the build output of the Native Image build process and generated reachability metadata for this application (which includes JNI metadata)?

@Rottinator
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants