Confluence Data Center frequently crashes when running on a Virtual Machine
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Symptoms
- The Confluence node has experienced a crash.
- The Java process is not currently running, and it was not shut down manually.
- Files with names resembling hs_err_pidxxxxx.log are being generated in the application's bin directory, containing text similar to the following:
# A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd8700696d, pid=9388, tid=10092 # # JRE version: OpenJDK Runtime Environment Temurin-17.0.8.1+1 (17.0.8.1+1) (build 17.0.8.1+1) # Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.8.1+1 (17.0.8.1+1, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) # Problematic frame: # C [vm3dgl64.dll+0xe3696d] # # Core dump will be written. Default location: E:\Confluence\bin\hs_err_pid9388.mdmp # # JFR recording file will be written. Location: E:\Confluence\bin\hs_err_pid9388.jfr # # If you would like to submit a bug report, please visit: # https://github.com/adoptium/adoptium-support/issues # 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: -Dcatalina.base=E:\Confluence -Dcatalina.home=E:\Confluence -Djava.io.tmpdir=E:\Confluence\temp -XX:MaxPermSize=256m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=E:\Confluence\conf\logging.properties -Dhttp.proxyHost=proxy.wip.ybs.com -Dhttps.proxyHost=proxy.wip.ybs.com -Dhttp.nonProxyHosts=localhost, *.ybs.com, 10.0.0.0/8 -Dhttps.nonProxyHosts=localhost, *.ybs.com, 10.0.0.0/8 -Dhttp.proxyUser=ybs\confluence -Dhttp.proxyPassword=WrUhamE9 -Dhttp.auth.ntlm.domain=ybs -Dhttps.proxyUser=ybs\confluence -Dhttps.proxyPassword=WrUhamE9 -XX:+IgnoreUnrecognizedVMOptions -Djdk.tls.server.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 -Djava.locale.providers=JRE,SPI,CLDR -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -Xloggc:"E:\Confluence\logs\gc-%t.log" -XX:+IgnoreUnrecognizedVMOptions -Djdk.tls.server.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 -Djava.locale.providers=JRE,SPI,CLDR -XX:+IgnoreUnrecognizedVMOptions -Xlog:gc*:file="E:\Confluence\logs\gc-%%t.log":tags,time,uptime,level:filecount=5,filesize=2M -Djdk.tls.server.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-opens=java.base/sun.util.locale=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.base/sun.util.calendar=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xml.internal.utils=ALL-UNNAMED --add-exports=java.desktop/sun.font=ALL-UNNAMED --add-exports=java.base/sun.security.util=ALL-UNNAMED exit abort -Xms8192m -Xmx8192m Host: Intel(R) Xeon(R) Gold 6338 CPU @ 2.00GHz, 8 cores, 19G, Windows Server 2016 , 64 bit Build 14393 (10.0.14393.7330) Time: Thu Nov 28 11:57:16 2024 GMT Standard Time elapsed time: 1388.459774 seconds (0d 0h 23m 8s) --------------- T H R E A D --------------- Current thread (0x00000000fd423800): JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=10092, stack(0x000000007fcb0000,0x000000007fdb0000)] Stack: [0x000000007fcb0000,0x000000007fdb0000], sp=0x000000007fdac890, free space=1010k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [vm3dgl64.dll+0xe3696d]
Cause
- JVM appears to be crashing when calling C code from vm3dgl64.dll - a DLL that is not part of Confluence or Java.
- vm3dgl64.dll belongs to VMware's SVGA 3D OpenGL driver, and is bundled recently in VMware Tools 12.5.0.
Environment
- Confluence running on Windows Virtual Machines
- VMware Tools 12.5.0 installed on the Host machine of the VMs
Workaround
- Shut down Confluence
- Uninstall (or revert on a previous version) VMware Tools 12.5.0
- Restart your Windows host
- Start Confluence
You may contact the vmware support directly for the issue with the tool