Skip to content

Precompilation can't handle serialization of Task's enqued in Channels #52435

@vchuravy

Description

@vchuravy

Splitting this out into a separate issue.

From @Liozou

On #52405 I have a different crash in a different context: ]generate a new package, for instance let's call it PrecompileCrash, and put the following in your src/PrecompileCrash.jl

module PrecompileCrash

const channel = Channel{Nothing}(0)
Base.Threads.@spawn take!($channel)

end # module PrecompileCrash

Then try to execute
julia -t1 --startup-file=no -e "using InteractiveUtils; versioninfo(); using PrecompileCrash"

I get:

Julia Version 1.11.0-DEV.1026
Commit 96c4164145 (2023-12-05 18:18 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 8 × Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
  WORD_SIZE: 64
  LLVM: libLLVM-15.0.7 (ORCJIT, skylake)
  Threads: 1 on 8 virtual cores
Environment:
  JULIA_NUM_THREADS = 4

[22573] signal 6 (-6): Aborted
in expression starting at none:1
pthread_kill at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
raise at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
get_item_for_reloc at /LionelSSDext4/liozou/julia/src/staticdata.c:1905 [inlined]
jl_read_reloclist at /LionelSSDext4/liozou/julia/src/staticdata.c:1981
jl_restore_system_image_from_stream_ at /LionelSSDext4/liozou/julia/src/staticdata.c:3159
jl_restore_package_image_from_stream at /LionelSSDext4/liozou/julia/src/staticdata.c:3580
jl_restore_incremental_from_buf at /LionelSSDext4/liozou/julia/src/staticdata.c:3627
ijl_restore_package_image_from_file at /LionelSSDext4/liozou/julia/src/staticdata.c:3715
_include_from_serialized at ./loading.jl:1073
_include_from_serialized at ./loading.jl:1048 [inlined]
_require_search_from_serialized at ./loading.jl:1626
_require at ./loading.jl:2039
__require_prelocked at ./loading.jl:1916
jfptr___require_prelocked_63238 at /LionelSSDext4/liozou/julia/usr/lib/julia/sys.so (unknown line)
jl_apply at /LionelSSDext4/liozou/julia/src/julia.h:2142 [inlined]
jl_f__call_in_world at /LionelSSDext4/liozou/julia/src/builtins.c:888
#invoke_in_world#3 at ./essentials.jl:989 [inlined]
invoke_in_world at ./essentials.jl:986 [inlined]
_require_prelocked at ./loading.jl:1907
macro expansion at ./loading.jl:1845 [inlined]
macro expansion at ./lock.jl:267 [inlined]
__require at ./loading.jl:1806
jfptr___require_63170 at /LionelSSDext4/liozou/julia/usr/lib/julia/sys.so (unknown line)
jl_apply at /LionelSSDext4/liozou/julia/src/julia.h:2142 [inlined]
jl_f__call_in_world at /LionelSSDext4/liozou/julia/src/builtins.c:888
#invoke_in_world#3 at ./essentials.jl:989 [inlined]
invoke_in_world at ./essentials.jl:986 [inlined]
require at ./loading.jl:1799
jfptr_require_63167 at /LionelSSDext4/liozou/julia/usr/lib/julia/sys.so (unknown line)
jl_apply at /LionelSSDext4/liozou/julia/src/julia.h:2142 [inlined]
call_require at /LionelSSDext4/liozou/julia/src/toplevel.c:484 [inlined]
eval_import_path at /LionelSSDext4/liozou/julia/src/toplevel.c:521
jl_toplevel_eval_flex at /LionelSSDext4/liozou/julia/src/toplevel.c:757
jl_toplevel_eval_flex at /LionelSSDext4/liozou/julia/src/toplevel.c:884
jl_toplevel_eval_flex at /LionelSSDext4/liozou/julia/src/toplevel.c:884
ijl_toplevel_eval_in at /LionelSSDext4/liozou/julia/src/toplevel.c:992
eval at ./boot.jl:428 [inlined]
exec_options at ./client.jl:291
_start at ./client.jl:525
jfptr__start_64763 at /LionelSSDext4/liozou/julia/usr/lib/julia/sys.so (unknown line)
jl_apply at /LionelSSDext4/liozou/julia/src/julia.h:2142 [inlined]
true_main at /LionelSSDext4/liozou/julia/src/jlapi.c:586
jl_repl_entrypoint at /LionelSSDext4/liozou/julia/src/jlapi.c:738
main at /LionelSSDext4/liozou/julia/cli/loader_exe.c:58
unknown function (ip: 0x7f3e53382d8f)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/liozou/julia/usr/bin/julia (unknown line)
Allocations: 757403 (Pool: 757387; Big: 16); GC: 1
Aborted (core dumped)

Originally posted by @Liozou in #52363 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    compiler:precompilationPrecompilation of modulesregressionRegression in behavior compared to a previous version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions