Crashes when using -XX:ObjArrayMarkingStride=0

XMLWordPrintable

    • gc

      Crash in G1CMTask::start_partial_array_processing(oop) when using invalid value for -XX:ObjArrayMarkingStride.

      Maybe flag should be constrained to strictly positive values.

      replicate:

      make run-test TEST=test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java TEST_VM_OPTS="-XX:ObjArrayMarkingStride=0" CONF=-fastdebug

      Current thread (0x00007f47ac000d90): WorkerThread "G1 Conc#1" [id=1851825, stack(0x00007f47a86e8000,0x00007f47a87e8000) (1024K)]

      Stack: [0x00007f47a86e8000,0x00007f47a87e8000], sp=0x00007f47a87e6a80, free space=1018k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xe9624e] G1CMTask::start_partial_array_processing(oop)+0xae (partialArrayTaskStepper.inline.hpp:41)
      V [libjvm.so+0xea1d2a] void G1CMTask::process_grey_task_entry<true>(ScannerTask, bool)+0x2fa (g1ConcurrentMark.inline.hpp:175)
      V [libjvm.so+0xe97337] G1CMBitMapClosure::do_addr(HeapWordImpl**)+0x77 (g1ConcurrentMark.inline.hpp:111)
      V [libjvm.so+0xe976b4] G1CMTask::process_current_region(G1CMBitMapClosure&)+0x214 (g1ConcurrentMarkBitMap.inline.hpp:46)
      V [libjvm.so+0xe997db] G1CMTask::do_marking_step(double, bool, bool)+0x21b (g1ConcurrentMark.cpp:2787)
      V [libjvm.so+0xea5224] G1CMConcurrentMarkingTask::work(unsigned int)+0x1e4 (g1ConcurrentMark.cpp:1029)
      V [libjvm.so+0x1d2e1e8] WorkerThread::run()+0x88 (workerThread.cpp:72)
      V [libjvm.so+0x1bbc846] Thread::call_run()+0xb6 (thread.cpp:243)
      V [libjvm.so+0x1810c38] thread_native_entry(Thread*)+0x118 (os_linux.cpp:929)

      siginfo: si_signo: 8 (SIGFPE), si_code: 1 (FPE_INTDIV), si_addr: 0x00007f47d949624e

            Assignee:
            Guanqiang Han
            Reporter:
            Daniel Skantz
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: