libffmpeg sample crashes @ “avcodec_close” in 'finally' block.
The JVM crash is intermittent. The crash log looks as follows:
------
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000013048ab56, pid=64292, tid=10243
#
# JRE version: OpenJDK Runtime Environment (22.0) (build 22-internal-adhoc.sundarajanathijegannathan.panama-foreign)
# Java VM: OpenJDK 64-Bit Server VM (22-internal-adhoc.sundarajanathijegannathan.panama-foreign, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
# Problematic frame:
# C [libavcodec.58.134.100.dylib+0x780b56] avcodec_close+0x1d
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: --enable-native-access=org.openjdk.jextract --enable-preview --enable-native-access=ALL-UNNAMED --enable-preview -Djdk.internal.javac.source=22 -Djava.library.path=/usr/local/Cellar/ffmpeg@4/4.4.4/lib --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.Main LibffmpegMain.java /Users/sundarajanathijegannathan/Downloads/file_example_MP4_480_1_5MG.mp4
Host: "MacBookPro16,1" x86_64 2600 MHz, 12 cores, 32G, Darwin 22.4.0, macOS 13.3.1 (22E261)
Time: Tue Aug 29 16:37:08 2023 IST elapsed time: 2.125552 seconds (0d 0h 0m 2s)
--------------- T H R E A D ---------------
Current thread (0x00007f9b3c008200): JavaThread "main" [_thread_in_native, id=10243, stack(0x00007000037c6000,0x00007000038c6000) (1024K)]
Stack: [0x00007000037c6000,0x00007000038c6000], sp=0x00007000038c5090, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libavcodec.58.134.100.dylib+0x780b56] avcodec_close+0x1d
j java.lang.invoke.LambdaForm$MH+0x0000000800254800.invoke(Ljava/lang/Object;JJJ)I+12 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x0000000800391000.invokeExact_MT(Ljava/lang/Object;JJJLjava/lang/Object;)I+23 java.base@22-internal
j jdk.internal.foreign.abi.DowncallStub+0x0000000800254c00.invoke(Ljava/lang/foreign/SegmentAllocator;Ljava/lang/foreign/MemorySegment;Ljava/lang/foreign/MemorySegment;J)I+73 java.base@22-internal
j java.lang.invoke.LambdaForm$DMH+0x0000000800255000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;J)I+16 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x000000080028c800.invoke(Ljava/lang/Object;Ljava/lang/Object;)I+52 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x0000000800390800.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+19 java.base@22-internal
j libffmpeg.Libffmpeg_2.avcodec_close(Ljava/lang/foreign/MemorySegment;)I+6
j LibffmpegMain.run([Ljava/lang/String;)LLibffmpegMain$Exit;+1785
j LibffmpegMain.main([Ljava/lang/String;)V+1
The JVM crash is intermittent. The crash log looks as follows:
------
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000013048ab56, pid=64292, tid=10243
#
# JRE version: OpenJDK Runtime Environment (22.0) (build 22-internal-adhoc.sundarajanathijegannathan.panama-foreign)
# Java VM: OpenJDK 64-Bit Server VM (22-internal-adhoc.sundarajanathijegannathan.panama-foreign, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
# Problematic frame:
# C [libavcodec.58.134.100.dylib+0x780b56] avcodec_close+0x1d
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- S U M M A R Y ------------
Command Line: --enable-native-access=org.openjdk.jextract --enable-preview --enable-native-access=ALL-UNNAMED --enable-preview -Djdk.internal.javac.source=22 -Djava.library.path=/usr/local/Cellar/ffmpeg@4/4.4.4/lib --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.Main LibffmpegMain.java /Users/sundarajanathijegannathan/Downloads/file_example_MP4_480_1_5MG.mp4
Host: "MacBookPro16,1" x86_64 2600 MHz, 12 cores, 32G, Darwin 22.4.0, macOS 13.3.1 (22E261)
Time: Tue Aug 29 16:37:08 2023 IST elapsed time: 2.125552 seconds (0d 0h 0m 2s)
--------------- T H R E A D ---------------
Current thread (0x00007f9b3c008200): JavaThread "main" [_thread_in_native, id=10243, stack(0x00007000037c6000,0x00007000038c6000) (1024K)]
Stack: [0x00007000037c6000,0x00007000038c6000], sp=0x00007000038c5090, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libavcodec.58.134.100.dylib+0x780b56] avcodec_close+0x1d
j java.lang.invoke.LambdaForm$MH+0x0000000800254800.invoke(Ljava/lang/Object;JJJ)I+12 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x0000000800391000.invokeExact_MT(Ljava/lang/Object;JJJLjava/lang/Object;)I+23 java.base@22-internal
j jdk.internal.foreign.abi.DowncallStub+0x0000000800254c00.invoke(Ljava/lang/foreign/SegmentAllocator;Ljava/lang/foreign/MemorySegment;Ljava/lang/foreign/MemorySegment;J)I+73 java.base@22-internal
j java.lang.invoke.LambdaForm$DMH+0x0000000800255000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;J)I+16 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x000000080028c800.invoke(Ljava/lang/Object;Ljava/lang/Object;)I+52 java.base@22-internal
j java.lang.invoke.LambdaForm$MH+0x0000000800390800.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)I+19 java.base@22-internal
j libffmpeg.Libffmpeg_2.avcodec_close(Ljava/lang/foreign/MemorySegment;)I+6
j LibffmpegMain.run([Ljava/lang/String;)LLibffmpegMain$Exit;+1785
j LibffmpegMain.main([Ljava/lang/String;)V+1