Back to Zing Documentation Home

Issues Resolved in Previous Releases of Zing Virtual Machine

The following table lists known issues resolved prior to the release of Zing Virtual Machine

Release Resolved Description

Fix confusing error message when calling Zing MXBeans APIs without specifying -XX:+UseZingMXBeans.

Checkpoint timeout crash while running async-profiler along with Zing.


Compiler crash with signature polymorphic invokedynamic calls.

Final field optimizations can miscompile in code compiled with Javac11 and above.

Core bundler: pid extraction can select more than one line.

Incorrect size of committed memory in Thread category.

Incorrect data in Arena Chunk category of NMT summary.

Incorrect GC statistic in NMT summary.

Crash in guarantee(_deopt_list_len < sizeof(_deopt_list)/sizeof(_deopt_list[0])) failed: make deopt_list bigger. Add additional logging of padding sizes. Make -XX:+TraceImplicitNullChecks manageable.

JVM flags, ParGCCardsPerStrideChunk and UseCompressedClassPointers, give error.

Crash related to the JFR Tick Profiler due to a regression introduced in ZVM

Crash with problematic frame vframe::next()+0x9e

Crash in guarantee(false) failed: derived_oop_slots.contains(dst)!!

Crash in guarantee(FMP.getNumFunctions() == 1) failed: exactly one function expected!.

Illegal memcpy generated through the optimizer.

getPercentJavaHeapOccupiedAfterCollection() returns 0.

Runtime.getRuntime().availableProcessors() returns an incorrect value when affinity is set.

Occasionally seen segmentation faults during startup of the servers, which causes the server to fail to start.

In Java 11 testing, a rare ZVM crash was observed when returning from the invocation of a MethodHandle routine.


Backport of JDK-8162795 to fix JNI weak handle native memory leak which can occur in some use cases since ZVM

Crash during application start with -XX:+UseC2 on AMD avx2 since ZVM

Zing might crash at startup with Java Flight Recorder on systems with specific network interface configurations.

An issue with -XX:+PreserveFramePointer in _counterMode_AESCrypt intrinsic.

Test failure due to code cache exhaustion on configurations with heaps of 4 GB and below are more likely to happen on ZVM as the default CodeCache size progressively shrinks for such configurations.

Utilization of the ProfileLogOut flag with a hard disk that has I/O issues causes TTSP problems in ZVM ZVM crash when running Zing with OrgLock license.

Better detection when attempting to open non-Zing GC logs.

Internal Error (src/share/vm/runtime/sharedRuntime.cpp:764) guarantee(markWord::is_self_locked(h()->mark())) failed: should be self-locked.

Zing gives error for Cloudera Enterprise 5.14.4 (Hadoop 2.6.0-cdh5.14.4).

ZVM launches fail with the following error message if the license file is in the MS-DOS encoding format:

Zing VM Error: Zing License Verification failed. C (nil) crash while on a falcon thread.

MaxJavaStackTraceDepth of -1 is handled incorrectly by the JVM.

Accumulation of thread local allocation in LLVMContext for long lived compiler thread.

Fix memory leaks associated with thread deaths.

-XX:[+/-]UseStringDeduplication command-line option is ignored by the JVM.

Crash in native code outside the JVM due to calling ComputeLinearScanOrder::mark_loops()+0x196.

With -XX:+UseC2 the JVM crashed in rorI_rReg_imm1 when using ojdbc8.jar.

ZingMXBean metric PercentJavaHeapOccupiedAfterCollection always returns 100%.

JVM crash with signature guarantee(!OopHelper::is_old(obj)) seen at low frequency under heavy allocation pressure.

JVM fails to crash with guarantee (!function_not_ok) due to persistent duplicate class ids (KIDs).

Memory leak in modified ThreadLocal implementation.

Limit iterations in NMT mutator flush loops.

-XX:+PreserveFramePointer crashes on

Support switching AT&T/intel syntax by PrintAssemblyOptions.

Take CFS quota/period into account when determining available CPU count.

Crash due to incorrectly formed implicit null check.

Implement the set_native_thread_name method in Zing.

Print error message on java -version when no valid license was found.

-XX:+PreserveFramePointer now supports C1 frames in addition to the previously supported Falcon and interpreter frames.

JVM fails to crash with guarantee (!function_not_ok).

Occasional failures to replace compiled code by more optimized compiled code in the OSR part of the tiered JIT compiler (C2 and Falcon).

Improved null pointer handling of java.lang.reflect.Method.invoke() in Falcon to match C2.

MemoryMXBean.getHeapMemoryUsage().getCommitted() returns the heap size that is equal to MemoryMXBean.getHeapMemoryUsage().getUsed().

Enhanced support for using the perf tool to create flamegraphs and similar performance analysis tools: stackwalking of Java code running in the Interpreter mode and therefore fewer [unknown] markings are now possible.

bool AutoTuneResourceDefaultsBasedOnXmx ZVM command-line option added. false by default but set to true when running java -version under ZVM.

Reduced memory footprint amount taken from a ZST partition by java -version and j-tools run under the ZVM.

Increased time variation when using Bouncy Castle library to decode data stored in a database on multi-socket systems.

Incorrect comparison of two null values of different types in some cases. Printing header when PrintCodeCacheFlushing is set to true is not consistent with printing of other GC log file headers. ReadyNow! incorrectly limits counters to 16-bits instead of 32-bits. After object cache hit, Falcon does not provide inlining information to ReadyNow!. JVM crash when Compile Stashing runs out of local storage space. AsyncGetCallTrace call: crash in GPGC_Layout::addr_to_BasePageForSpace(). Legacy stack walking compilation policy removed. A warning displays if a value of 1 is specified for CompilationPolicyChoice. Added auto-identification of ExtClassLoader.

ZVM crashes due to a series of errors in InductiveRangeCheckElimination.cpp.

MapR default library loading incompatible with ReadyNow!. The fix ensures that MapR 4+ works with ReadyNow! with default settings.

ZVM crashes with no hs_err and zero size core file when run in combination with AZ_CHEAP_MEMORY_SANITIZER=1.

In the product version of the ZVM, restrict the set of command-line options shown in ZVision's HotSpot Flags window to the available set of -XX options. Previously, non-product options were also shown.

Backport of JDK-8063086: Math.pow yields different results upon repeated calls.

The application threads waits to be notified by the collector until the end of next new collection for allocations when they hit allocation failure.

The use of the newly introduced -XX:GPGCMutatorSleepBeforeAllocRetryMS option makes the delayed to respond to the freed pages earlier and helps in reducing the length of allocation delays seen by the application threads.

Expressions with nested Math.pow() fail with the result Not-a-Number error for some floating point values. Comodo root Certificate Authority is missing in cacerts files.

Zing crashes if its command line contains only -Xms but no -Xmx, and -Xms is larger than default max heap size (currently 1G). The fix ensures no more such crashes happen.

Zing tools do not work with an OEM license because the entry point JAR file is loaded by bootstrap.

ZVM garbage collector related process abort at C [] GPGC_Layout::addr_to_BasePageForSpace.

ZVM Falcon compiler related process abort at C [] DolphinParser::reify_abstract_state.

Interpreter or other runtime ZVM abort following a deoptimization of Falcon compiled code and an attempt to recompile and run the newly compiled method. Internal root cause is Falcon compiler’s reuse of OopTable indices.

ZVM will not start if -Xmx and -Xms are both specified and have values that are odd numbers. Unexpected use of the System.nanoTime() method in the Falcon compiler.

ZVM crashed in guarantee(secondary_supers()) failed: Unitialized secondary supers during typecheck.

Backport of JDK-6512830: Error: assert(tag_at(which).is_unresolved_klass(), "Corrupted constant pool").

Backport JDK-8075484: SocketInputStream.socketRead0 can hang even with soTimeout set.

Backport JDK-8178536: OOM ERRORS + SERVICE-THREAD TAKES A PROCESSOR TO 100%. ZVM crashed due to incorrect deoptimization in clone intrinsic implementation.

Creation of methodstubs (for C2i) for methods for all the loaded classes causes application to run out of code cache.

ZVM crashed in src/cpu/x86/vm/interpreterRT_x86.cpp:1085 with Unimplemented() error.

Falcon compiler does not respect DynamicBranchEliminationLevel of 0 or 1.

The fix makes Falcon to distinguish more levels.

RMI Registry ignores depth limit pattern specified for the registryFilter. A bug in a function call in the optimized intrinsic code for AES.

Using the -usedatex command-line option together with the Set Time Range option of the GC Log Analyser tool resulted in empty graphs.

INVOKEINTERFACE called on the java.lang.Object method in ASM-generated byte code fails after several iterations.

The use of the date/time X-axis of the GC Log Analyser tool encounters error caused by duplicate elapsed times for items in a dataset.

Warning counters differ in jstat -profile and -profileerrors output of the ReadyNow! tool.

Internal Error at ciObject.hpp:

compiler_assert(is_instance()) failed: bad cast :

Crash due to an unexpected error detected by Java Runtime Environment:

guarantee(lbl == _ex_labels->at(idx)) failed: single handler bci given 2 different rel_pc mappings. Scala 2.12 fails with bytecode error.

Crash with the error message:

LLVM fatal error: Unable to allocate section memory!

Crash with the following problematic frame:

J (C2) com.mchange.v2.c3p0.impl.NewPooledConnection.carefulCheckHoldability(Ljava/sql/Connection;)I

Zing crashes with the following error:

LLVM fatal error: Do not know how to split the result of this operator!

Too many recompilations on a particular method results in the same being marked "do not-compile any longer".

Use of the OnOutOfMemoryError flag triggers a crash.

New generation relocation aborts can lead to Java heap live set growth. This affects ZVM versions through ZVM 16.12.2.

Frequent New GC cycles can lead to Java heap live set growth. When the New GC intercycle time is lower than the promotion threshold, objects can be retained in the new generation causing a growth in the live set. This affects ZVM versions through ZVM 16.12.2.

Crash with the following problematic frame: C [] jvmti_GetTime+0x62.

On some RHEL 5 systems, where the command: find /sys/devices/system/cpu -name thread_siblings produces a list of files that is in descending numerical order by a CPU directory name, ThreadOpt will exit with an IndexOutOfBoundsException. Applications can hang when ZVM runs with the Falcon compiler.

Crash due to usage of the +UseFastJNIAccessors option. The option has not been implemented yet. To avoid crashing the option marked as unchangeable. No timestamp generated with the +PrintGCDetails option alone on command line causes gcLogAnalyser "unable to read".

ZVM can exit due to code cache exhaustion by Java monitors. Applications which make heavy use of Java monitors either due to lock contention or wait/notify mechanisms, can potentially see a high footprint related to monitors in the code cache. A stray C2 thread is running at 100% CPU without making any forward progress.

C-Heap Leak happens in raw-monitor creation. RawMonitors are leaking semaphore objects which are eagerly created during VMLock creation.

The fix includes releasing sem_t objects and calling sem_destroy.

ZVM crashes with the following problematic frame: [] java_lang_Class::as_klassOop(oopDesc*)+0x23.

Nashorn benchmark stalls after encountering data error processing profile log error (error: 101) while running Nashorn benchmarks with ReadyNow! enabled. The fix adds supports for dealing with Nashorn and eliminates this issue.

Additional control flags introduced to prevent startup crashes due to usage of ProfileLogIn. Following are those control flags: 




jstat -profile (and -profileerrors) returned unresolved symbols when ProfileLogIn is not specified. The fix now ensures that zeros will be printed instead of unresolved symbols.

Wrong class was being loaded only when using the ProfileLogIn profile. The fix implements safe mode for ReadyNow to avoid an improper speculative load that might produce a misleading and worrisome report.

Removed non-relevant data from graphs (Old Gen Collector: App Threads Delay and Pages Promoted).

ReadyNow failed to recognize the generated Lambda classes as generated. The fix implements safe mode for ReadyNow to use when ReadyNow's generated class heuristics do not work for a class generator.

Enabling ProfileLiveObjects seems to increase GC cycle durations significantly. The fix implements an improved hash function along with few other optimizations resulting in reduced GC cycle durations.

The default value of MlockLevel has been changed to 1 from 0:

MlockLevel=0 – do not attempt any mlocks

MLockLevel=1 – quietly attempt to mlock

Crash with the following problematic frame: StubRoutines::find_SEGV_continuation_address.,

Resolving an orphaned FinalLive objects through JNI weak handle during ConcurrentRefProcessing could lead to the following crash:

guarantee(loop_count < size) failed: should have found the relocation record

Enabling ProfileLiveObjects seems to increase GC cycle durations significantly. The fix implements an improved hash function along with few other optimizations resulting in reduced GC cycle durations.

When running on some Cassandrs nodes, the following enexpected error has been detected:

guarantee(GPGC_Marks::is_any_marked_strong_live(obj)) failed: NewGen oop at final clear not strong live

Crash due to an internal error:

guarantee(loop_count < size) failed: should have found the relocation record

The fix ensures that a class of a Java object is treated as StrongLive even if that object is itself only FinalLive. This guarantees that the classes of FinalLive objects cannot be orphaned before the StrongLive mark-through of FinalLive referents, and will ensure their relocation.

High GC pauses due to JVM code being paged out. The fix introduces a new command-line option MlockLevel, which can be tuned. If the flag is set without a value, the default ensures no page JVM code page-outs. The option specifies one of four mlock strategies:

1. Do not attempt any mlock (EARLY)

2. mlock text region (LATE)

3. mlockall (EARLY)

4. mlockall (LATE)

Example: use -XX:+MlockLevel=1001 to attempt strategy 1 while reporting verbosely. This option should be used only with guidance of Azul Support.

A random error code is being returned from the JDK method:


In ZVision, clicking on the tty_lock entry in zvision -> threads -> contention causes a crash.

+MinimizeJNICriticalLock causes an IllegalArgumentException in

Nginx-Clojure does not work with Zing because the linker option -Wl,-soname, has not been passed and the library cannot be found.

Zing VM can crash at very early stages due to lack of system resources.

Applications that use large chunks(>100s of MBs) of DirectByteBuffer could potentially face high TTSP times in New/OldGC pause3 because of the deallocation of these buffers.

NullPointerException caused by wrong code generated from C2.

Thread.sleep can sleep ~30% longer than specified when the Intel pstate driver is enabled. The pstate driver can be disabled to workaround this problem with older ZVMs.

You can determine whether the pstate driver has been enabled by checking /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver for the string “intel_pstate”.

A race condition in CodeCache::GPGC_unlink can cause a crash when there are multiple GenPauselessOldThreads. This affects ZVM versions,, and For these ZVMs, the workaround is to set -XX:GenPauselessOldThreads=1 but this can cause a spike in Old GC cycle times for applications with a large live set.

Fatal error in native method: JDWP PushLocalFrame: Unable to push JNI frame, jvmtiError=AGENT_ERROR_OUT_OF_MEMORY(188).

Crash in generated code of the following method: it.unimi.dsi.fastutil.ints.IntRBTreeSet.add.

GC log file SYSINFO line reports Page Cache active(file) value for the Page Cache active(anon) value.

New intrinsic for BigInteger.multiplToLen() for improved BigInteger performance.

The new UseCRC32Intrinsics option for improved CRC32 performance.

New intrinsics for the squareToLen and mulAdd methods in BigInteger for improved BigInteger performance.

The UseSuperWord ZVM option is turned on by default. It enables up to 16-byte vectorization.

Memory-tracking functions to record the use of the native memory. For more details, see the Native Memory Tracking section of the Zing User Guide.

As of ZVM, a difference in the version of libstdc++ on the system and the libstdc++ version that is statically linked into libjvm could cause a crash due to malloc corruption.

The printir compiler command dumps out C2 node IR phase by phase for a specific Java method.

Crash with the following problematic frame: AddNode::Ideal(PhaseGVN*, bool).

When the JVM core dumps, the hs error file is incorrectly reporting SCHED_IDLE threads as UNKNOWN.

Crash with the following problematic frame: jvm_exception_handler.

VM takes a long time to shutdown due to background page scrubbing.

Crash with the following problematic frame: GraphKit::add_exception_states_from(JVMState*).

Crash in Java_sun_font_ FreetypeFontScaler_disposeNativeScaler().


See Also



Last modified: July 31, 2020

© Azul Systems, Inc. 2020 All rights reserved.

Privacy Policy | Legal | Terms of Use