MATLAB runtime crash spring boot / kafka / rocksdb

1 次查看(过去 30 天)
I have a spring boot project "sensor-fusion-service" running in a Docker container that has the MATLAB compiler runtime installed. This service calls to a java library compiled from MATLAB to perform sensor fusion processing. The service starts as normal, however I eventually get the following crash report:
[sensor-fusion-service] --------------------------------------------------------------------------------
[sensor-fusion-service] std::terminate() detected at 2022-10-10 07:22:21 +0000
[sensor-fusion-service] --------------------------------------------------------------------------------
[sensor-fusion-service]
[sensor-fusion-service] Configuration:
[sensor-fusion-service] Crash Decoding : Disabled - No sandbox or build area path
[sensor-fusion-service] Crash Mode : continue (default)
[sensor-fusion-service] Default Encoding : UTF-8
[sensor-fusion-service] Deployed : true
[sensor-fusion-service] GNU C Library : 2.28 stable
[sensor-fusion-service] Graphics Driver : Uninitialized software
[sensor-fusion-service] Graphics card 1 : 0x15ad ( 0x15ad ) 0x405 Version 2.15.0.0 (0-0-0)
[sensor-fusion-service] Java Version : Java 11.0.10+9 with Oracle Corporation OpenJDK 64-Bit Server VM mixed mode, sharing
[sensor-fusion-service] MATLAB Architecture : glnxa64
[sensor-fusion-service] MATLAB Entitlement ID : Unknown
[sensor-fusion-service] MATLAB Root : /root/mcr/v912
[sensor-fusion-service] MATLAB Version : 9.12.0.1956245 (R2022a) Update 2
[sensor-fusion-service] OpenGL : software
[sensor-fusion-service] Operating System : Linux 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 9 16:09:48 UTC 2021 x86_64
[sensor-fusion-service] Process ID : 16
[sensor-fusion-service] Processor ID : x86 Family 6 Model 85 Stepping 7, GenuineIntel
[sensor-fusion-service] Session Key : b1c061fc-4eab-4e34-a8c9-b9024f559df4
[sensor-fusion-service] Window System : No active display
[sensor-fusion-service]
[sensor-fusion-service] Fault Count: 1
[sensor-fusion-service]
[sensor-fusion-service]
[sensor-fusion-service] Abnormal termination:
[sensor-fusion-service] std::terminate()
[sensor-fusion-service]
[sensor-fusion-service] Current Thread: 'sensor-fusion-s' id 139927758305024
[sensor-fusion-service]
[sensor-fusion-service] Register State (captured):
[sensor-fusion-service] RAX = 00007f4378537601 RBX = 00007f440e9e6228
[sensor-fusion-service] RCX = 000000000000000a RDX = 00007f440e9e0020
[sensor-fusion-service] RSP = 00007f4378537610 RBP = 00007f43785379f0
[sensor-fusion-service] RSI = 00007f440e9c5f9c RDI = 00007f4378537620
[sensor-fusion-service]
[sensor-fusion-service] R8 = 0000000000000000 R9 = 00007f4378537900
[sensor-fusion-service] R10 = 00030000fffffcff R11 = 0003000300030003
[sensor-fusion-service] R12 = 00007f440e9f62a8 R13 = 00007f4378537ed0
[sensor-fusion-service] R14 = 00007f4378537a50 R15 = 0000000000000000
[sensor-fusion-service]
[sensor-fusion-service] RIP = 00007f440e9719fe EFL = 00007f4445a33590
[sensor-fusion-service]
[sensor-fusion-service] CS = 0000 FS = 0000 GS = 7f44
[sensor-fusion-service]
[sensor-fusion-service] Stack Trace (captured):
[sensor-fusion-service] [ 0] 0x00007f440e9be263 /root/mcr/v912/bin/glnxa64/libmwfl.so+00655971
[sensor-fusion-service] [ 1] 0x00007f440e9be2bc /root/mcr/v912/bin/glnxa64/libmwfl.so+00656060 _ZN10foundation4core4diag15stacktrace_base7captureEm+00000028
[sensor-fusion-service] [ 2] 0x00007f440e96b8d8 /root/mcr/v912/bin/glnxa64/libmwfl.so+00317656
[sensor-fusion-service] [ 3] 0x00007f440e96caaa /root/mcr/v912/bin/glnxa64/libmwfl.so+00322218
[sensor-fusion-service] [ 4] 0x00007f43f6e37022 /root/mcr/v912/bin/glnxa64/libmwmcr.so+01056802
[sensor-fusion-service] [ 5] 0x00007f43f6e3a88f /root/mcr/v912/bin/glnxa64/libmwmcr.so+01071247
[sensor-fusion-service] [ 6] 0x00007f43f6e3aa48 /root/mcr/v912/bin/glnxa64/libmwmcr.so+01071688
[sensor-fusion-service] [ 7] 0x00007f43f6e3aedd /root/mcr/v912/bin/glnxa64/libmwmcr.so+01072861
[sensor-fusion-service] [ 8] 0x00007f4462eba7c6 /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00710598
[sensor-fusion-service] [ 9] 0x00007f4462eba831 /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00710705
[sensor-fusion-service] [ 10] 0x00007f4462ebaac4 /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00711364
[sensor-fusion-service] [ 11] 0x00007f440e96615a /root/mcr/v912/bin/glnxa64/libmwfl.so+00295258
[sensor-fusion-service] [ 12] 0x00007f4462ebaf1c /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00712476 _Znwm+00000044
[sensor-fusion-service] [ 13] 0x00007f4462ef9151 /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00966993 _ZNSs4_Rep9_S_createEmmRKSaIcE+00000097
[sensor-fusion-service] [ 14] 0x00007f4462ef92d3 /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00967379 _ZNSs9_M_mutateEmmm+00000099
[sensor-fusion-service] [ 15] 0x00007f4462ef949b /root/mcr/v912/sys/os/glnxa64/libstdc++.so.6+00967835 _ZNSs12_M_leak_hardEv+00000059
[sensor-fusion-service] [ 16] 0x00007f434a3588a1 /tmp/librocksdbjni13914221050463934162.so+04692129 _ZNSt8__detail9_CompilerISt12regex_traitsIcEE22_M_insert_char_matcherILb0ELb0EEEvv+00000049
[sensor-fusion-service] [ 17] 0x00007f434a361e8e /tmp/librocksdbjni13914221050463934162.so+04730510 _ZNSt8__detail9_CompilerISt12regex_traitsIcEE7_M_atomEv+00000238
[sensor-fusion-service] [ 18] 0x00007f434a362310 /tmp/librocksdbjni13914221050463934162.so+04731664 _ZNSt8__detail9_CompilerISt12regex_traitsIcEE14_M_alternativeEv+00000240
[sensor-fusion-service] [ 19] 0x00007f434a36253c /tmp/librocksdbjni13914221050463934162.so+04732220 _ZNSt8__detail9_CompilerISt12regex_traitsIcEE14_M_disjunctionEv+00000028
[sensor-fusion-service] [ 20] 0x00007f434a362d0b /tmp/librocksdbjni13914221050463934162.so+04734219 _ZNSt8__detail9_CompilerISt12regex_traitsIcEEC1EPKcS5_RKSt6localeNSt15regex_constants18syntax_option_typeE+00000955
[sensor-fusion-service] [ 21] 0x00007f434a3632e3 /tmp/librocksdbjni13914221050463934162.so+04735715 _ZN7rocksdb13ObjectLibrary8RegisterINS_10FileSystemEEERKSt8functionIFPT_RKSsPSt10unique_ptrIS4_St14default_deleteIS4_EEPSsEES7_SH_+00000211
[sensor-fusion-service] [ 22] 0x00007f434a0cde55 /tmp/librocksdbjni13914221050463934162.so+02027093
[sensor-fusion-service] [ 23] 0x00007f4464a8637a /lib64/ld-linux-x86-64.so.2+00062330
[sensor-fusion-service] [ 24] 0x00007f4464a86476 /lib64/ld-linux-x86-64.so.2+00062582
[sensor-fusion-service] [ 25] 0x00007f4464a8a2d3 /lib64/ld-linux-x86-64.so.2+00078547
[sensor-fusion-service] [ 26] 0x00007f446458fb2f /lib/x86_64-linux-gnu/libc.so.6+01264431 _dl_catch_exception+00000111
[sensor-fusion-service] [ 27] 0x00007f4464a89bba /lib64/ld-linux-x86-64.so.2+00076730
[sensor-fusion-service] [ 28] 0x00007f446461d256 /lib/x86_64-linux-gnu/libdl.so.2+00004694
[sensor-fusion-service] [ 29] 0x00007f446458fb2f /lib/x86_64-linux-gnu/libc.so.6+01264431 _dl_catch_exception+00000111
[sensor-fusion-service] [ 30] 0x00007f446458fbbf /lib/x86_64-linux-gnu/libc.so.6+01264575 _dl_catch_error+00000047
[sensor-fusion-service] [ 31] 0x00007f446461d975 /lib/x86_64-linux-gnu/libdl.so.2+00006517
[sensor-fusion-service] [ 32] 0x00007f446461d2e6 /lib/x86_64-linux-gnu/libdl.so.2+00004838 dlopen+00000070
[sensor-fusion-service] [ 33] 0x00007f4463bcbf4f /usr/local/openjdk-11/lib/server/libjvm.so+12488527
[sensor-fusion-service] [ 34] 0x00007f4463bcc203 /usr/local/openjdk-11/lib/server/libjvm.so+12489219
[sensor-fusion-service] [ 35] 0x00007f4463902f94 /usr/local/openjdk-11/lib/server/libjvm.so+09568148 JVM_LoadLibrary+00000276
[sensor-fusion-service] [ 36] 0x00007f4462738018 /usr/local/openjdk-11/lib/libjava.so+00061464 Java_java_lang_ClassLoader_00024NativeLibrary_load0+00000504
[sensor-fusion-service] [ 37] 0x00007f44448a71a3 <unknown-module>+00000000
[sensor-fusion-service] [ 38] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 39] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 40] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 41] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 42] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 43] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 44] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 45] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 46] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 47] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 48] 0x00007f4444892bc9 <unknown-module>+00000000
[sensor-fusion-service] [ 49] 0x00007f44638485a5 /usr/local/openjdk-11/lib/server/libjvm.so+08803749
[sensor-fusion-service] [ 50] 0x00007f4463824ce0 /usr/local/openjdk-11/lib/server/libjvm.so+08658144
[sensor-fusion-service] [ 51] 0x00007f44638279da /usr/local/openjdk-11/lib/server/libjvm.so+08669658
[sensor-fusion-service] [ 52] 0x00007f4463a2646f /usr/local/openjdk-11/lib/server/libjvm.so+10761327
[sensor-fusion-service] [ 53] 0x00007f4463a28db9 /usr/local/openjdk-11/lib/server/libjvm.so+10771897
[sensor-fusion-service] [ 54] 0x00007f446383ebbc /usr/local/openjdk-11/lib/server/libjvm.so+08764348
[sensor-fusion-service] [ 55] 0x00007f44638418c5 /usr/local/openjdk-11/lib/server/libjvm.so+08775877
[sensor-fusion-service] [ 56] 0x00007f44448bb1ba <unknown-module>+00000000
[sensor-fusion-service] [ 57] 0x00007f4444892bc9 <unknown-module>+00000000
[sensor-fusion-service] [ 58] 0x00007f44638485a5 /usr/local/openjdk-11/lib/server/libjvm.so+08803749
[sensor-fusion-service] [ 59] 0x00007f4463824ce0 /usr/local/openjdk-11/lib/server/libjvm.so+08658144
[sensor-fusion-service] [ 60] 0x00007f44638279da /usr/local/openjdk-11/lib/server/libjvm.so+08669658
[sensor-fusion-service] [ 61] 0x00007f446383c96c /usr/local/openjdk-11/lib/server/libjvm.so+08755564
[sensor-fusion-service] [ 62] 0x00007f44448bc74e <unknown-module>+00000000
[sensor-fusion-service] [ 63] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 64] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 65] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 66] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 67] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 68] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 69] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 70] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 71] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 72] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 73] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 74] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 75] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 76] 0x00007f444489e170 <unknown-module>+00000000
[sensor-fusion-service] [ 77] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 78] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 79] 0x00007f444489e099 <unknown-module>+00000000
[sensor-fusion-service] [ 80] 0x00007f444489ca86 <unknown-module>+00000000
[sensor-fusion-service] [ 81] 0x00007f4444892bc9 <unknown-module>+00000000
[sensor-fusion-service] [ 82] 0x00007f44638485a5 /usr/local/openjdk-11/lib/server/libjvm.so+08803749
[sensor-fusion-service] [ 83] 0x00007f4463847983 /usr/local/openjdk-11/lib/server/libjvm.so+08800643
[sensor-fusion-service] [ 84] 0x00007f4463847b78 /usr/local/openjdk-11/lib/server/libjvm.so+08801144
[sensor-fusion-service] [ 85] 0x00007f44638f0b13 /usr/local/openjdk-11/lib/server/libjvm.so+09493267
[sensor-fusion-service] [ 86] 0x00007f4463d734d1 /usr/local/openjdk-11/lib/server/libjvm.so+14222545
[sensor-fusion-service] [ 87] 0x00007f4463d6e18b /usr/local/openjdk-11/lib/server/libjvm.so+14201227
[sensor-fusion-service] [ 88] 0x00007f4463bcd198 /usr/local/openjdk-11/lib/server/libjvm.so+12493208
[sensor-fusion-service] [ 89] 0x00007f4464838fa3 /lib/x86_64-linux-gnu/libpthread.so.0+00032675
[sensor-fusion-service] [ 90] 0x00007f44645544cf /lib/x86_64-linux-gnu/libc.so.6+01021135 clone+00000063
[sensor-fusion-service]
[sensor-fusion-service] ** This crash report has been saved to disk as /root/matlab_crash_dump.16-1 **
[sensor-fusion-service]
[sensor-fusion-service]
[sensor-fusion-service]
[sensor-fusion-service] MATLAB is exiting because of fatal error
[sensor-fusion-service] Killed
I have tried various different combinations of LD_LIBRARY_PATH environment variable and java.library.path settings without success.
It appears that a rocksdb JNI library is being loaded in this stack trace... As the sensor-fusion-service leverages kafka (specifically org.springframework.kafka.spring-kafka and org.apache.kafka.kafka-streams, I beleieve an embedded rocksdb database is being used. In fact I believe it to be org.rocksdb.rocksdbjni version 6.19.3 in my case, which embeds a bunch of so files.
Is there some way to prevent this crash?

回答(1 个)

Swastik Sarkar
Swastik Sarkar 2025-6-23
When the MATLAB Compiler Runtime (MCR) is initialized, it attaches to the already running JVM process started by the sensor-fusion-service. This means that all native libraries—including those loaded via JNI—share the same memory space and runtime environment.
As a result, if even one JNI library misbehaves or causes a conflict (e.g., due to incompatible native dependencies or memory issues), it can crash the entire JVM. This is particularly relevant if the MATLAB Runtime expects certain native resources or configurations that are not available or are overridden in the shared JVM context.
To verify whether this is the root cause, you could temporarily disable Kafka or RocksDB and observe whether the crash still occurs. This would help isolate the issue.
That said, a more robust and scalable solution would be to separate the MATLAB component into its own microservice, running in a dedicated JVM. This isolation prevents native library conflicts and improves fault tolerance.
MathWorks provides official documentation on how to deploy a MATLAB function as a microservice using Docker:
By running the MATLAB Runtime and other native libraries in separate JVMs or containers, you can significantly reduce the risk of crashes due to JNI conflicts.
Hope this helps prevent the crash

类别

Help CenterFile Exchange 中查找有关 MATLAB Compiler SDK 的更多信息

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by