Skip to content

segfault while calling ThreadsX.collect? #175

Description

@kalmarek

this is using v0.5.2 (current master) of Groups.jl

julia> using Groups
[...]

julia> let R = 9, F2 = Groups.FreeGroup([:a, :b, :c])
        S2 = [gens(F2); inv.(gens(F2))]
        @time l3 = last(last(Groups.wlmetric_ball(S2, radius=R)))
        @info l3
    end
  9.769087 seconds (96.83 M allocations: 8.530 GiB, 44.63% gc time)
[ Info: 2929687

this works fine for R in 1:9, but segfaults for R=10 (the resulting array is of length 14648437), confirmed using serial code/different method.

This is the stack trace:

signal (15): Terminated
in expression starting at REPL[12]:1
gc_mark_stack_push at /buildworker/worker/package_linux64/build/src/gc.c:1687 [inlined]
gc_mark_loop at /buildworker/worker/package_linux64/build/src/gc.c:2588
_jl_gc_collect at /buildworker/worker/package_linux64/build/src/gc.c:3034
jl_gc_collect at /buildworker/worker/package_linux64/build/src/gc.c:3241
maybe_collect at /buildworker/worker/package_linux64/build/src/gc.c:880 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
jl_gc_alloc_ at /buildworker/worker/package_linux64/build/src/julia_internal.h:285 [inlined]
jl_gc_alloc at /buildworker/worker/package_linux64/build/src/gc.c:3283
_new_array_ at /buildworker/worker/package_linux64/build/src/array.c:122 [inlined]
_new_array at /buildworker/worker/package_linux64/build/src/array.c:188 [inlined]
jl_alloc_array_1d at /buildworker/worker/package_linux64/build/src/array.c:459
Array at ./boot.jl:448 [inlined]
IdDict at ./iddict.jl:15 [inlined]
IdDict at ./iddict.jl:33 [inlined]
deepcopy at ./deepcopy.jl:26 [inlined]
* at /home/kalmar/.julia/dev/Groups/src/arithmetic.jl:60 [inlined]
#65 at ./none:0 [inlined]
next at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/library.jl:54 [inlined]
next at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/core.jl:757
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/core.jl:181 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:199 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/simd.jl:41 [inlined]
_foldl_linear_bulk at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:198 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:192 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/basics.jl:111 [inlined]
_foldl_array at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:188 [inlined]
__foldl__ at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:182 [inlined]
foldl_nocomplete at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:356 [inlined]
next at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/library.jl:153 [inlined]
next at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/library.jl:54 [inlined]
next at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/core.jl:757
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/core.jl:181 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:199 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/simd.jl:41 [inlined]
_foldl_linear_bulk at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:198 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:192 [inlined]
macro expansion at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/basics.jl:113 [inlined]
_foldl_array at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:188 [inlined]
__foldl__ at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:182
unknown function (ip: 0x7f3854031e1c)
foldl_nocomplete at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/processes.jl:356 [inlined]
_reduce_basecase at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/threading_utils.jl:56
_reduce at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/reduce.jl:170
_reduce at /home/kalmar/.julia/packages/Transducers/5ZDG2/src/reduce.jl:179
#162 at ./threadingconstructs.jl:169
unknown function (ip: 0x7f3854031e5c)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1703 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:839
unknown function (ip: (nil))
unknown function (ip: (nil))
_mm_pause at /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:1267 [inlined]
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:163
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:162
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:162
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
_mm_pause at /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:1267 [inlined]
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:163
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:162
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
_mm_pause at /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:1267 [inlined]
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:163
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
_mm_pause at /usr/local/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:1267 [inlined]
jl_safepoint_wait_gc at /buildworker/worker/package_linux64/build/src/safepoint.c:163
jl_set_gc_and_wait at /buildworker/worker/package_linux64/build/src/julia_internal.h:704 [inlined]
segv_handler at /buildworker/worker/package_linux64/build/src/signals-unix.c:250
_IO_funlockfile at /usr/lib/libpthread.so.0 (unknown line)
maybe_collect at /buildworker/worker/package_linux64/build/src/julia_threads.h:313 [inlined]
jl_gc_pool_alloc at /buildworker/worker/package_linux64/build/src/gc.c:1204
unknown function (ip: (nil))
Allocations: 351478388 (Pool: 351456243; Big: 22145); GC: 41
[1]    2418694 segmentation fault (core dumped)  julia --project

EDIT:

julia> versioninfo(verbose=true)
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      "Arch Linux"
  uname: Linux 5.11.16-arch1-1 #1 SMP PREEMPT Wed, 21 Apr 2021 17:22:13 +0000 x86_64 unknown
  CPU: AMD Ryzen 7 PRO 4750U with Radeon Graphics: 
                 speed         user         nice          sys         idle          irq
       #1-16  1400 MHz    2521339 s       7251 s    1185541 s    6893503 s          0 s
       
  Memory: 29.177936553955078 GB (13763.7734375 MB free)
  Uptime: 495430.0 sec
  Load Avg:  1.78  1.84  1.96
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, znver2)
Environment:
  JULIA_NUM_THREADS = 8

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions