eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.28k stars 721 forks source link

Broken parsing of undocumented internal -XXgc options #18295

Closed dmitripivkine closed 1 year ago

dmitripivkine commented 1 year ago

There is number of undocumented internal -XXgc broken by https://github.com/eclipse-openj9/openj9/pull/17459

-XXgc:packetListLockSplit= -XXgc:cacheListLockSplit= -XXgc:stdSplitFreeListSplitAmount= -XXgc:stdSplitFreeListSplitAmount=h

An attempt to provide any of these options caused GPE. For example:

java -XXgc:stdSplitFreeListSplitAmount=1  -version
stdSplitFreeListSplitAmount=   1
Unhandled exception
Type=Segmentation error vmState=0xffffffff
J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=00007FC06D1B0DF0 Handler2=00007FC06CA56CD0 InaccessibleAddress=0000000000000012
RDI=00007FC06E0EF698 RSI=00007FC06803EB38 RAX=0000000000000000 RBX=00007FC06E0EF698
RCX=00007FC06800BEC7 RDX=0000000000000000 R8=00000000FFFFFFD0 R9=1999999999999999
R10=0000000000000001 R11=0000000000000000 R12=00007FC0680390F0 R13=00007FC06800DC80
R14=00007FC06D8EF440 R15=00007FC06800BEAA
RIP=00007FC066C49363 GS=0000 FS=0000 RSP=00007FC06E0EF690
EFlags=0000000000010202 CS=0033 RBP=00007FC06800BEC7 ERR=0000000000000006
TRAPNO=000000000000000E OLDMASK=0000000000000000 CR2=0000000000000012
xmm0 000000000000ff00 (f: 65280.000000, d: 3.225261e-319)
xmm1 2e6e7573442d0031 (f: 1143799808.000000, d: 4.899637e-85)
xmm2 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm3 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm4 2e2e3d454e494c5f (f: 1313426560.000000, d: 3.040210e-86)
xmm5 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm6 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm7 00007fc06c5ed5e0 (f: 1818154496.000000, d: 6.939865e-310)
xmm8 ffffffffffffffff (f: 4294967296.000000, d: -nan)
xmm9 ffffff00ffffffff (f: 4294967296.000000, d: -nan)
xmm10 2020200020202020 (f: 538976256.000000, d: 6.013288e-154)
xmm11 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm12 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm13 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm14 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm15 0000000000000000 (f: 0.000000, d: 0.000000e+00)
Module=/team/dmitri/jvm/java8/jre/lib/amd64/compressedrefs/libj9gc29.so
Module_base_address=00007FC066BF0000
Target=2_90_20231013_59097 (Linux 3.10.0-1160.95.1.el7.x86_64)
CPU=amd64 (8 logical CPUs) (0x3e0c23000 RAM)
JVMDUMP039I Processing dump event "gpf", detail "" at 2023/10/17 12:00:15 - please wait.
JVMDUMP032I JVM requested System dump using '/team/dmitri/tmp6/core.20231017.120015.11668.0001.dmp' in response to an event
JVMDUMP010I System dump written to /team/dmitri/tmp6/core.20231017.120015.11668.0001.dmp
JVMDUMP032I JVM requested Java dump using '/team/dmitri/tmp6/javacore.20231017.120015.11668.0002.txt' in response to an event
JVMDUMP032I JVM requested Snap dump using '/team/dmitri/tmp6/Snap.20231017.120015.11668.0003.trc' in response to an event
JVMDUMP009I Snap dump not available
JVMDUMP013I Processed dump event "gpf", detail "".

These options are undocumented and not recommended for use by customers. However if you are using one of them the recommended workaround is removing this option from command line temporary.

dmitripivkine commented 1 year ago

@amicic @manqingli @pshipton FYI

dmitripivkine commented 1 year ago

Fixed in https://github.com/eclipse/omr/pull/7149 and https://github.com/eclipse-openj9/openj9/pull/18311.