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

Segfault when revising package #675

Closed
fingolfin opened this issue Mar 3, 2022 · 45 comments
Closed

Segfault when revising package #675

fingolfin opened this issue Mar 3, 2022 · 45 comments

Comments

@fingolfin
Copy link

fingolfin commented Mar 3, 2022

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

  • this is on an M1 mac, which is Tier 3, so could be specific to that
  • there were trouble with Oscar before, because of GAP.jl, which is the unique Julia package to use "foreign types", and caused trouble before in a different context

Here is a sample session:

               _
   _       _ _(_)_     |  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: macOS (arm64-apple-darwin21.3.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

(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

julia>

# now edit Oscar -- say, insert an empty line somewhere

julia> 1+1  # just do something to trigger Revise

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:1320 [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:1320 [inlined]
jl_lookup_generic_ at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2462 [inlined]
ijl_apply_generic at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/gf.c:2518
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1825 [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/wCcib/src/interpret.jl:349
unknown function (ip: 0x2ee0c2557)
step_expr! at /Users/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:465
unknown function (ip: 0x2ee0c261b)
unknown function (ip: 0x2ee0c277b)
step_expr! at /Users/mhorn/.julia/packages/JuliaInterpreter/wCcib/src/interpret.jl:508
#methods_by_execution!#24 at /Users/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:434
unknown function (ip: 0x2ee17643f)
unknown function (ip: 0x2cc0ca927)
unknown function (ip: 0x2cc0ca623)
methods_by_execution!##kw at /Users/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:239 [inlined]
#methods_by_execution!#20 at /Users/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:217
methods_by_execution!##kw at /Users/mhorn/.julia/packages/Revise/wjNpr/src/lowered.jl:175 [inlined]
#eval_with_signatures#90 at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:464 [inlined]
eval_with_signatures##kw at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:462 [inlined]
#instantiate_sigs!#91 at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:472
instantiate_sigs! at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:469 [inlined]
maybe_extract_sigs! at /Users/mhorn/.julia/packages/Revise/wjNpr/src/pkgs.jl:141 [inlined]
handle_deletions at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:641
#revise#96 at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:747
revise at /Users/mhorn/.julia/packages/Revise/wjNpr/src/packagedef.jl:735
unknown function (ip: 0x2cc1b801b)
_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:2522
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1825 [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: 0x106d58033)
_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:2522
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1825 [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_63033 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:2522
#960 at ./client.jl:419
jfptr_YY.960_44278 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:2522
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1825 [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_48446 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:2522
jl_apply at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/./julia.h:1825 [inlined]
true_main at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:562
jl_repl_entrypoint at /Users/mhorn/Projekte/Julia/julia.release-1.8/src/jlapi.c:706
Allocations: 48254739 (Pool: 48202239; Big: 52500); GC: 21
$

I'll try and see if I can reproduce it on an x86_64 Linux.

@fingolfin
Copy link
Author

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

@fingolfin
Copy link
Author

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)

@DilumAluthge
Copy link

OK I can also reproduce it on x86_64 Linux:

Can you get an rr trace? Just start Julia with julia --bug-report=rr.

@fingolfin
Copy link
Author

@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

@DilumAluthge
Copy link

Hmm, seems this does not play nice with the --project=... option.

JuliaLang/BugReporting.jl#35

@timholy
Copy link
Owner

timholy commented Mar 4, 2022

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.

@timholy
Copy link
Owner

timholy commented Mar 4, 2022

CC @Keno who might have some insight

@fingolfin
Copy link
Author

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)

@KristofferC
Copy link
Collaborator

Turning off the precompile stuff (JULIA_PRECOMPILE=0) in Make.user makes it faster.

@timholy
Copy link
Owner

timholy commented Mar 4, 2022

I periodically learn and then forget that trick, thanks for the reminder.

@fingolfin
Copy link
Author

bisected it to JuliaLang/julia@7b1e454 from JuliaLang/julia#43671 by @simeonschaub

@simeonschaub
Copy link
Contributor

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

@simeonschaub
Copy link
Contributor

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.

@DilumAluthge
Copy link

@Keno Is there a way to take an rr trace that was generated without debug symbols, and load the debug symbols in separately?

@fingolfin
Copy link
Author

The issue definitely occurs in master, too. Try to ]dev Oscar?

I can try to make another rr snapshot with debug symbols active tonight.

@timholy
Copy link
Owner

timholy commented Mar 5, 2022

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).

@fingolfin
Copy link
Author

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

@simeonschaub
Copy link
Contributor

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

@fingolfin
Copy link
Author

Uploaded to https://s3.amazonaws.com/julialang-dumps/reports/2022-03-05T22-06-07-fingolfin.tar.zst

@simeonschaub
Copy link
Contributor

simeonschaub commented Mar 6, 2022

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? JuliaLang/julia@7b1e454 touched a couple of parts in libjulia, so I could imagine that those caused the artifacts linking to it to be out of sync.

@giordano
Copy link

giordano commented Mar 6, 2022

@simeonschaub
Copy link
Contributor

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.

@giordano
Copy link

giordano commented Mar 6, 2022

JuliaPackaging/Yggdrasil#4520 was a week after JuliaPackaging/Yggdrasil#4461. However it may still be a good idea to rebuild libjulia on 1.8.0-beta-1, to have a more stable reference

@simeonschaub
Copy link
Contributor

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

@fingolfin
Copy link
Author

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.

@fingolfin
Copy link
Author

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...

@George9000
Copy link

FWIW, I'm also seeing a segfault when using Revise with Julia 1.8 on an M1 mac. Some additional data points:

  • Julia 1.8.0-DEV.1483 (commit 76fa18281d): Revise works without errors
  • Julia 1.8.0-beta2.3 (release-1.8/e191c6e935): segfaults
  • Julia 1.9.0-DEV.211 (commit b9b2a3cc01): Revise throws an exception but no segfault

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
Full segfault output:
signal (11): Segmentation fault: 11
in expression starting at none:1
ml_matches at /Users/foo/applications/juliad/src/gf.c:2824
_gf_invoke_lookup at /Users/foo/applications/juliad/src/gf.c:2552 [inlined]
ijl_gf_invoke_lookup at /Users/foo/applications/juliad/src/gf.c:2564
whichtt at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/utils.jl:35
#prepare_call#43 at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/construct.jl:240
prepare_call##kw at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/construct.jl:233 [inlined]
#get_call_framecode#58 at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/localmethtable.jl:63
get_call_framecode##kw at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/localmethtable.jl:11 [inlined]
#evaluate_call_recurse!#63 at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/interpret.jl:231
evaluate_call_recurse! at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/interpret.jl:207
eval_rhs at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/interpret.jl:371
step_expr! at /Users/foo/.julia/packages/JuliaInterpreter/DxOBb/src/interpret.jl:519
signature at /Users/foo/.julia/packages/LoweredCodeUtils/KZRd2/src/signatures.jl:51
unknown function (ip: 0x1647dd34b)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
#methoddef!#7 at /Users/foo/.julia/packages/LoweredCodeUtils/KZRd2/src/signatures.jl:493
methoddef!##kw at /Users/foo/.julia/packages/LoweredCodeUtils/KZRd2/src/signatures.jl:445 [inlined]
#methods_by_execution!#24 at /Users/foo/.julia/packages/Revise/jHTGK/src/lowered.jl:272
unknown function (ip: 0x165066137)
unknown function (ip: 0x16400e547)
unknown function (ip: 0x16400e51b)
methods_by_execution!##kw at /Users/foo/.julia/packages/Revise/jHTGK/src/lowered.jl:239 [inlined]
#methods_by_execution!#20 at /Users/foo/.julia/packages/Revise/jHTGK/src/lowered.jl:217
methods_by_execution!##kw at /Users/foo/.julia/packages/Revise/jHTGK/src/lowered.jl:175 [inlined]
#eval_with_signatures#90 at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:464 [inlined]
eval_with_signatures##kw at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:462 [inlined]
#instantiate_sigs!#91 at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:472
instantiate_sigs! at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:469 [inlined]
maybe_extract_sigs! at /Users/foo/.julia/packages/Revise/jHTGK/src/pkgs.jl:141 [inlined]
handle_deletions at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:641
#revise#96 at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:747
revise at /Users/foo/.julia/packages/Revise/jHTGK/src/packagedef.jl:735
unknown function (ip: 0x1642c001b)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
jl_apply at /Users/foo/applications/juliad/src/./julia.h:1829 [inlined]
jl_f__call_latest at /Users/foo/applications/juliad/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727
unknown function (ip: 0x11a0b0033)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
jl_apply at /Users/foo/applications/juliad/src/./julia.h:1829 [inlined]
do_call at /Users/foo/applications/juliad/src/interpreter.c:126
eval_body at /Users/foo/applications/juliad/src/interpreter.c:0
jl_interpret_toplevel_thunk at /Users/foo/applications/juliad/src/interpreter.c:750
jl_toplevel_eval_flex at /Users/foo/applications/juliad/src/toplevel.c:906
jl_toplevel_eval_flex at /Users/foo/applications/juliad/src/toplevel.c:850
ijl_toplevel_eval at /Users/foo/applications/juliad/src/toplevel.c:915 [inlined]
ijl_toplevel_eval_in at /Users/foo/applications/juliad/src/toplevel.c:965
eval at ./boot.jl:368 [inlined]
eval_user_input at /Users/foo/applications/juliad/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151
repl_backend_loop at /Users/foo/applications/juliad/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247
start_repl_backend at /Users/foo/applications/juliad/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232
#run_repl#47 at /Users/foo/applications/juliad/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369
run_repl at /Users/foo/applications/juliad/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:356
jfptr_run_repl_63624 at /Users/foo/applications/juliad/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
#961 at ./client.jl:419
jfptr_YY.961_43777 at /Users/foo/applications/juliad/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
jl_apply at /Users/foo/applications/juliad/src/./julia.h:1829 [inlined]
jl_f__call_latest at /Users/foo/applications/juliad/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_30185 at /Users/foo/applications/juliad/usr/lib/julia/sys.dylib (unknown line)
_jl_invoke at /Users/foo/applications/juliad/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/foo/applications/juliad/src/gf.c:2540
jl_apply at /Users/foo/applications/juliad/src/./julia.h:1829 [inlined]
true_main at /Users/foo/applications/juliad/src/jlapi.c:567
jl_repl_entrypoint at /Users/foo/applications/juliad/src/jlapi.c:711
Allocations: 27600154 (Pool: 27589065; Big: 11089); GC: 42

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.

versioninfo 1.8.0-DEV.1483
ulia> versioninfo(verbose = true)
Julia Version 1.8.0-DEV.1483
Commit 76fa18281d (2022-02-09 22:23 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.3.0)
  uname: Darwin 21.4.0 Darwin Kernel Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64 arm
  CPU: Apple M1 Max:
                 speed         user         nice          sys         idle          irq
       #1-10    24 MHz      16598 s          0 s       7938 s     366832 s          0 s
  Memory: 64.0 GB (44699.578125 MB free)
  Uptime: 3914.0 sec
  Load Avg:  0.9091796875  1.1416015625  1.50927734375
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.0 (ORCJIT, cyclone)
Environment:
  JULIA_EDITOR = Emacs
  XPC_FLAGS = 0x0
  PATH = /Applications/Sublime Text.app/Contents/SharedSupport/bin:/Users/foo/.pyenv/bin:/opt/homebrew/opt/grep/libexec/gnubin:/Users/foo/bin:/Users/foo/.local/bin:/opt/homebrew/bin:/Users/foo/Library/Python/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Applications/MacPorts/EmacsMac.app/Contents/MacOS:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin:/Users/foo/.local/bin:/opt/homebrew/opt/fzf/bin:/Users/foo/.emacs.d/bin
  TERM = xterm-256color
  HOME = /Users/foo
  PERLBREW_HOME = /Users/foo/.perlbrew
  PERLBREW_MANPATH = /Users/foo/perl5/perlbrew/perls/perl-5.35.5/man
  PERLBREW_PATH = /Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin
  MANPATH = /opt/local/share/man:/opt/homebrew/share/man:/usr/share/man:/usr/local/share/man:/Library/TeX/Distributions/.DefaultTeX/Contents/Man:/opt/X11/share/man:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/man:/Library/Apple/usr/share/man:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man:/Applications/Xcode.app/Contents/Developer/usr/share/man:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man:
  HOMEBREW_PREFIX = /opt/homebrew
  HOMEBREW_CELLAR = /opt/homebrew/Cellar
  HOMEBREW_REPOSITORY = /opt/homebrew
  INFOPATH = /opt/homebrew/share/info:
versioninfo 1.8.0-beta2.3
versioninfo(verbose = true)
Julia Version 1.8.0-beta2.3
Commit e191c6e935 (2022-03-17 11:35 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.4.0)
  uname: Darwin 21.4.0 Darwin Kernel Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64 arm
  CPU: Apple M1 Max:
                 speed         user         nice          sys         idle          irq
       #1-10    24 MHz      26597 s          0 s      12563 s     669327 s          0 s
  Memory: 64.0 GB (42792.234375 MB free)
  Uptime: 7085.0 sec
  Load Avg:  1.46435546875  1.47216796875  1.3291015625
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, apple-m1)
  Threads: 1 on 8 virtual cores
Environment:
  JULIA_EDITOR = Emacs
  XPC_FLAGS = 0x0
  PATH = /Applications/Sublime Text.app/Contents/SharedSupport/bin:/Users/foo/.pyenv/bin:/opt/homebrew/opt/grep/libexec/gnubin:/Users/foo/bin:/Users/foo/.local/bin:/opt/homebrew/bin:/Users/foo/Library/Python/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Applications/MacPorts/EmacsMac.app/Contents/MacOS:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin:/Users/foo/.local/bin:/opt/homebrew/opt/fzf/bin:/Users/foo/.emacs.d/bin
  TERM = xterm-256color
  HOME = /Users/foo
  PERLBREW_HOME = /Users/foo/.perlbrew
  PERLBREW_MANPATH = /Users/foo/perl5/perlbrew/perls/perl-5.35.5/man
  PERLBREW_PATH = /Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin
  MANPATH = /opt/local/share/man:/opt/homebrew/share/man:/usr/share/man:/usr/local/share/man:/Library/TeX/Distributions/.DefaultTeX/Contents/Man:/opt/X11/share/man:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/man:/Library/Apple/usr/share/man:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man:/Applications/Xcode.app/Contents/Developer/usr/share/man:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man:
  HOMEBREW_PREFIX = /opt/homebrew
  HOMEBREW_CELLAR = /opt/homebrew/Cellar
  HOMEBREW_REPOSITORY = /opt/homebrew
  INFOPATH = /opt/homebrew/share/info:
versioninfo 1.9.0-DEV.211
julia> versioninfo(verbose = true)
Julia Version 1.9.0-DEV.211
Commit b9b2a3cc01 (2022-03-17 12:03 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.4.0)
  uname: Darwin 21.4.0 Darwin Kernel Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64 arm
  CPU: Apple M1 Max:
                 speed         user         nice          sys         idle          irq
       #1-10    24 MHz      16284 s          0 s       7646 s     345014 s          0 s
  Memory: 64.0 GB (44436.09375 MB free)
  Uptime: 3689.0 sec
  Load Avg:  1.12890625  1.51416015625  1.732421875
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, apple-m1)
  Threads: 1 on 8 virtual cores
Environment:
  JULIA_EDITOR = Emacs
  XPC_FLAGS = 0x0
  PATH = /Applications/Sublime Text.app/Contents/SharedSupport/bin:/Users/foo/.pyenv/bin:/opt/homebrew/opt/grep/libexec/gnubin:/Users/foo/bin:/Users/foo/.local/bin:/opt/homebrew/bin:/Users/foo/Library/Python/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Applications/MacPorts/EmacsMac.app/Contents/MacOS:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin:/Users/foo/.local/bin:/opt/homebrew/opt/fzf/bin:/Users/foo/.emacs.d/bin
  TERM = xterm-256color
  HOME = /Users/foo
  PERLBREW_HOME = /Users/foo/.perlbrew
  PERLBREW_MANPATH = /Users/foo/perl5/perlbrew/perls/perl-5.35.5/man
  PERLBREW_PATH = /Users/foo/perl5/perlbrew/bin:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/bin
  MANPATH = /opt/local/share/man:/opt/homebrew/share/man:/usr/share/man:/usr/local/share/man:/Library/TeX/Distributions/.DefaultTeX/Contents/Man:/opt/X11/share/man:/Users/foo/perl5/perlbrew/perls/perl-5.35.5/man:/Library/Apple/usr/share/man:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man:/Applications/Xcode.app/Contents/Developer/usr/share/man:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man:
  HOMEBREW_PREFIX = /opt/homebrew
  HOMEBREW_CELLAR = /opt/homebrew/Cellar
  HOMEBREW_REPOSITORY = /opt/homebrew
  INFOPATH = /opt/homebrew/share/info:

@simeonschaub
Copy link
Contributor

Could we move this issue to Julia base?

@giordano
Copy link

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

@simeonschaub
Copy link
Contributor

Ah, that's unfortunate!

@Keno
Copy link
Contributor

Keno commented Mar 17, 2022

The segfault in ml_matches means you need a newer JuliaInterpreter.

@giordano
Copy link

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

@George9000
Copy link

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.

@Keno
Copy link
Contributor

Keno commented Mar 17, 2022

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 JuliaDebug/JuliaInterpreter.jl@5a39c51 which got backported.

@fingolfin
Copy link
Author

Just to say: the original issue I reported still is there.

@George9000
Copy link

George9000 commented Mar 17, 2022

@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).

George9000 added a commit to George9000/General that referenced this issue Mar 17, 2022
@George9000
Copy link

@giordano After forking the registry, I made the start of a Compat.toml edit for JuliaInterpreter. Would you take a look and comment?

@fingolfin
Copy link
Author

Yes it persists.

@giordano
Copy link

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.

@fingolfin
Copy link
Author

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

@fingolfin
Copy link
Author

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
...

giordano added a commit to JuliaRegistries/General that referenced this issue Mar 20, 2022
…56805)

* Update compatibility with Julia version 1.8

see timholy/Revise.jl#675 (comment)

* WIP to decipher what was meant previously.

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <[email protected]>

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <[email protected]>

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <[email protected]>

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <[email protected]>

* Fixed whitespace around hyphens

* Further whitespace fixes

* Versions.toml contains no version 1.0

Suspect registry_testing.jl compressed == compat test failing because it references Versions.toml, which contains no version 1.0. Thus change spec to "0.9.11-0" which should go up to version 1.

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <[email protected]>

Co-authored-by: Mosè Giordano <[email protected]>
@fingolfin
Copy link
Author

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.

@lassepe
Copy link

lassepe commented Aug 12, 2022

I think I'm still seeing exactly this error on Julia 1.8.0-rc4 and nightly

@fingolfin
Copy link
Author

@lassepe when you say "exactly" do you mean with the exact same packages and reproducer? Then I would have to check that again :-(

@lassepe
Copy link

lassepe commented Aug 12, 2022

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).

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

No branches or pull requests

9 participants