Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8291653

G1 refinement incorrectly expects always-valid HeapRegion out of the Hot Card Cache

XMLWordPrintable

    • gc
    • b10
    • Not verified

      The following test failed in the JDK20 CI:

      vmTestbase/gc/gctests/StringInternSyncWithGC2/TestDescription.java

      Here's a snippet from the log file:

      #section:main
      ----------messages:(4/385)----------
      command: main -Xlog:gc:gc.log gc.gctests.StringInternSyncWithGC.StringInternSyncWithGC -ms high -memUsage 3 -appTimeout 30 -capacityVerPart 2
      reason: User specified action: run main/othervm -Xlog:gc:gc.log gc.gctests.StringInternSyncWithGC.StringInternSyncWithGC -ms high -memUsage 3 -appTimeout 30 -capacityVerPart 2
      Mode: othervm [/othervm specified]
      elapsed time (seconds): 79.265
      ----------configuration:(0/0)----------
      ----------System.out:(56/4132)----------
      Stress time: 120 seconds
      Stress iterations factor: 1
      Stress threads factor: 1
      Stress runs factor: 1
      Max memory: 1432354816
      Sleep time: 500
      Iterations: 0
      Number of threads: 24
      Run GC thread: false
      Run mem diag thread: false
      Run forever: false
      The overall size of interned strings : 136M
      The count of interned strings : 490532
      Starting Thread[#32,gc.gctests.StringInternSyncWithGC.StringGenerator@49d83ca0,5,MainThreadGroup]
      Starting Thread[#33,gc.gctests.StringInternSyncWithGC.StringGenerator@36b0c064,5,MainThreadGroup]
      Starting Thread[#34,gc.gctests.StringInternSyncWithGC.StringGenerator@3e85d72e,5,MainThreadGroup]
      Starting Thread[#35,gc.gctests.StringInternSyncWithGC.StringGenerator@52549452,5,MainThreadGroup]
      Starting Thread[#36,gc.gctests.StringInternSyncWithGC.StringGenerator@108a6070,5,MainThreadGroup]
      Starting Thread[#37,gc.gctests.StringInternSyncWithGC.StringGenerator@200921e5,5,MainThreadGroup]
      Starting Thread[#38,gc.gctests.StringInternSyncWithGC.StringGenerator@30a5ae6d,5,MainThreadGroup]
      Starting Thread[#39,gc.gctests.StringInternSyncWithGC.StringGenerator@46255a2f,5,MainThreadGroup]
      Starting Thread[#40,gc.gctests.StringInternSyncWithGC.StringGenerator@56f3b7b,5,MainThreadGroup]
      Starting Thread[#41,gc.gctests.StringInternSyncWithGC.StringGenerator@6c80243a,5,MainThreadGroup]
      Starting Thread[#42,gc.gctests.StringInternSyncWithGC.StringGenerator@714b3901,5,MainThreadGroup]
      Starting Thread[#43,gc.gctests.StringInternSyncWithGC.StringGenerator@1dd3e125,5,MainThreadGroup]
      Starting Thread[#44,gc.gctests.StringInternSyncWithGC.StringGenerator@619bb507,5,MainThreadGroup]
      Starting Thread[#45,gc.gctests.StringInternSyncWithGC.StringGenerator@c57fcfa,5,MainThreadGroup]
      Starting Thread[#46,gc.gctests.StringInternSyncWithGC.StringGenerator@24fc5f40,5,MainThreadGroup]
      Starting Thread[#47,gc.gctests.StringInternSyncWithGC.StringGenerator@26a45833,5,MainThreadGroup]
      Starting Thread[#48,gc.gctests.StringInternSyncWithGC.StringGenerator@1aabe26d,5,MainThreadGroup]
      Starting Thread[#49,gc.gctests.StringInternSyncWithGC.StringGenerator@29287dee,5,MainThreadGroup]
      Starting Thread[#50,gc.gctests.StringInternSyncWithGC.StringGenerator@6f6821d4,5,MainThreadGroup]
      Starting Thread[#51,gc.gctests.StringInternSyncWithGC.StringGenerator@6b0989ca,5,MainThreadGroup]
      Starting Thread[#52,gc.gctests.StringInternSyncWithGC.StringGenerator@2ef4b64c,5,MainThreadGroup]
      Starting Thread[#53,gc.gctests.StringInternSyncWithGC.StringGenerator@44597971,5,MainThreadGroup]
      Starting Thread[#54,gc.gctests.StringInternSyncWithGC.StringGenerator@6a1196af,5,MainThreadGroup]
      Starting Thread[#55,gc.gctests.StringInternSyncWithGC.StringGenerator@4d7105fe,5,MainThreadGroup]
      # To suppress the following error report, specify this argument
      # after -XX: or in .hotspotrc: SuppressErrorAt=/heapRegionManager.inline.hpp:47
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/0c72054a-24ab-4dbb-944f-97f9341a1b96-S40241/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/bca6c5e3-5b22-4227-a4e4-83459ae15e11/runs/c0eb0ff8-ee63-4658-a17e-97e873c9e944/workspace/open/src/hotspot/share/gc/g1/heapRegionManager.inline.hpp:47), pid=93178, tid=17923
      # assert(is_available(index)) failed: pre-condition
      #
      # JRE version: Java(TM) SE Runtime Environment (20.0+9) (fastdebug build 20-ea+9-468)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 20-ea+9-468, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
      # Core dump will be written. Default location: core.93178
      #
      # An error report file with more information is saved as:
      # /System/Volumes/Data/mesos/work_dir/slaves/0c72054a-24ab-4dbb-944f-97f9341a1b96-S39191/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/1363ad05-dce9-4c9f-8400-34775be7542a/runs/74179673-c73e-4975-968e-bc2e687b243e/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_vm_gc_misc/scratch/2/hs_err_pid93178.log
      [thread 35075 also had an error]
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #
      ----------System.err:(0/0)----------
      ----------rerun:(32/7796)*----------


      Here's the crashing thread:

      --------------- T H R E A D ---------------

      Current thread (0x00007fccf31d3610): ConcurrentGCThread "G1 Refine#0" [stack: 0x000070000f3f8000,0x000070000f4f8000] [id=17923]

      Stack: [0x000070000f3f8000,0x000070000f4f8000], sp=0x000070000f4f7920, free space=1022k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0x12bc1d9] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6e9
      V [libjvm.dylib+0x12bc85b] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
      V [libjvm.dylib+0x6c58ed] report_vm_error(char const*, int, char const*, char const*, ...)+0xdd
      V [libjvm.dylib+0x7ddfe8] HeapRegionManager::at(unsigned int) const+0x68
      V [libjvm.dylib+0x89c8fc] G1RemSet::clean_card_before_refine(unsigned char**)+0x17c
      V [libjvm.dylib+0x842625] G1RefineBufferedCards::clean_cards()+0xc5
      V [libjvm.dylib+0x841f03] G1DirtyCardQueueSet::refine_buffer(BufferNode*, unsigned int, G1ConcurrentRefineStats*)+0xe3
      V [libjvm.dylib+0x8420ce] G1DirtyCardQueueSet::refine_completed_buffer_concurrently(unsigned int, unsigned long, G1ConcurrentRefineStats*)+0x3e
      V [libjvm.dylib+0x83f030] G1ConcurrentRefineThread::run_service()+0x250
      V [libjvm.dylib+0x6672eb] ConcurrentGCThread::run()+0x1b
      V [libjvm.dylib+0x120d057] Thread::call_run()+0x177
      V [libjvm.dylib+0xfada30] thread_native_entry(Thread*)+0x150
      C [libsystem_pthread.dylib+0x68fc] _pthread_start+0xe0
      C [libsystem_pthread.dylib+0x2443] thread_start+0xf

            tschatzl Thomas Schatzl
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: