Skip to content

segfault while calling ThreadsX.collect? #175

@kalmarek

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

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