RFR (S) 8236901: 8232759 missed a test case

David Holmes david.holmes at oracle.com
Tue Jan 14 00:36:12 UTC 2020


Hi Coleen,

On 14/01/2020 7:08 am, coleen.phillimore at oracle.com wrote:
> Summary: Use jcmd GC.class-histogram because it also works for verifying 
> that the classes are loaded.

I'm looking at GC.class_stats and GC.class_histogram output and the 
actual test and I'm not sure the test was even working the way it was 
expected before. If I run the test using GC.class_stats I see:

----------System.out:(20/1962)----------
sizeof(DefineClass.class) == 8905
class test.DefineClass
WARNING: Ran out of C-heap; undercounted 342 total instances in data below
  1447    46         0        544           0    6752          12 
1351      4048    3616    8088   11704 test.DefineClass
  1448    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1449    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1450    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1451    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1452    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1453    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1454    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1455    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1456    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
  1457    46         0        544           0    4072          12 
1351      4048    3536    5488    9024 test.DefineClass
Should have 2 DefineClass instances and we have: 11

then

System.gc()
WARNING: Ran out of C-heap; undercounted 342 total instances in data below
  1598    47         0        544           0    6752          12 
1351      4048    3616    8088    11704 test.DefineClass
  1599    47         0        544           0    4072          12 
1351      4048    3536    5488     9024 test.DefineClass
Should have 2 DefineClass instances and we have: 2

so the test "passes". But if I then change the test to use 
GC.class_histogram as suggested it fails!


----------System.out:(7/321)----------
sizeof(DefineClass.class) == 8909
class test.DefineClass
WARNING: Ran out of C-heap; undercounted 342 total instances in data below
Should have 2 DefineClass instances and we have: 0
System.gc()
WARNING: Ran out of C-heap; undercounted 342 total instances in data below
Should have 2 DefineClass instances and we have: 0

This is on a JDK where GC.class_stats still exists.

David

> open webrev at http://cr.openjdk.java.net/~coleenp/2020/8236901.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8236901
> 
> Ran tier1 which runs the test on all Oracle platforms.
> 
> Thanks,
> Coleen


More information about the hotspot-runtime-dev mailing list