Skip to content

Task cannot be serialized error during precompilation disappeared in 1.9 #49513

@KristofferC

Description

@KristofferC

Doing the following in the Downloads.jl package (JuliaLang/Downloads.jl#224):

  • add Downloads.download("file://" * @__FILE__) to src/Downloads.jl
  • load the package (remember to change its uuid since it is a stdlib)

causes the following on 1.8:

julia> using Downloads
[ Info: Precompiling Downloads [f43b241f-c20a-4ad4-852c-f6b1247861c6]
fatal: error thrown and no exception handler available.
ErrorException("Task cannot be serialized")
ijl_error at /Users/kristoffercarlsson/.julia/juliaup/julia-1.8.5+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.8.dylib (unknown line)
...
jl_write_compiler_output at /Users/kristoffercarlsson/.julia/juliaup/julia-1.8.5+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ijl_atexit_hook at /Users/kristoffercarlsson/.julia/juliaup/julia-1.8.5+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_repl_entrypoint at /Users/kristoffercarlsson/.julia/juliaup/julia-1.8.5+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ERROR: Failed to precompile Downloads [f43b241f-c20a-4ad4-852c-f6b1247861c6] to /Users/kristoffercarlsson/.julia/compiled/v1.8/Downloads/jl_vSquOA.

causing the precompilation to fail.

On 1.9 on the other hand, a precompile file is emitted but it segfaults when Julia tries to load it:

julia> using Downloads

[42067] signal (11.2): Segmentation fault: 11
in expression starting at REPL[1]:1
get_item_for_reloc at /Users/kristoffercarlsson/.julia/juliaup/julia-1.9.0-rc2+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.9.dylib (unknown line)
jl_restore_system_image_from_stream_ at /Users/kristoffercarlsson/.julia/juliaup/julia-1.9.0-rc2+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.9.dylib (unknown line)
jl_restore_package_image_from_stream at /Users/kristoffercarlsson/.julia/juliaup/julia-1.9.0-rc2+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.9.dylib (unknown line)
ijl_restore_package_image_from_file at /Users/kristoffercarlsson/.julia/juliaup/julia-1.9.0-rc2+0.aarch64.apple.darwin14/lib/julia/libjulia-internal.1.9.dylib (unknown line)
_include_from_serialized at ./loading.jl:1011
_require_search_from_serialized at ./loading.jl:1469
_require at ./loading.jl:1750
_require_prelocked at ./loading.jl:1623
macro expansion at ./loading.jl:1611 [inlined]
macro expansion at ./lock.jl:267 [inlined]
require at ./loading.jl:1574

During the precompilation of Downloads there is also some debug output (on 1.9) that I don't know where it comes from:

julia> using Downloads
[ Info: Precompiling Downloads [f43b241f-c20a-4ad4-852c-f6b1247861c6]
Task
Task(next=nothing, queue=Base.IntrusiveLinkedList{Task}(head=<circular reference @-2>, tail=<circular reference @-2>), storage=nothing, donenotify=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=nothing, tail=nothing), lock=Base.Threads.SpinLock(owned=0)), result=nothing, logstate=nothing, code=Base.var"#702#703"{Downloads.Curl.var"#31#35"{Downloads.Curl.Multi}, Base.Timer}(cb=Downloads.Curl.var"#31#35"{Downloads.Curl.Multi}(multi=Downloads.Curl.Multi(lock=Base.ReentrantLock(locked_by=nothing, reentrancy_cnt=0x00000000, havelock=0x00, cond_wait=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=nothing, tail=nothing), lock=Base.Threads.SpinLock(owned=0)), _=(0, 0, 0)), handle=0x0000000107e0df00, timer=Base.Timer(handle=0x0000600001935480, cond=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=<circular reference @-5>, tail=<circular reference @-5>), lock=Base.Threads.SpinLock(owned=0)), isopen=true, set=false), easies=Array{Downloads.Curl.Easy, (0,)}[], grace=0x0000000000007530)), timer=Base.Timer(handle=0x0000600001935480, cond=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=<circular reference @-4>, tail=<circular reference @-4>), lock=Base.Threads.SpinLock(owned=0)), isopen=true, set=false)), rngState0=0x72e8fe5dbec1fcb8, rngState1=0x1ad4b9517c7908c8, rngState2=0x1f47f16f23eccf1b, rngState3=0x0c14860e7434ccd2, _state=0x00, sticky=true, _isexception=false, priority=0x0000)
Task
Task(next=nothing, queue=Base.IntrusiveLinkedList{Task}(head=<circular reference @-2>, tail=<circular reference @-2>), storage=nothing, donenotify=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=nothing, tail=nothing), lock=Base.Threads.SpinLock(owned=0)), result=nothing, logstate=nothing, code=Base.var"#702#703"{Downloads.Curl.var"#31#35"{Downloads.Curl.Multi}, Base.Timer}(cb=Downloads.Curl.var"#31#35"{Downloads.Curl.Multi}(multi=Downloads.Curl.Multi(lock=Base.ReentrantLock(locked_by=nothing, reentrancy_cnt=0x00000000, havelock=0x00, cond_wait=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=nothing, tail=nothing), lock=Base.Threads.SpinLock(owned=0)), _=(0, 0, 0)), handle=0x0000000107e0df00, timer=Base.Timer(handle=0x0000600001935480, cond=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=<circular reference @-5>, tail=<circular reference @-5>), lock=Base.Threads.SpinLock(owned=0)), isopen=true, set=false), easies=Array{Downloads.Curl.Easy, (0,)}[], grace=0x0000000000007530)), timer=Base.Timer(handle=0x0000600001935480, cond=Base.GenericCondition{Base.Threads.SpinLock}(waitq=Base.IntrusiveLinkedList{Task}(head=<circular reference @-4>, tail=<circular reference @-4>), lock=Base.Threads.SpinLock(owned=0)), isopen=true, set=false)), rngState0=0x72e8fe5dbec1fcb8, rngState1=0x1ad4b9517c7908c8, rngState2=0x1f47f16f23eccf1b, rngState3=0x0c14860e7434ccd2, _state=0x00, sticky=true, _isexception=false, priority=0x0000)

Metadata

Metadata

Assignees

No one assigned

    Labels

    packagesPackage management and loadingregressionRegression 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