mmtk / mmtk-julia

Julia binding for MMTk
12 stars 9 forks source link

unlock count must match lock count #179

Open qinsoon opened 2 weeks ago

qinsoon commented 2 weeks ago

First seen in https://github.com/mmtk/mmtk-julia/actions/runs/11097983519/job/30830015431?pr=170 in https://github.com/mmtk/mmtk-julia/pull/170 when running test/threads.

Error During Test at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:907
  Test threw exception
  Expression: fib34666(25) == 75025
  TaskFailedException
  Stacktrace:
    [1] wait
      @ ./task.jl:349 [inlined]
    [2] fetch
      @ ./task.jl:369 [inlined]
    [3] (::var"#f#173"{Channel{Any}})(x::Int64)
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
    [4] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:905 [inlined]
    [5] macro expansion
      @ ./task.jl:476 [inlined]
    [6] fib34666(x::Int64)
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:897
    [7] top-level scope
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/usr/share/julia/stdlib/v1.9/Test/src/Test.jl:478
    [8] include(mod::Module, _path::String)
      @ Base ./Base.jl:457
    [9] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:307
   [10] _start()
      @ Base ./client.jl:522

      nested task error: TaskFailedException
      Stacktrace:
       [1] wait
         @ ./task.jl:349 [inlined]
       [2] fetch
         @ ./task.jl:369 [inlined]
       [3] (::var"#f#173"{Channel{Any}})(x::Int64)
         @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
       [4] (::var"#172#175"{Int64})()
         @ Main ./threadingconstructs.jl:411

          nested task error: TaskFailedException
          Stacktrace:
           [1] wait
             @ ./task.jl:349 [inlined]
           [2] fetch
             @ ./task.jl:369 [inlined]
           [3] (::var"#f#173"{Channel{Any}})(x::Int64)
             @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
           [4] (::var"#172#175"{Int64})()
             @ Main ./threadingconstructs.jl:411

              nested task error: TaskFailedException
              Stacktrace:
               [1] wait
                 @ ./task.jl:349 [inlined]
               [2] fetch
                 @ ./task.jl:369 [inlined]
               [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                 @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
               [4] (::var"#172#175"{Int64})()
                 @ Main ./threadingconstructs.jl:411

                  nested task error: TaskFailedException
                  Stacktrace:
                   [1] wait
                     @ ./task.jl:349 [inlined]
                   [2] fetch
                     @ ./task.jl:369 [inlined]
                   [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                     @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                   [4] (::var"#172#175"{Int64})()
                     @ Main ./threadingconstructs.jl:411

                      nested task error: TaskFailedException
                      Stacktrace:
                       [1] wait
                         @ ./task.jl:349 [inlined]
                       [2] fetch
                         @ ./task.jl:369 [inlined]
                       [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                         @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                       [4] (::var"#172#175"{Int64})()
                         @ Main ./threadingconstructs.jl:411

                          nested task error: TaskFailedException
                          Stacktrace:
                           [1] wait
                             @ ./task.jl:349 [inlined]
                           [2] fetch
                             @ ./task.jl:369 [inlined]
                           [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                             @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                           [4] (::var"#171#174"{Int64})()
                             @ Main ./threadingconstructs.jl:411

                              nested task error: TaskFailedException
                              Stacktrace:
                               [1] wait
                                 @ ./task.jl:349 [inlined]
                               [2] fetch
                                 @ ./task.jl:369 [inlined]
                               [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                 @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                               [4] (::var"#172#175"{Int64})()
                                 @ Main ./threadingconstructs.jl:411

                                  nested task error: TaskFailedException
                                  Stacktrace:
                                   [1] wait
                                     @ ./task.jl:349 [inlined]
                                   [2] fetch
                                     @ ./task.jl:369 [inlined]
                                   [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                     @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                   [4] (::var"#172#175"{Int64})()
                                     @ Main ./threadingconstructs.jl:411

                                      nested task error: TaskFailedException
                                      Stacktrace:
                                       [1] wait
                                         @ ./task.jl:349 [inlined]
                                       [2] fetch
                                         @ ./task.jl:369 [inlined]
                                       [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                         @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                       [4] (::var"#172#175"{Int64})()
                                         @ Main ./threadingconstructs.jl:411

                                          nested task error: TaskFailedException
                                          Stacktrace:
                                           [1] wait
                                             @ ./task.jl:349 [inlined]
                                           [2] fetch
                                             @ ./task.jl:369 [inlined]
                                           [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                             @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                           [4] (::var"#171#174"{Int64})()
                                             @ Main ./threadingconstructs.jl:411

                                              nested task error: TaskFailedException
                                              Stacktrace:
                                               [1] wait
                                                 @ ./task.jl:349 [inlined]
                                               [2] fetch
                                                 @ ./task.jl:369 [inlined]
                                               [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                 @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                               [4] (::var"#172#175"{Int64})()
                                                 @ Main ./threadingconstructs.jl:411

                                                  nested task error: TaskFailedException
                                                  Stacktrace:
                                                   [1] wait
                                                     @ ./task.jl:349 [inlined]
                                                   [2] fetch
                                                     @ ./task.jl:369 [inlined]
                                                   [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                     @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                   [4] (::var"#172#175"{Int64})()
                                                     @ Main ./threadingconstructs.jl:411

                                                      nested task error: TaskFailedException
                                                      Stacktrace:
                                                       [1] wait
                                                         @ ./task.jl:349 [inlined]
                                                       [2] fetch
                                                         @ ./task.jl:369 [inlined]
                                                       [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                         @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                       [4] (::var"#172#175"{Int64})()
                                                         @ Main ./threadingconstructs.jl:411

                                                          nested task error: TaskFailedException
                                                          Stacktrace:
                                                           [1] wait
                                                             @ ./task.jl:349 [inlined]
                                                           [2] fetch
                                                             @ ./task.jl:369 [inlined]
                                                           [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                             @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                           [4] (::var"#172#175"{Int64})()
                                                             @ Main ./threadingconstructs.jl:411

                                                              nested task error: TaskFailedException
                                                              Stacktrace:
                                                               [1] wait
                                                                 @ ./task.jl:349 [inlined]
                                                               [2] fetch
                                                                 @ ./task.jl:369 [inlined]
                                                               [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                                 @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                               [4] (::var"#171#174"{Int64})()
                                                                 @ Main ./threadingconstructs.jl:411

                                                                  nested task error: TaskFailedException
                                                                  Stacktrace:
                                                                   [1] wait
                                                                     @ ./task.jl:349 [inlined]
                                                                   [2] fetch
                                                                     @ ./task.jl:369 [inlined]
                                                                   [3] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                                     @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                                   [4] (::var"#171#174"{Int64})()
                                                                     @ Main ./threadingconstructs.jl:411

                                                                      nested task error: unlock count must match lock count
                                                                      Stacktrace:
                                                                       [1] error(s::String)
                                                                         @ Base ./error.jl:35
                                                                       [2] unlock
                                                                         @ ./locks-mt.jl:66 [inlined]
                                                                       [3] unlock(c::Base.GenericCondition{SpinLock})
                                                                         @ Base ./condition.jl:74
                                                                       [4] _wait(t::Task)
                                                                         @ Base ./task.jl:311
                                                                       [5] wait
                                                                         @ ./task.jl:347 [inlined]
                                                                       [6] fetch
                                                                         @ ./task.jl:369 [inlined]
                                                                       [7] (::var"#f#173"{Channel{Any}})(x::Int64)
                                                                         @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:903
                                                                       [8] (::var"#172#175"{Int64})()
                                                                         @ Main ./threadingconstructs.jl:411
ERROR: LoadError: There was an error during testing
in expression starting at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/threads_exec.jl:907
threads    (1) |         failed at 2024-09-30T03:19:00.790
Error During Test at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:21
  Got exception outside of a @test
  LoadError: failed process: Process(setenv(`/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/bin/julia -Cnative -J/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/julia/sys.so --depwarn=error --check-bounds=yes -g1 --startup-file=no --depwarn=error --rr-detach --startup-file=no threads_exec.jl`,["MFLAGS=-s", "PATH=/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1", "GITHUB_RUN_NUMBER=543", "GITHUB_REF_NAME=170/merge", "RUNNER_ARCH=X64", "MAKEFLAGS=s -- JULIA_BUILD_MODE=release", "MAKEOVERRIDES=\${-*-command-variables-*-}", "PERFLOG_LOCATION_SETTING=RUNNER_PERFLOG", "BUILDROOT=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia", "STATS_TIS=mining", "GOROOT_1_20_X64=/opt/hostedtoolcache/go/1.20.14/x64", "JULIA_BUILD_MODE=release", "ACCEPT_EULA=Y", "JULIA_TEST_MAXRSS_MB=15990", "GOROOT_1_21_X64=/opt/hostedtoolcache/go/1.21.13/x64", "ANT_HOME=/usr/share/ant", "RUNNER_USER=runner", "LEIN_HOME=/usr/local/lib/lein", "GITHUB_REPOSITORY_ID=523178566", "GITHUB_ACTOR=qinsoon", "GITHUB_WORKFLOW_REF=mmtk/mmtk-julia/.github/workflows/ci.yml@refs/pull/170/merge", "ANDROID_NDK_LATEST_HOME=/usr/local/lib/android/sdk/ndk/27.1.12297006", "MMTK_JULIA_DIR=/home/runner/work/mmtk-julia/mmtk-julia/.github/scripts/../..", "RUNNER_ENVIRONMENT=github-hosted", "SYSTEMD_EXEC_PID=608", "OPENBLAS_DEFAULT_NUM_THREADS=1", "STATS_D_D=false", "USER=runner", "CONDA=/usr/share/miniconda", "STATS_VMFE=true", "VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg", "GITHUB_REF_PROTECTED=false", "GITHUB_API_URL=https://api.github.com", "GITHUB_SHA=ff4f3a247e4ccea64a8db1e40ebc0581368de071", "GITHUB_ACTIONS=true", "STATS_V3PS=true", "GITHUB_RUN_ATTEMPT=1", "MAKELEVEL=2", "ANDROID_SDK_ROOT=/usr/local/lib/android/sdk", "JAVA_HOME=/usr/lib/jvm/temurin-11-jdk-amd64", "SWIFT_PATH=/usr/share/swift/usr/bin", "STATS_EXT=true", "GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "JAVA_HOME_17_X64=/usr/lib/jvm/temurin-17-jdk-amd64", "RUNNER_PERFLOG=/home/runner/perflog", "RUNNER_NAME=GitHub Actions 59", "EDGEWEBDRIVER=/usr/local/share/edge_driver", "GITHUB_RUN_ID=1109798[3519](https://github.com/mmtk/mmtk-julia/actions/runs/11097983519/job/30830015431?pr=170#step:6:3520)", "ImageOS=ubuntu22", "MMTK_MAX_HSIZE_G=4", "NVM_DIR=/home/runner/.nvm", "GHCUP_INSTALL_BASE_PREFIX=/usr/local", "GITHUB_HEAD_REF=pin-globally-rooted-symbols", "GITHUB_RETENTION_DAYS=90", "GITHUB_SERVER_URL=https://github.com", "GITHUB_OUTPUT=/home/runner/work/_temp/_runner_file_commands/set_output_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "STATS_UE=true", "STATS_BLT=true", "GITHUB_JOB=build-test-other", "DEBIAN_FRONTEND=noninteractive", "RUNNER_TRACKING_ID=github_b98b06c0-f1b9-4889-a7e4-0782db0fa73d", "RUNNER_TOOL_CACHE=/opt/hostedtoolcache", "AZURE_EXTENSION_DIR=/opt/az/azcliextensions", "HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS=3650", "CHROMEWEBDRIVER=/usr/local/share/chromedriver-linux64", "GITHUB_WORKFLOW=Test Julia Binding", "GITHUB_ACTION_REPOSITORY=", "HOMEBREW_NO_AUTO_UPDATE=1", "HOME=/home/runner", "GITHUB_ACTION=__run_4", "JAVA_HOME_8_X64=/usr/lib/jvm/temurin-8-jdk-amd64", "GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json", "GITHUB_STEP_SUMMARY=/home/runner/work/_temp/_runner_file_commands/step_summary_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "MMTK_MIN_HSIZE_G=0.5", "GITHUB_REF=refs/pull/170/merge", "SGX_AESM_ADDR=1", "LC_ALL=C", "GITHUB_REPOSITORY=mmtk/mmtk-julia", "INVOCATION_ID=1c963f8458be4f4ab57e46b11cfd7619", "ImageVersion=20240922.1.0", "JAVA_HOME_21_X64=/usr/lib/jvm/temurin-21-jdk-amd64", "ANDROID_NDK=/usr/local/lib/android/sdk/ndk/27.1.12297006", "STATS_D=false", "LANG=C", "SHLVL=2", "GITHUB_GRAPHQL_URL=https://api.github.com/graphql", "GOROOT_1_22_X64=/opt/hostedtoolcache/go/1.22.7/x64", "DOTNET_MULTILEVEL_LOOKUP=0", "JULIA_CPU_THREADS=2", "OLDPWD=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test", "GITHUB_STATE=/home/runner/work/_temp/_runner_file_commands/save_state_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "XDG_RUNTIME_DIR=/run/user/1001", "RUNNER_WORKSPACE=/home/runner/work/mmtk-julia", "GITHUB_BASE_REF=v1.9.2+RAI", "_=/usr/bin/make", "GRADLE_HOME=/usr/share/gradle-8.10.1", "GITHUB_ACTION_REF=", "DEPLOYMENT_BASEPATH=/opt/runner", "PIPX_HOME=/opt/pipx", "GITHUB_REPOSITORY_OWNER_ID=32701511", "JULIA_NUM_THREADS=1", "GITHUB_ACTOR_ID=1664709", "ANDROID_NDK_ROOT=/usr/local/lib/android/sdk/ndk/27.1.12297006", "RUST_BACKTRACE=1", "***", "ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE=/opt/actionarchivecache", "PKG_CONFIG_LIBDIR=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/pkgconfig", "STATS_VMD=true", "GITHUB_WORKSPACE=/home/runner/work/mmtk-julia/mmtk-julia", "GITHUB_WORKFLOW_SHA=ff4f3a247e4ccea64a8db1e40ebc0581368de071", "XDG_CONFIG_HOME=/home/runner/.config", "ANDROID_HOME=/usr/local/lib/android/sdk", "CI=true", "CHROME_BIN=/usr/bin/google-chrome", "STATS_EXTP=https://provjobdsettingscdn.blob.core.windows.net/settings/provjobdsettings-0.5.189/provjobd.data", "STATS_TRP=true", "POWERSHELL_DISTRIBUTION_CHANNEL=GitHub-Actions-ubuntu22", "GECKOWEBDRIVER=/usr/local/share/gecko_driver", "GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "STATS_RDCL=true", "RUNNER_OS=Linux", "JOURNAL_STREAM=8:4857", "GITHUB_REF_TYPE=branch", "PKG_CONFIG_PATH=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/pkgconfig", "LEIN_JAR=/usr/local/lib/lein/self-installs/leiningen-2.11.2-standalone.jar", "PIPX_BIN_DIR=/opt/pipx_bin", "BOOTSTRAP_HASKELL_NONINTERACTIVE=1", "RUNNER_TEMP=/home/runner/work/_temp", "JAVA_HOME_11_X64=/usr/lib/jvm/temurin-11-jdk-amd64", "GITHUB_TRIGGERING_ACTOR=qinsoon", "SELENIUM_JAR_PATH=/usr/share/java/selenium-server.jar", "GITHUB_REPOSITORY_OWNER=mmtk", "DOTNET_NOLOGO=1", "GITHUB_EVENT_NAME=pull_request", "OPENBLAS_MAIN_FREE=1", "ANDROID_NDK_HOME=/usr/local/lib/android/sdk/ndk/27.1.12297006", "AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache"]), ProcessExited(1)) [1]

  Stacktrace:
    [1] pipeline_error
      @ ./process.jl:565 [inlined]
    [2] run(::Base.CmdRedirect; wait::Bool)
      @ Base ./process.jl:480
    [3] run(::Base.CmdRedirect)
      @ Base ./process.jl:477
    [4] top-level scope
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads.jl:78
    [5] include
      @ ./Base.jl:457 [inlined]
    [6] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:29 [inlined]
    [7] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/usr/share/julia/stdlib/v1.9/Test/src/Test.jl:1498 [inlined]
    [8] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:23 [inlined]
    [9] macro expansion
      @ ./timing.jl:511 [inlined]
   [10] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:21
   [11] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, UInt128, Tuple{Symbol}, NamedTuple{(:seed,), Tuple{UInt128}}})
      @ Base ./essentials.jl:818
   [12] (::var"#37#47")()
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/runtests.jl:321
   [13] cd(f::var"#37#47", dir::String)
      @ Base.Filesystem ./file.jl:112
   [14] top-level scope
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/runtests.jl:94
   [15] include(mod::Module, _path::String)
      @ Base ./Base.jl:457
   [16] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:307
   [17] _start()
      @ Base ./client.jl:522
  in expression starting at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/threads.jl:74

Test Summary: | Pass  Error  Total  Time
  Overall     |   30      1     31  0.6s
    threads   |   30      1     31  1m06.6s
    FAILURE

The global RNG seed was 0x4518bac87c9c63003c75cd7b80338f8d.

Error in testset threads:
Error During Test at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:21
  Got exception outside of a @test
  LoadError: failed process: Process(setenv(`/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/bin/julia -Cnative -J/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/julia/sys.so --depwarn=error --check-bounds=yes -g1 --startup-file=no --depwarn=error --rr-detach --startup-file=no threads_exec.jl`,["MFLAGS=-s", "PATH=/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1", "GITHUB_RUN_NUMBER=543", "GITHUB_REF_NAME=170/merge", "RUNNER_ARCH=X64", "MAKEFLAGS=s -- JULIA_BUILD_MODE=release", "MAKEOVERRIDES=\${-*-command-variables-*-}", "PERFLOG_LOCATION_SETTING=RUNNER_PERFLOG", "BUILDROOT=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia", "STATS_TIS=mining", "GOROOT_1_20_X64=/opt/hostedtoolcache/go/1.20.14/x64", "JULIA_BUILD_MODE=release", "ACCEPT_EULA=Y", "JULIA_TEST_MAXRSS_MB=15990", "GOROOT_1_21_X64=/opt/hostedtoolcache/go/1.21.13/x64", "ANT_HOME=/usr/share/ant", "RUNNER_USER=runner", "LEIN_HOME=/usr/local/lib/lein", "GITHUB_REPOSITORY_ID=523178566", "GITHUB_ACTOR=qinsoon", "GITHUB_WORKFLOW_REF=mmtk/mmtk-julia/.github/workflows/ci.yml@refs/pull/170/merge", "ANDROID_NDK_LATEST_HOME=/usr/local/lib/android/sdk/ndk/27.1.12297006", "MMTK_JULIA_DIR=/home/runner/work/mmtk-julia/mmtk-julia/.github/scripts/../..", "RUNNER_ENVIRONMENT=github-hosted", "SYSTEMD_EXEC_PID=608", "OPENBLAS_DEFAULT_NUM_THREADS=1", "STATS_D_D=false", "USER=runner", "CONDA=/usr/share/miniconda", "STATS_VMFE=true", "VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg", "GITHUB_REF_PROTECTED=false", "GITHUB_API_URL=https://api.github.com", "GITHUB_SHA=ff4f3a247e4ccea64a8db1e40ebc0581368de071", "GITHUB_ACTIONS=true", "STATS_V3PS=true", "GITHUB_RUN_ATTEMPT=1", "MAKELEVEL=2", "ANDROID_SDK_ROOT=/usr/local/lib/android/sdk", "JAVA_HOME=/usr/lib/jvm/temurin-11-jdk-amd64", "SWIFT_PATH=/usr/share/swift/usr/bin", "STATS_EXT=true", "GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "JAVA_HOME_17_X64=/usr/lib/jvm/temurin-17-jdk-amd64", "RUNNER_PERFLOG=/home/runner/perflog", "RUNNER_NAME=GitHub Actions 59", "EDGEWEBDRIVER=/usr/local/share/edge_driver", "GITHUB_RUN_ID=11097983519", "ImageOS=ubuntu22", "MMTK_MAX_HSIZE_G=4", "NVM_DIR=/home/runner/.nvm", "GHCUP_INSTALL_BASE_PREFIX=/usr/local", "GITHUB_HEAD_REF=pin-globally-rooted-symbols", "GITHUB_RETENTION_DAYS=90", "GITHUB_SERVER_URL=https://github.com", "GITHUB_OUTPUT=/home/runner/work/_temp/_runner_file_commands/set_output_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "STATS_UE=true", "STATS_BLT=true", "GITHUB_JOB=build-test-other", "DEBIAN_FRONTEND=noninteractive", "RUNNER_TRACKING_ID=github_b98b06c0-f1b9-4889-a7e4-0782db0fa73d", "RUNNER_TOOL_CACHE=/opt/hostedtoolcache", "AZURE_EXTENSION_DIR=/opt/az/azcliextensions", "HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS=[3650](https://github.com/mmtk/mmtk-julia/actions/runs/11097983519/job/30830015431?pr=170#step:6:3651)", "CHROMEWEBDRIVER=/usr/local/share/chromedriver-linux64", "GITHUB_WORKFLOW=Test Julia Binding", "GITHUB_ACTION_REPOSITORY=", "HOMEBREW_NO_AUTO_UPDATE=1", "HOME=/home/runner", "GITHUB_ACTION=__run_4", "JAVA_HOME_8_X64=/usr/lib/jvm/temurin-8-jdk-amd64", "GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json", "GITHUB_STEP_SUMMARY=/home/runner/work/_temp/_runner_file_commands/step_summary_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "MMTK_MIN_HSIZE_G=0.5", "GITHUB_REF=refs/pull/170/merge", "SGX_AESM_ADDR=1", "LC_ALL=C", "GITHUB_REPOSITORY=mmtk/mmtk-julia", "INVOCATION_ID=1c963f8458be4f4ab57e46b11cfd7619", "ImageVersion=20240922.1.0", "JAVA_HOME_21_X64=/usr/lib/jvm/temurin-21-jdk-amd64", "ANDROID_NDK=/usr/local/lib/android/sdk/ndk/27.1.12297006", "STATS_D=false", "LANG=C", "SHLVL=2", "GITHUB_GRAPHQL_URL=https://api.github.com/graphql", "GOROOT_1_22_X64=/opt/hostedtoolcache/go/1.22.7/x64", "DOTNET_MULTILEVEL_LOOKUP=0", "JULIA_CPU_THREADS=2", "OLDPWD=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test", "GITHUB_STATE=/home/runner/work/_temp/_runner_file_commands/save_state_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "XDG_RUNTIME_DIR=/run/user/1001", "RUNNER_WORKSPACE=/home/runner/work/mmtk-julia", "GITHUB_BASE_REF=v1.9.2+RAI", "_=/usr/bin/make", "GRADLE_HOME=/usr/share/gradle-8.10.1", "GITHUB_ACTION_REF=", "DEPLOYMENT_BASEPATH=/opt/runner", "PIPX_HOME=/opt/pipx", "GITHUB_REPOSITORY_OWNER_ID=32701511", "JULIA_NUM_THREADS=1", "GITHUB_ACTOR_ID=1664709", "ANDROID_NDK_ROOT=/usr/local/lib/android/sdk/ndk/27.1.12297006", "RUST_BACKTRACE=1", "***", "ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE=/opt/actionarchivecache", "PKG_CONFIG_LIBDIR=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/pkgconfig", "STATS_VMD=true", "GITHUB_WORKSPACE=/home/runner/work/mmtk-julia/mmtk-julia", "GITHUB_WORKFLOW_SHA=ff4f3a247e4ccea64a8db1e40ebc0581368de071", "XDG_CONFIG_HOME=/home/runner/.config", "ANDROID_HOME=/usr/local/lib/android/sdk", "CI=true", "CHROME_BIN=/usr/bin/google-chrome", "STATS_EXTP=https://provjobdsettingscdn.blob.core.windows.net/settings/provjobdsettings-0.5.189/provjobd.data", "STATS_TRP=true", "POWERSHELL_DISTRIBUTION_CHANNEL=GitHub-Actions-ubuntu22", "GECKOWEBDRIVER=/usr/local/share/gecko_driver", "GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_4977d55c-7502-4b7d-9f8b-47c0b77daa2a", "STATS_RDCL=true", "RUNNER_OS=Linux", "JOURNAL_STREAM=8:4857", "GITHUB_REF_TYPE=branch", "PKG_CONFIG_PATH=/home/runner/work/mmtk-julia/mmtk-julia/vm/julia/usr/lib/pkgconfig", "LEIN_JAR=/usr/local/lib/lein/self-installs/leiningen-2.11.2-standalone.jar", "PIPX_BIN_DIR=/opt/pipx_bin", "BOOTSTRAP_HASKELL_NONINTERACTIVE=1", "RUNNER_TEMP=/home/runner/work/_temp", "JAVA_HOME_11_X64=/usr/lib/jvm/temurin-11-jdk-amd64", "GITHUB_TRIGGERING_ACTOR=qinsoon", "SELENIUM_JAR_PATH=/usr/share/java/selenium-server.jar", "GITHUB_REPOSITORY_OWNER=mmtk", "DOTNET_NOLOGO=1", "GITHUB_EVENT_NAME=pull_request", "OPENBLAS_MAIN_FREE=1", "ANDROID_NDK_HOME=/usr/local/lib/android/sdk/ndk/27.1.12297006", "AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache"]), ProcessExited(1)) [1]

  Stacktrace:
    [1] pipeline_error
      @ ./process.jl:565 [inlined]
    [2] run(::Base.CmdRedirect; wait::Bool)
      @ Base ./process.jl:480
    [3] run(::Base.CmdRedirect)
      @ Base ./process.jl:477
    [4] top-level scope
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/threads.jl:78
    [5] include
      @ ./Base.jl:457 [inlined]
    [6] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:29 [inlined]
    [7] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/usr/share/julia/stdlib/v1.9/Test/src/Test.jl:1498 [inlined]
    [8] macro expansion
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:23 [inlined]
    [9] macro expansion
      @ ./timing.jl:511 [inlined]
   [10] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/testdefs.jl:21
   [11] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, UInt128, Tuple{Symbol}, NamedTuple{(:seed,), Tuple{UInt128}}})
      @ Base ./essentials.jl:818
   [12] (::var"#37#47")()
      @ Main ~/work/mmtk-julia/mmtk-julia/vm/julia/test/runtests.jl:321
   [13] cd(f::var"#37#47", dir::String)
      @ Base.Filesystem ./file.jl:112
   [14] top-level scope
      @ ~/work/mmtk-julia/mmtk-julia/vm/julia/test/runtests.jl:94
   [15] include(mod::Module, _path::String)
      @ Base ./Base.jl:457
   [16] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:307
   [17] _start()
      @ Base ./client.jl:522
  in expression starting at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/threads.jl:74
ERROR: LoadError: Test run finished with errors
in expression starting at /home/runner/work/mmtk-julia/mmtk-julia/vm/julia/test/runtests.jl:94
make[1]: *** [Makefile:25: threads] Error 1
make: *** [Makefile:611: test-threads] Error 2

The actual error message is unlock count must match lock count when we try to set an atomic int in SpinLock to 0, but found the old value was already 0.

As this is related with copying, it is likely that the SpinLock accessed was moved. In our debug build, we zero the memory for a moved object. So if we follow the old reference, we will find an object with 0.

I am not sure how this is possible, as the SpinLock is the donenotify field of Task, and it should be traced.

This is undeterministic.

qinsoon commented 1 week ago

donenotify is GenericCondition{SpinLock}. It is moved by the GC, but the code stills accesses the old reference, which ends up with a value of 0s.

  [2] unlock
   @ ./locks-mt.jl:66 [inlined]
  [3] unlock(c::Base.GenericCondition{SpinLock})
   @ Base ./condition.jl:74
  [4] _wait(t::Task)
   @ Base ./task.jl:311
  [5] wait
   @ ./task.jl:347 [inlined]

So if we pin donenotify in jl_new_task, this issue disappears. I am not sure how the invalid reference is from though.