Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Precompiling TestExt errors with test_roundtrip_seekstart not defined #223

Closed
Datseris opened this issue Jun 14, 2024 · 9 comments · Fixed by #238
Closed

Precompiling TestExt errors with test_roundtrip_seekstart not defined #223

Datseris opened this issue Jun 14, 2024 · 9 comments · Fixed by #238

Comments

@Datseris
Copy link

[ Info: Precompiling TestExt [29286dec-c893-52d1-88fe-e07e79eb4405]
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base .\Base.jl:31
 [2] top-level scope
   @ C:\Users\datse\.julia\packages\TranscodingStreams\F7ot4\ext\TestExt.jl:65
 [3] include
   @ Base .\Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base .\loading.jl:2216
 [5] top-level scope
   @ stdin:3
in expression starting at C:\Users\datse\.julia\packages\TranscodingStreams\F7ot4\ext\TestExt.jl:1
in expression starting at stdin:3

in Windows 10, for version

  [3bb67fe8] TranscodingStreams v0.10.9

This causes precompilation problems for many other package extensions , such as precompiling CairoMakie or DynamicalSystems (for reasons unknown to me).

@nhz2
Copy link
Member

nhz2 commented Jun 14, 2024

I can't reproduce this issue. What version of Julia and other packages are you using?

@Datseris
Copy link
Author

I have

pkg> st -m CairoMakie
  [13f3f980] CairoMakie v0.12.2

julia> VERSION
v"1.10.0"

although I am not sure which "other" packages would be relevant here. Most of the packages in my project that have extensions were complaining, so I think it is more of an extension problem than a package problem. If you can't reproduce, it may be a fleeting problem. If I can reproduce consistently, I'll attach a manifest file here.

@thchr
Copy link

thchr commented Jun 14, 2024

I'm seeing this as well today (local package, unfortunately).

Error log
julia> using BandGraphs
[ Info: Precompiling BandGraphs [5731fe25-75d8-4202-b898-007566f4347a]
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/tchr/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/home/tchr/.julia/compiled/v1.10/TestExt/jl_yjZzhg".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::String, sourcepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1487
│     [22] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
│        @ Base ./loading.jl:1574
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1938
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] include(mod::Module, _path::String)
│        @ Base ./Base.jl:495
│     [35] include(x::String)
│        @ MathOptInterface ~/.julia/packages/MathOptInterface/2CULs/src/MathOptInterface.jl:7
│     [36] top-level scope
│        @ ~/.julia/packages/MathOptInterface/2CULs/src/MathOptInterface.jl:338
│     [37] include
│        @ ./Base.jl:495 [inlined]
│     [38] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
│        @ Base ./loading.jl:2222
│     [39] top-level scope
│        @ stdin:3
│     [40] eval
│        @ ./boot.jl:385 [inlined]
│     [41] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:2076
│     [42] include_string
│        @ ./loading.jl:2086 [inlined]
│     [43] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
│     [44] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301
^C
ERROR: InterruptException:
Stacktrace:
  [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
    @ Base ./task.jl:931
  [2] wait()
    @ Base ./task.jl:995
  [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
    @ Base ./condition.jl:130
  [4] wait
    @ ./condition.jl:125 [inlined]
  [5] wait(x::Base.Process)
    @ Base ./process.jl:661
  [6] success(x::Base.Process)
    @ Base ./process.jl:523
  [7] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2376
  [8] compilecache
    @ ./loading.jl:2340 [inlined]
  [9] (::Base.var"#968#969"{Base.PkgId})()
    @ Base ./loading.jl:1974
 [10] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
 [11] #mkpidlock#6
    @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
 [12] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
 [13] #invokelatest#2
    @ ./essentials.jl:894 [inlined]
 [14] invokelatest
    @ ./essentials.jl:889 [inlined]
 [15] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base ./loading.jl:2983
 [16] maybe_cachefile_lock
    @ ./loading.jl:2980 [inlined]
 [17] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1970
 [18] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1812
 [19] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [20] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [21] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1803
 [22] macro expansion
    @ ./loading.jl:1790 [inlined]
 [23] macro expansion
    @ ./lock.jl:267 [inlined]
 [24] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1753
 [25] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [26] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [27] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1746

julia> ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/tchr/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/home/tchr/.julia/compiled/v1.10/TestExt/jl_K5XmL3".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, build_id::UInt128)
│        @ Base ./loading.jl:1451
│     [22] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
│        @ Base ./loading.jl:1524
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1990
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] include
│        @ ./Base.jl:495 [inlined]
│     [35] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
│        @ Base ./loading.jl:2222
│     [36] top-level scope
│        @ stdin:3
│     [37] eval
│        @ ./boot.jl:385 [inlined]
│     [38] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:2076
│     [39] include_string
│        @ ./loading.jl:2086 [inlined]
│     [40] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
│     [41] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/tchr/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/home/tchr/.julia/compiled/v1.10/TestExt/jl_f2URzl".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, build_id::UInt128)
│        @ Base ./loading.jl:1451
│     [22] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
│        @ Base ./loading.jl:1524
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1990
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] include
│        @ ./Base.jl:495 [inlined]
│     [35] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
│        @ Base ./loading.jl:2222
│     [36] top-level scope
│        @ stdin:3
│     [37] eval
│        @ ./boot.jl:385 [inlined]
│     [38] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:2076
│     [39] include_string
│        @ ./loading.jl:2086 [inlined]
│     [40] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
│     [41] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/tchr/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/home/tchr/.julia/compiled/v1.10/TestExt/jl_KtSqZp".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, build_id::UInt128)
│        @ Base ./loading.jl:1451
│     [22] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
│        @ Base ./loading.jl:1524
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1990
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] include(mod::Module, _path::String)
│        @ Base ./Base.jl:495
│     [35] include(x::String)
│        @ BandGraphs /mnt/c/Users/tchr/Dropbox (MIT)/Projects/photonic-topo-sym/julia/Crystalline/BandGraphs/src/BandGraphs.jl:1
│     [36] top-level scope
│        @ /mnt/c/Users/tchr/Dropbox (MIT)/Projects/photonic-topo-sym/julia/Crystalline/BandGraphs/src/BandGraphs.jl:112
│     [37] include
│        @ ./Base.jl:495 [inlined]
│     [38] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
│        @ Base ./loading.jl:2222
│     [39] top-level scope
│        @ stdin:3
│     [40] eval
│        @ ./boot.jl:385 [inlined]
│     [41] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:2076
│     [42] include_string
│        @ ./loading.jl:2086 [inlined]
│     [43] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
│     [44] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/tchr/.julia/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/home/tchr/.julia/compiled/v1.10/TestExt/jl_S9lNKP".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.3+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::String, sourcepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1487
│     [22] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
│        @ Base ./loading.jl:1574
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1938
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] include
│        @ ./Base.jl:495 [inlined]
│     [35] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
│        @ Base ./loading.jl:2222
│     [36] top-level scope
│        @ stdin:3
│     [37] eval
│        @ ./boot.jl:385 [inlined]
│     [38] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│        @ Base ./loading.jl:2076
│     [39] include_string
│        @ ./loading.jl:2086 [inlined]
│     [40] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:316
│     [41] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301

@thchr
Copy link

thchr commented Jun 14, 2024

More broadly: what is the design motivation for having the testing utilities included as part of an extension here?

If I understand correctly, this means that any downstream package that depends on TranscodingStreams and also happens to test anything also compiles the testing utilities for this package? That seems undesirable.

(Okay, I see there's earlier discussions of the motivation for this in #133 and #152)

@nhz2
Copy link
Member

nhz2 commented Jun 14, 2024

Yes, I think it would be better to have the testing utilities in a separate package instead of an extension. The main reason for using extensions is backward compatibility because these utilities used to be part of the main package in v0.9

@nhz2
Copy link
Member

nhz2 commented Jun 14, 2024

I still haven't figured out how to reproduce the error you are seeing. Does this only happen when you first try and update from TranscodingStreams@0.10.8 to TranscodingStreams@0.10.9, and then doesn't happen again after you restart julia?

@nhz2
Copy link
Member

nhz2 commented Jul 4, 2024

I figured out how to reproduce the error using stacked environments.

JULIA_DEPOT_PATH=/tmp/julia-depot julia -e '
    using Pkg
    pkg"add TranscodingStreams@0.10.8"; using TranscodingStreams
    pkg"activate @stacked"; pkg"add TranscodingStreams@0.10.9 Test Random"; using Test, Random
'
┌ Warning: The Pkg REPL mode is intended for interactive use only, and should not be used from scripts. It is recommended to use the functional API instead.
└ @ Pkg.REPLMode ~/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:382
    Updating registry at `/tmp/julia-depot/registries/General.toml`
   Resolving package versions...
  No Changes to `/tmp/julia-depot/environments/v1.10/Project.toml`
  No Changes to `/tmp/julia-depot/environments/v1.10/Manifest.toml`
  Activating project at `/tmp/julia-depot/environments/stacked`
   Resolving package versions...
  No Changes to `/tmp/julia-depot/environments/stacked/Project.toml`
  No Changes to `/tmp/julia-depot/environments/stacked/Manifest.toml`
ERROR: LoadError: UndefVarError: `test_roundtrip_seekstart` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ /tmp/julia-depot/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:65
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /tmp/julia-depot/packages/TranscodingStreams/F7ot4/ext/TestExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension TestExt of TranscodingStreams, use `Base.retry_load_extensions()` to retry.
│   exception =
│    1-element ExceptionStack:
│    Failed to precompile TestExt [29286dec-c893-52d1-88fe-e07e79eb4405] to "/tmp/julia-depot/compiled/v1.10/TestExt/jl_NlfmxW".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1819
│     [22] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [23] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [24] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [25] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [26] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [27] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [28] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [29] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [30] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [31] eval
│        @ ./boot.jl:385 [inlined]
│     [32] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:291
│     [33] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301

@nhz2
Copy link
Member

nhz2 commented Jul 4, 2024

@nhz2
Copy link
Member

nhz2 commented Jul 4, 2024

You can fix this error by updating all of the environments in the stack to make sure the packages are compatible, or by not using environment stacks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants