-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
None
-
Affects Version/s: repo-crac
-
Component/s: core-svc
-
None
A JVM that executed OperatingSystemImpl.getProcessCpuLoad() before checkpoint can fail with assertion failure after restore with:
java: /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:291: get_cpuload_internal: Assertion `pticks->usedKernel >= tmp.usedKernel' failed.
The stack trace is
#6 0x0000714b79a3b517 in __assert_fail (assertion=assertion@entry=0x714b79c174e0 "pticks->usedKernel >= tmp.usedKernel",
file=file@entry=0x714b79c17480 "/home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c", line=line@entry=291,
function=function@entry=0x714b79c17850 "get_cpuload_internal") at ./assert/assert.c:105
#7 0x0000714b79c1627d in get_cpuload_internal (which=which@entry=-1, pkernelLoad=pkernelLoad@entry=0x714b404fdb18, target=target@entry=CPU_LOAD_VM_ONLY)
at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:291
#8 0x0000714b79c1642d in get_process_load () at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:329
#9 Java_com_sun_management_internal_OperatingSystemImpl_getProcessCpuLoad0 (env=<optimized out>, dummy=<optimized out>)
at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:372
This is an assertion failure, therefore failing only in debug builds, and providing probably a non-sense value in release builds. We should remove the assertion and return a negative value (documented as value for ‘unavailable’) if this is detected.
java: /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:291: get_cpuload_internal: Assertion `pticks->usedKernel >= tmp.usedKernel' failed.
The stack trace is
#6 0x0000714b79a3b517 in __assert_fail (assertion=assertion@entry=0x714b79c174e0 "pticks->usedKernel >= tmp.usedKernel",
file=file@entry=0x714b79c17480 "/home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c", line=line@entry=291,
function=function@entry=0x714b79c17850 "get_cpuload_internal") at ./assert/assert.c:105
#7 0x0000714b79c1627d in get_cpuload_internal (which=which@entry=-1, pkernelLoad=pkernelLoad@entry=0x714b404fdb18, target=target@entry=CPU_LOAD_VM_ONLY)
at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:291
#8 0x0000714b79c1642d in get_process_load () at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:329
#9 Java_com_sun_management_internal_OperatingSystemImpl_getProcessCpuLoad0 (env=<optimized out>, dummy=<optimized out>)
at /home/rvansa/work/zulu/src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c:372
This is an assertion failure, therefore failing only in debug builds, and providing probably a non-sense value in release builds. We should remove the assertion and return a negative value (documented as value for ‘unavailable’) if this is detected.
- links to
-
Review(crac)
openjdk/crac/274