Hivemq ce version 2024.3 + not working on Windows 10 IoT Enterprise LTSC

I am trying to run HiveMQ-ce(2024.3) on Windows 10 IoT Enterprise LTSC, failed to start hiveMq. but HiveMq-ce(2022.1) can run on Windows 10 loT Enterprise LTSC
I tried a different JDK 11.0.20, JDK 13.0.2, JDK 15.0.2, got the same error.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ILLEGAL_INSTRUCTION (0xc000001d) at pc=0x00007fff45153e0d, pid=7556, tid=3404
#
# JRE version: Java(TM) SE Runtime Environment (15.0.2+7) (build 15.0.2+7-27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (15.0.2+7-27, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [librocksdbjni13031577723599912753.dll+0x4f3e0d]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# 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.
#

Does anyone know how to solve it?

Hi @wenjin

Welcome to the HiveMQ Community!

Could you please download and install this OpenJDK version on your Windows computer, along with the latest version of HiveMQ CE, and give it a try?

During installation, make sure to set the JAVA_HOME environment variable properly.

Kind regards,
Diego from HiveMQ Team

Hi Diego,

I tried the latest HiveMq CE 2025.1 and Open-jdk-21.0.6, got the same error.
Environment setup:
JAVA_HOME: C:\Program Files\Eclipse Adoptium\jre-21.0.6.7-hotspot
PATH: C:\Program Files\Eclipse Adoptium\jre-21.0.6.7-hotspot\bin

error:

Any idea?

Hi @wenjin,

Your crash has generated an hs_err_pid9704.log file. You can check this file for more details on what caused the crash.

Hope this helps!

Best,
Dasha from the HiveMQ Team

Hi @wenjin

I’m unable to reproduce the issue on my Windows 10 IoT Enterprise LTSC machine.

Could you confirm if you have administrative rights on your computer? Try running the Command Prompt as Administrator, navigate to the HiveMQ bin folder, and then execute the run.bat file.

Kind regards,
Diego from HiveMQ Team

Hi Diego,

Thanks for your response!
I am running the Command Prompt as Administrator, and execute the run.bat file,

  1. HiveMQ 2022.2 works fine
  2. HiveMQ 2025.1 failed

It is only allowed one screen shot. I will attach the screen shot of 2025.1 in another


the above screen shot is for HiveMq-ce 2025.1
Do you need hs_err-pid4608.log? There is no way to attach a file.

partial copy of hs_err-pid4608.log

---------------  S U M M A R Y ------------

Command Line: -Dhivemq.home=C:\hivemq\hivemq-ce-2025.1 -Dhivemq.home=C:\scot\RapServer\HiveMq\RapHiveMq -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\scot\RapServer\HiveMq\RapHiveMq/heap-dump.hprof -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.security.provider=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED -Djava.net.preferIPv4Stack=true --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.security.provider=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Duser.language=en -Duser.region=US -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\hivemq\hivemq-ce-2025.1\heap-dump.hprof C:\hivemq\hivemq-ce-2025.1\bin\hivemq.jar

Host: Intel(R) Celeron(R) CPU G3900TE @ 2.30GHz, 2 cores, 7G,  Windows 10 , 64 bit Build 19041 (10.0.19041.5198)
Time: Wed Feb 26 07:48:08 2025 Eastern Standard Time elapsed time: 7.557647 seconds (0d 0h 0m 7s)

---------------  T H R E A D  ---------------

Current thread (0x000002131b9bb6d0):  JavaThread "pool-2-thread-2"        [_thread_in_native, id=7012, stack(0x0000008fa8700000,0x0000008fa8800000) (1024K)]

Stack: [0x0000008fa8700000,0x0000008fa8800000],  sp=0x0000008fa87fc950,  free space=1010k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [librocksdbjni3792392281228135099.dll+0x546a7d]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.rocksdb.RocksIterator.seekToFirst0(J)V+0
j  org.rocksdb.AbstractRocksIterator.seekToFirst()V+26
j  com.hivemq.persistence.local.xodus.RetainedMessageRocksDBLocalPersistence.init()V+52
j  com.hivemq.persistence.local.rocksdb.RocksDBLocalPersistence.start()V+268
j  com.hivemq.persistence.PersistenceStartup$$Lambda+0x00000212d7286ba0.run()V+4
j  java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4 java.base@21.0.6
j  java.util.concurrent.FutureTask.run()V+39 java.base@21.0.6
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+92 java.base@21.0.6
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 java.base@21.0.6
j  java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@21.0.6
j  java.lang.Thread.run()V+19 java.base@21.0.6
v  ~StubRoutines::call_stub 0x00000212c91c1015

siginfo: EXCEPTION_ILLEGAL_INSTRUCTION (0xc000001d)

Hi @wenjin

We suspect that your Intel Celeron G3900TE processor does not support certain CPU instructions required by the latest RocksDB library, which is responsible for broker persistence in the newer HiveMQ CE versions. This incompatibility is likely causing the EXCEPTION_ILLEGAL_INSTRUCTION (0xc000001d) crash.

As a potential workaround, you can try configuring HiveMQ CE to store persistent data in-memory as described here. Please give it a try and let us know if it resolves the issue.

Kind regards,
Diego from HiveMQ Team

Hi Diego,

Good news! It works now after I modified the configuration to store persistent data in-memory.

regards
Wenjin