Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jdk_util_1 sun/util/calendar/zi/TestZoneInfo310.java.TestZoneInfo310 RuntimeException on AIX with -Xgcpolicy:balanced #19367

Closed
llxia opened this issue Apr 23, 2024 · 7 comments

Comments

@llxia
Copy link
Contributor

llxia commented Apr 23, 2024

internal link

  • EXTRA_OPTIONS=-Xgcpolicy:balanced
  • JVM_OPTIONS: -Xdump:system:none -Xdump:heap:none -Xdump:system:events=gpf+abort+traceassert+corruptcache -XX:-UseCompressedOops -Xverbosegclog -Xgcpolicy:balanced
01:58:07.646  openjdk version "21.0.3-internal" 2024-04-16
01:58:07.646  OpenJDK Runtime Environment (build 21.0.3-internal-adhoc.jenkins.BuildJDK21ppc64aixNightly)
01:58:07.646  Eclipse OpenJ9 VM (build master-f44a1c6ac3f, JRE 21 AIX ppc64-64-Bit Compressed References 20240419_229 (JIT enabled, AOT enabled)
01:58:07.646  OpenJ9   - f44a1c6ac3f
01:58:07.646  OMR      - 723d2e4b637
01:58:07.646  JCL      - 6eb28d52ff4 based on jdk-21.0.3+9)

sun/util/calendar/zi/TestZoneInfo310.java

04:55:41.715  STDOUT:
04:55:41.715  Compiling tz files!
04:55:41.715  testing!
04:55:41.715  OLD.getZoneInfoOld()[1]=462
04:55:41.715  OLD.getZoneInfoOld()[2]=350
04:55:41.715  OLD.getZoneInfoOld()[3]=230
04:55:41.715  OLD.getAvailableIDs()=1085, total=631
04:55:41.715  OLD.getAliasTable()=680, total=267
04:55:41.715  OLD.TotalTZ()=46 (ms)
04:55:41.715  NEW.getTimeZone()[1]=1161
04:55:41.715  NEW.getTimeZone()[2]=3
04:55:41.715  NEW.getTimeZone()[3]=948
04:55:41.715  NEW.getAvailableIDs()=25, total=631
04:55:41.715  NEW.getAliasTable()=27, total=267
04:55:41.715  NEW.TotalTZ()=195 (ms)
04:55:41.715  STDERR:
04:55:41.715  javazic: warning: found last rules for Morocco inconsistent.
04:55:41.715  javazic: warning: found last rules for Morocco inconsistent.
04:55:41.715  javazic: warning: found last rules for Eire inconsistent.
04:55:41.715  java.lang.RuntimeException: ZoneInfoOldMapping ZoneInfoMappings either doesn't exist or doesn't have data
04:55:41.715  	at ZoneInfoFile.getZoneInfoOldMappings(ZoneInfoFile.java:995)
04:55:41.715  	at ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:737)
04:55:41.715  	at ZoneInfoOld.getAvailableIDs(ZoneInfoOld.java:606)
04:55:41.715  	at TestZoneInfo310.main(TestZoneInfo310.java:222)
04:55:41.715  	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
04:55:41.715  	at java.base/java.lang.reflect.Method.invoke(Method.java:586)
04:55:41.715  	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
04:55:41.715  	at java.base/java.lang.Thread.run(Thread.java:1595)
04:55:41.715  
04:55:41.715  JavaTest Message: Test threw exception: java.lang.RuntimeException
04:55:41.715  JavaTest Message: shutting down test
04:55:41.715  
04:55:41.715  
04:55:41.715  TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: ZoneInfoOldMapping ZoneInfoMappings either doesn't exist or doesn't have data

Same issue in JDK11, 17 and 21 AIX.
The test passed without -Xgcpolicy:balanced on JDK21 AIX (link)

@pshipton
Copy link
Member

We'll have to figure out if it's a gc or jit issue.

@dmitripivkine
Copy link
Contributor

The reason for failure might be unexpected using of Arraylet (by JIT). We can check this by specifying region size large enough, for example 128m -Xgc:regionSize=134217728. Also run with -Xint can help.

@pshipton
Copy link
Member

pshipton commented Apr 23, 2024

I couldn't reproduce it on amac.
It reproduces on AIX when running jdk_util_1, but not when running the individual test (in 30 iterations).

Attempting to capture a system core when the exception is thrown.
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3513/ - killed it

pshipton added a commit to pshipton/openj9-openjdk-jdk11 that referenced this issue Apr 23, 2024
@pshipton
Copy link
Member

pshipton commented Apr 23, 2024

Creating a system dump on RuntimeException is not feasible. There are too many tests throwing this exception and the file system is filled up, plus the resulting diagnostics would be too big. I've modified the test to throw a different exception, which may be more viable.

https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3524/ - passed
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3527/ - passed

pshipton added a commit to pshipton/openj9-openjdk-jdk11 that referenced this issue Apr 23, 2024
@pshipton
Copy link
Member

pshipton commented Apr 24, 2024

This seems like a scenario where when we add -Xdump:system:events=throw,filter=... the failure no longer occurs. I'll try -Xgc:regionSize=134217728.

Reproduce failure
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3528/ - passed
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3530/ - passed
with -Xgc:regionSize
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3529/ - passed (with some other failure)
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3531/ - passed (with some other failure)

@pshipton
Copy link
Member

pshipton commented Apr 24, 2024

I can't cause the failure any more.

Last reproduced in https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3516/

Perhaps because of my modification to the test, replacing RuntimeException with, in this case, java.time.DateTimeException.

More grinders without this update.

Reproduce failure
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3532/ - passed
with -Xgc:regionSize
https://openj9-jenkins.osuosl.org/view/Test/job/Grinder/3533/ - passed (with some other failure)

For the record, the test that fails with -Xgc:regionSize=134217728 is
java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java
JVMJ9GC017E -Xmx too small, must be at least 1 Mbytes

@pshipton
Copy link
Member

16:29:50  OpenJDK Runtime Environment (build 11.0.23-internal+0-adhoc.jenkins.BuildJDK11ppc64aixNightly)
16:29:50  Eclipse OpenJ9 VM (build master-e2fa95597bc, JRE 11 AIX ppc64-64-Bit Compressed References 20240423_794 (JIT enabled, AOT enabled)
16:29:50  OpenJ9   - e2fa95597bc
16:29:50  OMR      - 723d2e4b637
16:29:50  JCL      - 95a3a61b3bb based on jdk-11.0.23+9)

15:17:20  OpenJDK Runtime Environment (build 11.0.23-internal+0-adhoc.jenkins.BuildJDK11ppc64aixNightly)
15:17:20  Eclipse OpenJ9 VM (build master-4998aab3ce1, JRE 11 AIX ppc64-64-Bit Compressed References 20240424_795 (JIT enabled, AOT enabled)
15:17:20  OpenJ9   - 4998aab3ce1
15:17:20  OMR      - 723d2e4b637
15:17:20  JCL      - 95a3a61b3bb based on jdk-11.0.23+9)

Doesn't seem like any of the changes would have fixed the failure, but it's not reproducible any more on the latest build.

e2fa955...4998aab

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants