http://bugs.winehq.org/show_bug.cgi?id=59050 Bug ID: 59050 Summary: HiveMQ CE 2025.5 crashes on startup (GetProcessHeap missing parentheses in iphlpapi.GetAnycastIpAddressTable stub) Product: Wine Version: 10.19 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: iphlpapi Assignee: wine-bugs(a)list.winehq.org Reporter: focht(a)gmx.net Distribution: --- Hello folks, as it says. Prerequisite: Java JDK for x64 https://github.com/adoptium/temurin25-binaries/releases https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.1%... Before running the server startup script, one needs to patch 'run.bat' to work around other Wine cmd deficiencies: --- snip --- $ wine cmd.exe /c ./run.bat Syntax error Syntax error: unexpected IN Syntax error: unexpected LSS 11 ( ERROR! HiveMQ requires at least Java version 11. ... --- snip --- Patch: --- snip --- diff --git a/run.bat b/run.bat index 5fe19ed..ee6d44b 100644 --- a/run.bat +++ b/run.bat @@ -51,14 +51,14 @@ if errorlevel 1 ( goto EXIT ) -for /f tokens^=2-2^ delims^=^" %%j in ('java -version 2^>^&1') do set "JAVA_VERSION=%%j" +rem for /f tokens^=2-2^ delims^=^" %%j in ('java -version 2^>^&1') do set "JAVA_VERSION=%%j" -for /f "tokens=1 delims=. " %%a in ("%JAVA_VERSION%") do set "JAVA_MAJOR_VERSION=%%a" +rem for /f "tokens=1 delims=. " %%a in ("%JAVA_VERSION%") do set "JAVA_MAJOR_VERSION=%%a" -if %JAVA_MAJOR_VERSION% LSS 11 ( - echo ERROR! HiveMQ requires at least Java version 11. - goto EXIT -) +rem if %JAVA_MAJOR_VERSION% LSS 11 ( +rem echo ERROR! HiveMQ requires at least Java version 11. +rem goto EXIT +rem ) rem ########### VARIABLES set "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true" --- snip --- Now run the server: --- snip --- $ wine cmd.exe /c ./run.bat Z:\home\rmi1974\Downloads\hivemq-ce-2025.5\bin>rem Copyright 2019-present HiveMQ GmbH ... HIVEMQ_HOME: Z:\home\rmi1974\Downloads\hivemq-ce-2025.5 JAVA_OPTS: -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.mana gement/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.au thenticate=false -Dcom.sun.management.jmxremote.ssl=false -Duser.language=en -Duser.region=US -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="Z:\home\rmi1974\Downloads\hivemq-ce-2025.5\heap-dump.hprof" JAVA_VERSION: ... 01c8:fixme:process:GetProcessGroupAffinity (FFFFFFFFFFFFFFFF,00007FFB3CD2F4E0,0000000000000000): stub OpenJDK 64-Bit Server VM warning: Attempt to get process group affinity failed: Call not implemented 0198:fixme:iphlpapi:GetAnycastIpAddressTable (2, 00007FFFFF56D120) stub 0198:err:heap:unsafe_heap_from_handle Invalid handle 00006FFFFE6736C0! # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00006ffffff67188, pid=400, tid=408 # # JRE version: OpenJDK Runtime Environment Temurin-25.0.1+8 (25.0.1+8) (build 25.0.1+8-LTS) # Java VM: OpenJDK 64-Bit Server VM Temurin-25.0.1+8 (25.0.1+8-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) # Problematic frame: # C [ntdll.dll+0x27188] RtlAllocateHeap+0x118 ... --- snip --- The generated java vm crash report: --- snip --- Command Line: -Dhivemq.home=Z:\home\rmi1974\Downloads\hivemq-ce-2025.5 -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=Z:\home\rmi1974\Downloads\hivemq-ce-2025.5\heap-dump.hprof Z:\home\rmi1974\Downloads\hivemq-ce-2025.5\bin\hivemq.jar Host: AMD Ryzen 9 7945HX with Radeon Graphics, 32 cores, 92G, Windows 10 , 64 bit Build 19045 (10.0.19045.5796) Time: Thu Nov 27 14:17:34 2025 Central Europe Standard Time elapsed time: 0.351525 seconds (0d 0h 0m 0s) --------------- T H R E A D --------------- Current thread (0x00007ffffe86eba0): JavaThread "main" [_thread_in_native, id=408, stack(0x00007fffff470000,0x00007fffff570000) (1024K)] Stack: [0x00007fffff470000,0x00007fffff570000], sp=0x00007fffff56cfa0, free space=1011k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [ntdll.dll+0x27188] RtlAllocateHeap+0x118 (/home/rmi1974/projects/wine/mainline-src/dlls/ntdll/heap.c:2050) C [IPHLPAPI.DLL+0xc5a0] (/home/rmi1974/projects/wine/mainline-src/dlls/iphlpapi/iphlpapi_main.c:3790) C [net.dll+0x49a4] (no source info available) C [net.dll+0x37fe] (no source info available) Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j java.net.NetworkInterface.getAll()[Ljava/net/NetworkInterface;+0 java.base(a)25.0.1 j java.net.NetworkInterface.getNetworkInterfaces()Ljava/util/Enumeration;+0 java.base(a)25.0.1 j sun.security.provider.SeedGenerator.addNetworkAdapterInfo(Ljava/security/MessageDigest;)V+0 java.base(a)25.0.1 j sun.security.provider.SeedGenerator.getSystemEntropy()[B+92 java.base(a)25.0.1 j sun.security.provider.AbstractDrbg$SeederHolder.<clinit>()V+28 java.base(a)25.0.1 v ~StubRoutines::call_stub 0x00007ffb651312ed j sun.security.provider.AbstractDrbg.getEntropyInput(IIIZ)[B+87 java.base(a)25.0.1 j sun.security.provider.AbstractDrbg.getEntropyInput(Z)[B+14 java.base(a)25.0.1 j sun.security.provider.AbstractDrbg.instantiateIfNecessary([B)V+16 java.base(a)25.0.1 j sun.security.provider.AbstractDrbg.engineNextBytes([BLjava/security/SecureRandomParameters;)V+157 java.base(a)25.0.1 j sun.security.provider.AbstractDrbg.engineNextBytes([B)V+11 java.base(a)25.0.1 j sun.security.provider.DRBG.engineNextBytes([B)V+5 java.base(a)25.0.1 j java.security.SecureRandom.nextBytes([B)V+17 java.base(a)25.0.1 j java.security.SecureRandom.next(I)I+17 java.base(a)25.0.1 j java.util.Random.nextInt()I+3 java.base(a)25.0.1 j java.rmi.server.UID.<init>()V+23 java.rmi(a)25.0.1 j java.rmi.server.ObjID.<clinit>()V+14 java.rmi(a)25.0.1 v ~StubRoutines::call_stub 0x00007ffb651312ed j sun.rmi.transport.LiveRef.<init>(I)V+1 java.rmi(a)25.0.1 j sun.management.jmxremote.ConnectorBootstrap$PermanentExporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Ljava/io/ObjectInputFilter;)Ljava/rmi/Remote;+49 jdk.management.agent(a)25.0.1 j javax.management.remote.rmi.RMIJRMPServerImpl.export(Ljava/rmi/Remote;Ljava/io/ObjectInputFilter;)V+62 java.management.rmi(a)25.0.1 j javax.management.remote.rmi.RMIJRMPServerImpl.export()V+6 java.management.rmi(a)25.0.1 j javax.management.remote.rmi.RMIConnectorServer.start()V+246 java.management.rmi(a)25.0.1 j sun.management.jmxremote.ConnectorBootstrap.exportMBeanServer(Ljavax/management/MBeanServer;IIZZLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/management/jmxremote/ConnectorBootstrap$JMXConnectorServerData;+348 jdk.management.agent(a)25.0.1 j sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(Ljava/lang/String;Ljava/util/Properties;)Ljavax/management/remote/JMXConnectorServer;+620 jdk.management.agent(a)25.0.1 j jdk.internal.agent.Agent.startAgent(Ljava/util/Properties;)V+48 jdk.management.agent(a)25.0.1 j jdk.internal.agent.Agent.startAgent()V+20 jdk.management.agent(a)25.0.1 v ~StubRoutines::call_stub 0x00007ffb651312ed siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x00000000000008a0 --- snip --- The root cause is somewhat ... unexpected. I had to look twice and then saw it ;-) https://gitlab.winehq.org/wine/wine/-/blob/f5944829dc8620b48f8ebde59a9ee8a77... --- snip --- DWORD WINAPI GetAnycastIpAddressTable(ADDRESS_FAMILY family, MIB_ANYCASTIPADDRESS_TABLE **table) { FIXME( "(%u, %p) stub\n", family, table ); if (!table || (family != AF_INET && family != AF_INET6 && family != AF_UNSPEC)) return ERROR_INVALID_PARAMETER; *table = HeapAlloc(GetProcessHeap, HEAP_ZERO_MEMORY, sizeof(MIB_ANYCASTIPADDRESS_TABLE)); if (!*table) return ERROR_NOT_ENOUGH_MEMORY; (*table)->NumEntries = 0; return NO_ERROR; } --- snip --- 'GetProcessHeap' without parentheses, the compiler will assume it's a function pointer. Technically a regression, introduced not so long ago by: https://gitlab.winehq.org/wine/wine/-/commit/60cddfb8776ce1728f4445764b2f54d... Downloads: $ sha1sum OpenJDK25U-jdk_x64_windows_hotspot_25.0.1_8.msi 8246f45e1fed8e8e10a69f3a13d5b76fa06c3059 OpenJDK25U-jdk_x64_windows_hotspot_25.0.1_8.msi $ du -sh OpenJDK25U-jdk_x64_windows_hotspot_25.0.1_8.msi 111M OpenJDK25U-jdk_x64_windows_hotspot_25.0.1_8.msi $ sha1sum hivemq-ce-2025.5.zip bd42e08cbf85d539f32f246a8898357651565f31 hivemq-ce-2025.5.zip $ du -sh hivemq-ce-2025.5.zip 95M hivemq-ce-2025.5.zip $ wine --version wine-10.19-296-gf5944829dc8 Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.