Skip to content

Assertion failure in do_work in StopMutators #93

@wks

Description

@wks

Run the following command on x64, Linux, OpenJDK with GDB

env RUST_BACKTRACE=1 MMTK_MIN_NURSERY=524288 MMTK_MAX_NURSERY=524288 MMTK_PLAN=GenCopy RUST_LOG=info gdb --args /home/wks/projects/mmtk-github/mmtk-openjdk/repos/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -XX:+UseThirdPartyHeap -Xms512M -Xmx512M -jar ./dacapo-9.12-MR1-bach.jar lusearch

In GDB, execute the following commands:

handle SIGSEGV noprint nostop
run

and there is a high chance to get an assertion failure:

thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`', /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/gc_work.rs:196:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/6a758ea7e48416b968955535094479dc2e7cc9e1/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /rustc/6a758ea7e48416b968955535094479dc2e7cc9e1/library/core/src/panicking.rs:92:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/6a758ea7e48416b968955535094479dc2e7cc9e1/library/core/src/panicking.rs:117:5
   4: <mmtk::scheduler::gc_work::StopMutators<E> as mmtk::scheduler::work::GCWork<<E as mmtk::scheduler::gc_work::ProcessEdgesWork>::VM>>::do_work
             at /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/gc_work.rs:196:13
   5: <W as mmtk::scheduler::work::Work<mmtk::mmtk::MMTK<VM>>>::do_work
             at /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/work.rs:34:9
   6: mmtk::scheduler::work::Work::do_work_with_stat
             at /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/work.rs:14:9
   7: mmtk::scheduler::scheduler::Scheduler<C>::process_coordinator_work
             at /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/scheduler.rs:201:9
   8: mmtk::scheduler::scheduler::Scheduler<C>::wait_for_completion
             at /home/wks/projects/mmtk-github/mmtk-core/src/scheduler/scheduler.rs:214:21
   9: mmtk::plan::controller_collector_context::ControllerCollectorContext<VM>::run
             at /home/wks/projects/mmtk-github/mmtk-core/src/plan/controller_collector_context.rs:67:13
  10: mmtk::memory_manager::start_control_collector
             at /home/wks/projects/mmtk-github/mmtk-core/src/memory_manager.rs:36:5
  11: start_control_collector
             at /home/wks/projects/mmtk-github/mmtk-openjdk/mmtk/src/api.rs:54:5
  12: _ZN17MMTkContextThread3runEv
  13: _ZN6Thread8call_runEv
  14: _ZL19thread_native_entryP6Thread
  15: start_thread
  16: __GI___clone

When not using GDB, there is chance that the process will hang for a long time before exiting normally (probably triggering a different bug).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions