Jenkins JVM Crash in libzip.so (JDK-8017777)

Issue

You see the following in jenkins.log:

# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0x7) at pc=0x00007f323fce91f0, pid=20630, tid=139853702534912
#
# JRE version: 7.0_25-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libzip.so+0xb1f0] __int128+0x60

Environment

  • Jenkins
  • CloudBees Jenkins Enterprise
  • CloudBees Jenkins Operations Center

Resolution

JDK-8017777 is a well-known limitation of the Oracle JRE which will not be fixed. Basically it means that if a JVM opens a file using java.util.zip.ZipFile, and that file changes on disk while it is open, the JVM may crash. The application developer is simply responsible for ensuring this never happens.

-Dsun.zip.disableMemoryMapping=true is a workaround to avoid the crash; it does not address the underlying application bug. In fact the crash per se only affects Unix machines: on Windows, you would be physically blocked from changing the ZIP file while it was open, or conversely from starting to read a ZIP file while something else was writing.

JDK-8017777

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.