Closed fingolfin closed 2 years ago
OK I can also reproduce it on x86_64 Linux:
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.0-beta1 (2022-02-23)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia> versioninfo()
Julia Version 1.8.0-beta1
Commit 7b711ce699 (2022-02-23 15:09 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 8 × Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, sandybridge)
Threads: 1 on 8 virtual cores
(1.8) pkg> status
Status `~/Projekte/OSCAR/Oscar.jl/p/1.8/Project.toml`
[f1435218] Oscar v0.8.2-DEV `../..`
[295af30f] Revise v3.3.2
julia> using Revise, Oscar
----- ----- ----- - -----
| | | | | | | | | |
| | | | | | | |
| | ----- | | | |-----
| | | | |-----| | |
| | | | | | | | | |
----- ----- ----- - - - -
...combining (and extending) ANTIC, GAP, Polymake and Singular
Version 0.8.2-DEV ...
... which comes with absolutely no warranty whatsoever
Type: '?Oscar' for more information
(c) 2019-2022 by The Oscar Development Team
# ... insert an empty line ...
julia> 1+1 # trigger Revise
signal (11): Segmentation fault
in expression starting at none:1
mtcache_hash_lookup at /home/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:292 [inlined]
mtcache_hash_lookup at /home/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:288 [inlined]
jl_typemap_level_assoc_exact at /home/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:1025
jl_typemap_assoc_exact at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia_internal.h:1320 [inlined]
jl_typemap_level_assoc_exact at /home/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:1027
jl_typemap_assoc_exact at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia_internal.h:1320 [inlined]
jl_lookup_generic_ at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2462 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2518
jl_apply at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia.h:1825 [inlined]
do_call at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:126
eval_value at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:215
eval_stmt_value at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:166 [inlined]
eval_body at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:612
jl_interpret_toplevel_thunk at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:750
jl_toplevel_eval_flex at /home/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:906
ijl_toplevel_eval_in at /home/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:965
eval at ./boot.jl:368 [inlined]
do_assignment! at /home/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:349
step_expr! at /home/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:465
step_expr! at /home/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:589
finish! at /home/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/commands.jl:14
step_expr! at /home/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:508
step_through_methoddef at /home/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:84
signature at /home/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:45
unknown function (ip: 0x7f605b41c914)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
#methoddef!#7 at /home/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:493
methoddef!##kw at /home/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:445 [inlined]
#methods_by_execution!#24 at /home/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:272
unknown function (ip: 0x7f605b42e00e)
unknown function (ip: 0x7f605b3cdab9)
unknown function (ip: 0x7f605b3cd746)
methods_by_execution!##kw at /home/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:239 [inlined]
#methods_by_execution!#20 at /home/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:217
methods_by_execution!##kw at /home/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:175 [inlined]
#eval_with_signatures#90 at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:464 [inlined]
eval_with_signatures##kw at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:462 [inlined]
#instantiate_sigs!#91 at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:472
instantiate_sigs! at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:469 [inlined]
maybe_extract_sigs! at /home/mhorn/.julia/packages/Revise/wjNpr/src/pkgs.jl:141 [inlined]
handle_deletions at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:641
#revise#96 at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:747
revise at /home/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:735
unknown function (ip: 0x7f605b3e083f)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
jl_apply at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia.h:1825 [inlined]
jl_f__call_latest at /home/mhorn/Projekte/Julia/julia.release-1.8/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727
unknown function (ip: 0x7f605b354d12)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
jl_apply at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia.h:1825 [inlined]
do_call at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:126
eval_value at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:215
eval_stmt_value at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:166 [inlined]
eval_body at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:612
jl_interpret_toplevel_thunk at /home/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:750
jl_toplevel_eval_flex at /home/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:906
jl_toplevel_eval_flex at /home/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:850
ijl_toplevel_eval_in at /home/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:965
eval at ./boot.jl:368 [inlined]
eval_user_input at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151
repl_backend_loop at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247
start_repl_backend at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232
#run_repl#47 at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369
run_repl at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:356
jfptr_run_repl_63802 at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
#960 at ./client.jl:419
jfptr_YY.960_56587 at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
jl_apply at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia.h:1825 [inlined]
jl_f__call_latest at /home/mhorn/Projekte/Julia/julia.release-1.8/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727 [inlined]
run_main_repl at ./client.jl:404
exec_options at ./client.jl:318
_start at ./client.jl:522
jfptr__start_42598 at /home/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2340 [inlined]
ijl_apply_generic at /home/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2522
jl_apply at /home/mhorn/Projekte/Julia/julia.release-1.8/src/julia.h:1825 [inlined]
true_main at /home/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:562
jl_repl_entrypoint at /home/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:706
main at julia-release-1.8 (unknown line)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at julia-release-1.8 (unknown line)
Allocations: 47393370 (Pool: 47341086; Big: 52284); GC: 28
Segmentation fault
I could try to reduce the example (i.e. hack down Oscar.jl to a minimal version that still repros the issue), but that'll be quite some work, so I am not sure when I'd find the time. In the meantime, perhaps someone has an idea already with this (at least now anyone has a chance to repro it, and e.g. attach a debugger)
OK I can also reproduce it on x86_64 Linux:
Can you get an rr trace? Just start Julia with julia --bug-report=rr
.
@DilumAluthge OK. Hmm, seems this does not play nice with the --project=...
option. Anyway, it seems to have worked, pretty cool tech :-). Result is at https://s3.amazonaws.com/julialang-dumps/reports/2022-03-03T02-14-51-fingolfin.tar.zst
Hmm, seems this does not play nice with the
--project=...
option.
I'm new to portable rr
archives (and pretty new to rr
itself), but I got
(rr) c
Continuing.
warning: Could not load shared library symbols for 2 libraries, e.g. /home/mhorn/.julia/artifacts/fed663d473a94b4d75db54e1a8e1cc8b42875680/bin/../lib/rr/librrpreload.so.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
[FATAL /home/tim/src/rr/rr/src/ReplaySession.cc:508:cont_syscall_boundary() errno: EIO]
(task 2618357 (rec:276871) at time 269)
-> Assertion `false' failed to hold. Replay got unrecorded signal {signo:SIGSEGV,errno:SUCCESS,code:SEGV_MAPERR,addr:0}
Tail of trace dump:
{
Maybe a path error? That archive has a file named mmap_pack_17_librrpreload.so
, not sure if that's what it's looking for.
This is probably a Julia bug rather than Revise bug so it might be best to report there. FYI I can't replicate the crash locally.
CC @Keno who might have some insight
I am right now trying to bisect Julia for this, too, after all it worked a few works ago (but it's sloooooow to rebuild Julia each time... sigh)
Turning off the precompile stuff (JULIA_PRECOMPILE=0
) in Make.user
makes it faster.
I periodically learn and then forget that trick, thanks for the reminder.
bisected it to https://github.com/JuliaLang/julia/commit/7b1e4543d2ac0e0126150cae0c686300d93d1424 from https://github.com/JuliaLang/julia/pull/43671 by @simeonschaub
Is this only on 1.8, not 1.9? Trying this on the latest Julia master, I only get the following errors:
julia> using Revise, Oscar
[ Info: Precompiling Oscar [f1435218-dba5-11e9-1e4d-f1a5fab5fc13]
[Detaching after vfork from child process 1268362]
ERROR: LoadError: InitError: could not load library "/home/simeon/.julia/artifacts/c839838c859a6318d38122f94bfadd353cddf129/lib/libgap.so"
libjulia.so.1: cannot open shared object file: No such file or directory
Stacktrace:
[1] dlopen(s::String, flags::UInt32; throw_error::Bool)
@ Base.Libc.Libdl ./libdl.jl:117
[2] dlopen(s::String, flags::UInt32)
@ Base.Libc.Libdl ./libdl.jl:117
[3] macro expansion
@ ~/.julia/packages/JLLWrappers/QpMQW/src/products/library_generators.jl:54 [inlined]
[4] __init__()
@ GAP_jll ~/.julia/packages/GAP_jll/qG7vS/src/wrappers/x86_64-linux-gnu-cxx11-julia_version+1.9.0.jl:12
[5] _include_from_serialized(path::String, depmods::Vector{Any})
@ Base ./loading.jl:811
[6] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, depth::Int64)
@ Base ./loading.jl:919
[7] _require_search_from_serialized
@ ./loading.jl:892 [inlined]
[8] _require(pkg::Base.PkgId)
@ Base ./loading.jl:1194
[9] _require_prelocked(uuidkey::Base.PkgId)
@ Base ./loading.jl:1087
[10] macro expansion
@ ./loading.jl:1067 [inlined]
[11] macro expansion
@ ./lock.jl:223 [inlined]
[12] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1031
[13] include
@ ./Base.jl:426 [inlined]
[14] 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, UInt64}}, source::String)
@ Base ./loading.jl:1418
[15] top-level scope
@ stdin:1
during initialization of module GAP_jll
in expression starting at /home/simeon/.julia/packages/GAP/lK1LP/src/GAP.jl:1
in expression starting at stdin:1
ERROR: LoadError: Failed to precompile GAP [c863536a-3901-11e9-33e7-d5cd0df7b904] to /home/simeon/.julia/compiled/v1.9/GAP/jl_j02rl3.
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
@ Base ./loading.jl:1569
[3] compilecache
@ ./loading.jl:1513 [inlined]
[4] _require(pkg::Base.PkgId)
@ Base ./loading.jl:1217
[5] _require_prelocked(uuidkey::Base.PkgId)
@ Base ./loading.jl:1087
[6] macro expansion
@ ./loading.jl:1067 [inlined]
[7] macro expansion
@ ./lock.jl:223 [inlined]
[8] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1031
[9] include(mod::Module, _path::String)
@ Base ./Base.jl:426
[10] include(x::String)
@ Oscar ~/.julia/packages/Oscar/HBikN/src/Oscar.jl:20
[11] top-level scope
@ ~/.julia/packages/Oscar/HBikN/src/Oscar.jl:22
[12] include
@ ./Base.jl:426 [inlined]
[13] 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, UInt64}}, source::Nothing)
@ Base ./loading.jl:1418
[14] top-level scope
@ stdin:1
in expression starting at /home/simeon/.julia/packages/Oscar/HBikN/src/imports.jl:10
in expression starting at /home/simeon/.julia/packages/Oscar/HBikN/src/Oscar.jl:1
in expression starting at stdin:1
ERROR: Failed to precompile Oscar [f1435218-dba5-11e9-1e4d-f1a5fab5fc13] to /home/simeon/.julia/compiled/v1.9/Oscar/jl_dMGgZ7.
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
@ Base ./loading.jl:1569
[3] compilecache
@ ./loading.jl:1513 [inlined]
[4] _require(pkg::Base.PkgId)
@ Base ./loading.jl:1217
[5] _require_prelocked(uuidkey::Base.PkgId)
@ Base ./loading.jl:1087
[6] macro expansion
@ ./loading.jl:1067 [inlined]
[7] macro expansion
@ ./lock.jl:223 [inlined]
[8] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1031
julia> 1+1
2
I still get this on the backports-release-1.8
and with the proper Oscar#master. The rr trace you posted unfortunately isn't super useful here, since it's not a debug build, so it's missing the debug symbols.
@keno Is there a way to take an rr trace that was generated without debug symbols, and load the debug symbols in separately?
The issue definitely occurs in master, too. Try to ]dev Oscar
?
I can try to make another rr snapshot with debug symbols active tonight.
I think the libgap
error comes from running a Julia debug build while loading a JLL that was assembled with a non-debug build (CC @giordano).
I've now used the following script on an Ubuntu machine to temporarily hack the JLL libraries for use with a debug build of Julia:
#!/bin/sh
#
# using GAP_jll, GAP_pkg_juliainterface_jll, libcxxwrap_julia_jll, libpolymake_julia_jll, libsingular_julia_jll
# for m in [GAP_jll, GAP_pkg_juliainterface_jll, libcxxwrap_julia_jll, libpolymake_julia_jll, libsingular_julia_jll] println(m.find_artifact_dir()) end
#
for f in \
c839838c859a6318d38122f94bfadd353cddf129/lib/libgap.so \
9a3ef36e44865786948fe5b9f4cf0fbc7d737718/lib/gap/JuliaInterface.so \
4266ab44a39180f4d3be858e3fe507874d13fca1/lib/libcxxwrap_julia.so \
18e245078af62a7a8a839d00850ccd849c7af16b/lib/libpolymake_julia.so \
a625ffb5bfe38061a69a6fdf210f9988564b09b7/lib/libsingular_julia.so \
; do
chmod a+w $HOME/.julia/artifacts/$f
patchelf --replace-needed libjulia.so.1 libjulia-debug.so.1 $HOME/.julia/artifacts/$f
#patchelf --replace-needed libjulia-debug.so.1 libjulia.so.1 $HOME/.julia/artifacts/$f
done
I also noticed that perhaps not every "edit a file of Oscar.jl" triggers the crash, so here is what I am now doing specifically to reliably trigger the crash:
touch(abspath(pathof(Oscar),"..","Groups","GAPGroups.jl"));
I'll now try to get that rr trace
That's great work, thanks! I think this should help a lot. I tried to rename the soname of libjulia-debug.so
instead but then ran into different linking errors
It's still rather obscure but I have one potential suspicion. This seems to have something to do with symbol lookup, so I'm wondering whether this might be an issue with some jll having been linked to a libjulia.so
that's simply too old.
Do you know what exact version of Julia the jlls are linked against? https://github.com/JuliaLang/julia/commit/7b1e4543d2ac0e0126150cae0c686300d93d1424 touched a couple of parts in libjulia, so I could imagine that those caused the artifacts linking to it to be out of sync.
Do you know what exact version of Julia the jlls are linked against?
See https://github.com/JuliaPackaging/Yggdrasil/blob/db23b4c8d4bec230c46532dc1f67542f9930ff70/L/libjulia/common.jl#L47. Commit https://github.com/JuliaLang/julia/commit/7a1c20e6dea50291b364452996d3d4d71a6133dc is after https://github.com/JuliaLang/julia/commit/7b1e4543d2ac0e0126150cae0c686300d93d1424
Could it potentially be an issue that libjulia_jll's dependents are built against an older version? I am not sure libjulia
is actually intercompatible between minor versions.
https://github.com/JuliaPackaging/Yggdrasil/pull/4520 was a week after https://github.com/JuliaPackaging/Yggdrasil/pull/4461. However it may still be a good idea to rebuild libjulia on 1.8.0-beta-1, to have a more stable reference
That's not the only one building against libjulia
here though, right?
> julia-latest --project=oscar_segfault -e 'import Pkg; Pkg.status(mode=Pkg.PKGMODE_MANIFEST)' | rg _jll
[e21ec000] Antic_jll v0.200.501+0
[d9960996] Arb_jll v200.2200.0+0
[fcfa6d1b] Calcium_jll v0.400.102+0
[e134572f] FLINT_jll v200.800.401+1
⌅ [5cd7a574] GAP_jll v400.1191.1+2
⌅ [de1ad85e] GAP_lib_jll v400.1191.0+0
⌅ [ba154793] GAP_pkg_juliainterface_jll v0.700.300+1
[e8aa6df9] GLPK_jll v5.0.1+0
[dd4b983a] LZO_jll v2.10.1+0
[90100e71] MongoC_jll v1.19.1+0
[68e3532b] Ncurses_jll v6.2.0+0
[76642167] Ninja_jll v1.10.3+0
→⌃ [656ef2d0] OpenBLAS32_jll v0.3.17+0
[458c3c95] OpenSSL_jll v1.1.13+0
[80dd9cbb] PPL_jll v1.2.1+0
[83958c19] Perl_jll v5.34.0+1
[05236dd9] Readline_jll v8.1.1+1
[43d676ae] Singular_jll v403.0.100+0
[36f60fef] TOPCOM_jll v0.17.8+0
[3161d3a3] Zstd_jll v1.5.2+0
[508c9074] bliss_jll v0.77.0+1
[28df3c45] boost_jll v1.76.0+0
[f07e07eb] cddlib_jll v0.94.13+0
[5558cf25] cohomCalg_jll v0.32.0+0
[1493ae25] lib4ti2_jll v1.6.10+0
[3eaa8342] libcxxwrap_julia_jll v0.9.0+1
[4d8266f6] libpolymake_julia_jll v0.8.0+1
[ae4fbd8f] libsingular_julia_jll v0.21.0+1
[3873f7d0] lrslib_jll v0.3.3+0
⌃ [6d01cc9a] msolve_jll v0.1.7+0
[55c6dc9b] nauty_jll v2.6.13+0
[6690c6e9] normaliz_jll v300.900.100+0
[7c209550] polymake_jll v400.600.0+0
[fe1e1685] snappy_jll v1.1.9+0
[e66e0078] CompilerSupportLibraries_jll v0.5.0+0
[781609d7] GMP_jll v6.2.1+1
[deac9b47] LibCURL_jll v7.81.0+0
[29816b5a] LibSSH2_jll v1.10.2+0
[3a97d323] MPFR_jll v4.1.1+1
[c8ffd9c3] MbedTLS_jll v2.28.0+0
[14a3606d] MozillaCACerts_jll v2022.2.1
[4536629a] OpenBLAS_jll v0.3.20+0
[83775a58] Zlib_jll v1.2.12+1
[8e850b90] libblastrampoline_jll v5.0.1+0
[8e850ede] nghttp2_jll v1.41.0+1
[3f19e933] p7zip_jll v16.2.1+1
Specifically libcxxwrap_julia_jll
, libpolymake_julia_jll
and libsingular_julia_jll
seem to as well
They were all rebuilt for 1.9, after it branched, which was after your PR. In fact, they had to be rebuilt, as those JLLs carry different binaries for each Julia minor version, which indeed tend to be binary incompatible.
That said, my bisecting of course could have been affected leading to me flagging the wrong commit. But that seems unlikely due to the nature of the crash. But not impossible...
FWIW, I'm also seeing a segfault when using Revise with Julia 1.8 on an M1 mac. Some additional data points:
This is a private package using DataFrames 1.3.2 and XLX 0.7.9 (Revise 3.3.3 and JuliaInterpreter 0.9.9)
Julia 1.8.0-beta2.3
using Baz
bar("file_name.xlsx")
# executes without problem
# Revise the module Baz: comment out an unrelated function
bar("file_name.xlsx")
signal (11): Segmentation fault: 11
In Julia 1.9.0-DEV.211, instead of the segfault in response to editing the module, the following exception occurs:
bar("file_name.xlsx")
┌ Error: Failed to revise /Users/foo/Documents/Baz/analysis.jl
│ exception =
│ type Nothing has no field method
│ Stacktrace:
│ [1] top-level scope
│ @ none:0
│ Revise evaluation error at /Users/foo/Documents/Baz/none:0
│
└ @ Revise ~/.julia/packages/Revise/VskYC/src/packagedef.jl:708
┌ Warning: The running code does not match the saved version for the following files:
│
│ /Users/foo/Documents/Baz/src/Baz.jl
│
│ If the error was due to evaluation order, it can sometimes be resolved by calling `Revise.retry()`.
│ Use Revise.errors() to report errors again. Only the first error in each file is shown.
│ Your prompt color may be yellow until the errors are resolved.
└ @ Revise ~/.julia/packages/Revise/VskYC/src/packagedef.jl:818
And in Julia 1.8.0-DEV.1483, Revise works without any errors after editing the module.
versioninfo
for all three below.
Could we move this issue to Julia base?
You can't really transfer the issue using the github feature, that's only within the same organisation. You'll have to open a new one
Ah, that's unfortunate!
The segfault in ml_matches
means you need a newer JuliaInterpreter.
If it's known older versions of the package aren't compatible with julia v1.8, that should be reflected in the registry. I know some people don't like changing compat bounds retroactively, but the alternative is to get broken packages
Updated JuliaInterpreter to 0.9.11: the segfault disappeared in Julia 1.8.0-beta2.3 as did the exception being thrown by 1.9.0-DEV.211. Wish all issues were that easy to fix! Grateful for @Keno's diagnosis.
I have added JuliaInterpreter to my version's base environments rather than rely on dependency compats. That will remind me to update it at the same time as Revise.
If it's known older versions of the package aren't compatible with julia v1.8, that should be reflected in the registry. I know some people don't like changing compat bounds retroactively, but the alternative is to get broken packages
Submit a PR to the registry? 1.8 needs JuliaInterpreter 0.9.11 due to https://github.com/JuliaDebug/JuliaInterpreter.jl/commit/5a39c51d885099f52340b22f153c69d59ee35ec9 which got backported.
Just to say: the original issue I reported still is there.
@fingolfin Does it persist if you remove Revise and add it again? In the report above, your Revise is 3.3.2; latest version is 3.3.3 Also, my JuliaInterpreter did not update to 0.9.11 until I removed and re-added Revise (double checked my Manifest.toml to ensure that the Interpreter had updated).
@giordano After forking the registry, I made the start of a Compat.toml edit for JuliaInterpreter. Would you take a look and comment?
Yes it persists.
Submit a PR to the registry? 1.8 needs JuliaInterpreter 0.9.11 due to JuliaDebug/JuliaInterpreter.jl@5a39c51 which got backported.
Now I know, but I didn't until this message. I'm helping out @George9000 preparing the pull request, but I wish package maintainers did this more proactively instead of waiting for users to crash on the issues they know are there.
Note that anyone should be able to reproduce the crash with the instructions I gave. But here's a fresh backtrace, for your convenience:
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.0-beta2.3 (2022-03-17)
_/ |\__'_|_|_|\__'_| | release-1.8/e191c6e935 (fork: 79 commits, 29 days)
|__/ |
julia> versioninfo()
Julia Version 1.8.0-beta2.3
Commit e191c6e935 (2022-03-17 11:35 UTC)
Platform Info:
OS: macOS (arm64-apple-darwin21.4.0)
CPU: 10 × Apple M1 Max
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-13.0.1 (ORCJIT, apple-m1)
Threads: 1 on 8 virtual cores
Environment:
JULIA_EDITOR = /usr/local/bin/bbedit
(@v1.8) pkg> update
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
No Changes to `~/.julia/environments/v1.8/Project.toml`
No Changes to `~/.julia/environments/v1.8/Manifest.toml`
(@v1.8) pkg> status
Status `~/.julia/environments/v1.8/Project.toml`
[6e4b80f9] BenchmarkTools v1.3.1
[f1435218] Oscar v0.8.2-DEV `~/.julia/dev/Oscar`
[295af30f] Revise v3.3.3
(@v1.8) pkg> status -m
Status `~/.julia/environments/v1.8/Manifest.toml`
[c3fe647b] AbstractAlgebra v0.25.1
[6e4b80f9] BenchmarkTools v1.3.1
[f01c122e] BinaryWrappers v0.1.2
[da1fd8a2] CodeTracking v1.0.8
[1f15a43c] CxxWrap v0.12.0
[ffbed154] DocStringExtensions v0.8.6
[c863536a] GAP v0.7.7
[d5909c97] GroupsCore v0.4.0
[3e1990a7] Hecke v0.13.3
[692b3bcd] JLLWrappers v1.4.1
[682c06a0] JSON v0.21.3
[aa1ae85d] JuliaInterpreter v0.9.11
[6f1432cf] LoweredCodeUtils v2.2.1
[1914dd2f] MacroTools v0.5.9
⌅ [4fe8b98c] Mongoc v0.6.2
[2edaba10] Nemo v0.30.0
[bac558e1] OrderedCollections v1.4.1
[f1435218] Oscar v0.8.2-DEV `~/.julia/dev/Oscar`
[69de0a69] Parsers v2.2.3
[d720cf60] Polymake v0.7.1
[21216c6a] Preferences v1.2.5
[fb686558] RandomExtensions v0.4.3
[ae029012] Requires v1.3.0
[295af30f] Revise v3.3.3
[6c6a2e73] Scratch v1.1.0
[bcd08a7b] Singular v0.9.3
[e21ec000] Antic_jll v0.200.501+0
[d9960996] Arb_jll v200.2200.0+0
[fcfa6d1b] Calcium_jll v0.400.102+0
[e134572f] FLINT_jll v200.800.401+1
⌅ [5cd7a574] GAP_jll v400.1191.1+2
⌅ [de1ad85e] GAP_lib_jll v400.1191.0+0
⌅ [ba154793] GAP_pkg_juliainterface_jll v0.700.300+1
[e8aa6df9] GLPK_jll v5.0.1+0
[dd4b983a] LZO_jll v2.10.1+0
[90100e71] MongoC_jll v1.19.1+0
[68e3532b] Ncurses_jll v6.2.0+0
[76642167] Ninja_jll v1.10.3+0
⌅ [656ef2d0] OpenBLAS32_jll v0.3.17+0
[458c3c95] OpenSSL_jll v1.1.14+0
[80dd9cbb] PPL_jll v1.2.1+0
[83958c19] Perl_jll v5.34.0+1
[05236dd9] Readline_jll v8.1.1+1
⌅ [43d676ae] Singular_jll v403.0.100+0
[36f60fef] TOPCOM_jll v0.17.8+0
[3161d3a3] Zstd_jll v1.5.2+0
[508c9074] bliss_jll v0.77.0+1
[28df3c45] boost_jll v1.76.0+0
[f07e07eb] cddlib_jll v0.94.13+0
[5558cf25] cohomCalg_jll v0.32.0+0
[1493ae25] lib4ti2_jll v1.6.10+0
[3eaa8342] libcxxwrap_julia_jll v0.9.0+1
[4d8266f6] libpolymake_julia_jll v0.8.0+1
[ae4fbd8f] libsingular_julia_jll v0.21.0+1
[3873f7d0] lrslib_jll v0.3.3+0
[6d01cc9a] msolve_jll v0.2.3+0
[55c6dc9b] nauty_jll v2.6.13+0
[6690c6e9] normaliz_jll v300.900.100+0
[7c209550] polymake_jll v400.600.0+0
[fe1e1685] snappy_jll v1.1.9+0
[0dad84c5] ArgTools v1.1.1
[56f22d72] Artifacts
[2a0f44e3] Base64
[ade2ca70] Dates
[8ba89e20] Distributed
[f43a241f] Downloads v1.6.0
[7b1f6079] FileWatching
[b77e0a4c] InteractiveUtils
[b27032c2] LibCURL v0.6.3
[76f85450] LibGit2
[8f399da3] Libdl
[37e2e46d] LinearAlgebra
[56ddb016] Logging
[d6f4376e] Markdown
[a63ad114] Mmap
[ca575930] NetworkOptions v1.2.0
[44cfe95a] Pkg v1.8.0
[de0858da] Printf
[9abbd945] Profile
[3fa0cd96] REPL
[9a3f8284] Random
[ea8e919c] SHA v0.7.0
[9e88b42a] Serialization
[6462fe0b] Sockets
[2f01184e] SparseArrays
[10745b16] Statistics
[fa267f1f] TOML v1.0.0
[a4e569a6] Tar v1.10.0
[8dfed614] Test
[cf7118a7] UUIDs
[4ec0a83e] Unicode
[e66e0078] CompilerSupportLibraries_jll v0.5.2+0
[781609d7] GMP_jll v6.2.1+1
[deac9b47] LibCURL_jll v7.81.0+0
[29816b5a] LibSSH2_jll v1.10.2+0
[3a97d323] MPFR_jll v4.1.1+1
[c8ffd9c3] MbedTLS_jll v2.28.0+0
[14a3606d] MozillaCACerts_jll v2022.2.1
[4536629a] OpenBLAS_jll v0.3.20+0
[83775a58] Zlib_jll v1.2.12+1
[8e850b90] libblastrampoline_jll v5.0.1+0
[8e850ede] nghttp2_jll v1.41.0+1
[3f19e933] p7zip_jll v16.2.1+1
Info Packages marked with ⌅ have new versions available but cannot be upgraded. To see why use `status --outdated`
julia> using Revise, Oscar
----- ----- ----- - -----
| | | | | | | | | |
| | | | | | | |
| | ----- | | | |-----
| | | | |-----| | |
| | | | | | | | | |
----- ----- ----- - - - -
...combining (and extending) ANTIC, GAP, Polymake and Singular
Version 0.8.2-DEV ...
... which comes with absolutely no warranty whatsoever
Type: '?Oscar' for more information
(c) 2019-2022 by The Oscar Development Team
julia> touch(abspath(pathof(Oscar),"..","Groups","GAPGroups.jl"));
julia> 1+1
signal (11): Segmentation fault: 11
in expression starting at none:1
jl_typemap_level_assoc_exact at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:1026
jl_typemap_assoc_exact at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia_internal.h:1324 [inlined]
jl_typemap_level_assoc_exact at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/typemap.c:1027
jl_typemap_assoc_exact at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia_internal.h:1324 [inlined]
jl_lookup_generic_ at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2480 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2536
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1829 [inlined]
do_call at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:126
eval_body at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:0
jl_interpret_toplevel_thunk at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:750
jl_toplevel_eval_flex at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:906
ijl_toplevel_eval at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:915 [inlined]
ijl_toplevel_eval_in at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:965
eval at ./boot.jl:368 [inlined]
do_assignment! at /Users/mhorn/.julia/packages/JuliaInterpreter/TeQ0I/src/interpret.jl:354
step_expr! at /Users/mhorn/.julia/packages/JuliaInterpreter/TeQ0I/src/interpret.jl:470
step_expr! at /Users/mhorn/.julia/packages/JuliaInterpreter/TeQ0I/src/interpret.jl:594
finish! at /Users/mhorn/.julia/packages/JuliaInterpreter/TeQ0I/src/commands.jl:14
step_expr! at /Users/mhorn/.julia/packages/JuliaInterpreter/TeQ0I/src/interpret.jl:513
step_through_methoddef at /Users/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:84
signature at /Users/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:45
unknown function (ip: 0x2e467538b)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
#methoddef!#7 at /Users/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:493
methoddef!##kw at /Users/mhorn/.julia/packages/LoweredCodeUtils/c8DBv/src/signatures.jl:445 [inlined]
#methods_by_execution!#24 at /Users/mhorn/.julia/packages/Revise/VskYC/src/lowered.jl:272
unknown function (ip: 0x2e46acee7)
unknown function (ip: 0x2c4f0662f)
unknown function (ip: 0x2c4f06603)
methods_by_execution!##kw at /Users/mhorn/.julia/packages/Revise/VskYC/src/lowered.jl:239 [inlined]
#methods_by_execution!#20 at /Users/mhorn/.julia/packages/Revise/VskYC/src/lowered.jl:217
methods_by_execution!##kw at /Users/mhorn/.julia/packages/Revise/VskYC/src/lowered.jl:175 [inlined]
#eval_with_signatures#90 at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:464 [inlined]
eval_with_signatures##kw at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:462 [inlined]
#instantiate_sigs!#91 at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:472
instantiate_sigs! at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:469 [inlined]
maybe_extract_sigs! at /Users/mhorn/.julia/packages/Revise/VskYC/src/pkgs.jl:141 [inlined]
handle_deletions at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:641
#revise#96 at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:747
revise at /Users/mhorn/.julia/packages/Revise/VskYC/src/packagedef.jl:735
unknown function (ip: 0x2c4f7401b)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1829 [inlined]
jl_f__call_latest at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727
unknown function (ip: 0x12cc00033)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1829 [inlined]
do_call at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:126
eval_body at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:0
jl_interpret_toplevel_thunk at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/interpreter.c:750
jl_toplevel_eval_flex at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:906
jl_toplevel_eval_flex at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:850
ijl_toplevel_eval at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:915 [inlined]
ijl_toplevel_eval_in at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/toplevel.c:965
eval at ./boot.jl:368 [inlined]
eval_user_input at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151
repl_backend_loop at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247
start_repl_backend at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232
#run_repl#47 at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369
run_repl at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:356
jfptr_run_repl_64278 at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
#961 at ./client.jl:419
jfptr_YY.961_46947 at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1829 [inlined]
jl_f__call_latest at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727 [inlined]
run_main_repl at ./client.jl:404
exec_options at ./client.jl:318
_start at ./client.jl:522
jfptr__start_51636 at /Users/mhorn/Projekte/Julia/julia.release-1.8/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2540
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1829 [inlined]
true_main at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:567
jl_repl_entrypoint at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:711
Allocations: 36422603 (Pool: 36371362; Big: 51241); GC: 22
Looking at the JuliaInterpreter code on the callstack, we are at some point executing function signature(@nospecialize(recurse), frame::Frame, @nospecialize(stmt), pc)
in src/signatures.jl:45
, specifically
if isanonymous_typedef(stmt)
lastpc = pc = step_through_methoddef(recurse, frame, stmt) # define an anonymous function
and this percolates down into step_expr!
(there are uncommented debug statements in there, which I've now enabled in the hopes that they'll help pinpoint where we crash). Anyway, the last Julia code we pass through before entering into the C kernel is do_assignment!
, and in there
elseif isa(lhs, Symbol)
Core.eval(moduleof(code), :($lhs = $(QuoteNode(rhs))))
The debugging statements I enabled are these (in src/interpret.jl
lines 455 & 456)
show_stackloc(frame)
@show node
Unfortunately it just prints a TON of info which I mostly can't make much sense of. But perhaps someone who knows JuliaInterpreter better either can figure out something from this, or can suggest some other things to try (or they can just try it themselves, after all, all that's necessary to do so is available to everyone, this is pure open source code :-) ).
...
Oscar, pc = 5
node = :(($(QuoteNode(getproperty)))(Random, :AbstractRNG))
Oscar
getproperty(x::Module, f::Symbol) in Base at Base.jl:31, pc = 1
node = nothing
Oscar
getproperty(x::Module, f::Symbol) in Base at Base.jl:31, pc = 2
node = :(($(QuoteNode(getfield)))(_J2, _J3))
Oscar
getproperty(x::Module, f::Symbol) in Base at Base.jl:31, pc = 3
node = :(return %J2)
Oscar, pc = 6
node = :(($(QuoteNode(Core.apply_type)))(GroupConjClass, %J2, %J1))
Oscar, pc = 7
node = :(($(QuoteNode(Core.svec)))(%J4, %J5, %J6))
Oscar, pc = 8
node = :(($(QuoteNode(Core.svec)))(%J1, %J2))
Oscar, pc = 9
node = :(($(QuoteNode(Core.svec)))(%J7, %J8, $(QuoteNode(:(#= /Users/mhorn/.julia/dev/Oscar/src/Groups/GAPGroups.jl:536 =#)))))
Oscar, pc = 2
node = :($(Expr(:method, :conjugacy_classes_subgroups)))
Oscar, pc = 3
node = :($(Expr(:thunk, CodeInfo(
@ none within `top-level scope`
1 ─ global var"#2133#2134"
│ const var"#2133#2134"
│ Core.TypeVar(:G, Core.Any)
│ %4 = Core._structtype(Oscar, Symbol("#2133#2134"), Core.svec(%3), Core.svec(:G), Core.svec(), false, 1)
│ var"#2133#2134" = %4
│ Core._setsuper!(var"#2133#2134", Core.Function)
│ Core._typebody!(var"#2133#2134", Core.svec(%3))
└── return nothing
))))
Oscar
Oscar, pc = 1
node = :(global var"#2133#2134")
Oscar
Oscar, pc = 2
node = :(const var"#2133#2134")
Oscar
Oscar, pc = 3
node = :(($(QuoteNode(TypeVar)))(:G, $(QuoteNode(Any))))
Oscar
Oscar
TypeVar(n::Symbol, ub) in Core at boot.jl:252, pc = 1
node = nothing
Oscar
Oscar
TypeVar(n::Symbol, ub) in Core at boot.jl:252, pc = 2
node = :(($(QuoteNode(Core.apply_type)))($(QuoteNode(Union))))
Oscar
Oscar
TypeVar(n::Symbol, ub) in Core at boot.jl:252, pc = 3
node = :(($(QuoteNode(Core._typevar)))(_J2, %J2, _J3))
Oscar
Oscar
TypeVar(n::Symbol, ub) in Core at boot.jl:252, pc = 4
node = :(return %J3)
Oscar
Oscar, pc = 4
node = :(($(QuoteNode(Core.svec)))(%J3))
Oscar
Oscar, pc = 5
node = :(($(QuoteNode(Core.svec)))(:G))
Oscar
Oscar, pc = 6
node = :(($(QuoteNode(Core.svec)))())
Oscar
Oscar, pc = 7
node = :(($(QuoteNode(Core._structtype)))(Oscar, Symbol("#2133#2134"), %J4, %J5, %J6, false, 1))
Oscar
Oscar, pc = 8
node = :(var"#2133#2134" = %J7)
signal (11): Segmentation fault: 11
...
I can't say why or how, but the problem does not occur for me anymore in latest Julia 1.8 and 1.9 nightly. I've tried prodding it quite a bit and it's working.
No idea what change is responsible, unfortunately.
I think I'm still seeing exactly this error on Julia 1.8.0-rc4 and nightly
@lassepe when you say "exactly" do you mean with the exact same packages and reproducer? Then I would have to check that again :-(
No no, just the same pattern but with my own package: After I revise, I hit the same segfault as you in typemap.c.
However, in my case it seems to be related to the fact that I have a the julialup julia binary shadowed with a bash function that loads the correct julia binary based on an environment variable. Somehow, that causes Revise to freak out. I guess this causes julia(launcher) to look for a file at the wrong relative directory (because which julia
now points to my bash function).
This looks similar to the error in #674 but since it does not occur during loading, but rather when revising, I am not 100% sure they are the same, so I am opening a separate issue for now.
The crash occurs when revising https://github.com/oscar-system/Oscar.jl. Some complicating factors
Here is a sample session:
I'll try and see if I can reproduce it on an x86_64 Linux.