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

Pkg.instantiate errors with signal 6 (abort) in emulated arm64 container on docker on macOS #43653

Open
stemann opened this issue Jan 4, 2022 · 2 comments

Comments

@stemann
Copy link

stemann commented Jan 4, 2022

julia --eval 'using Pkg; Pkg.instantiate()' errors with signal 6 (abort) from libc when run as the entrypoint in a qemu-emulated linux/arm64 Julia 1.6 container on Docker for Mac on x86_64:

docker run -it --rm --platform=linux/arm64 -v `pwd`/Foo:/project julia:1.6 julia --project=/project --eval 'using Pkg; Pkg.instantiate()'

See stack trace below. Foo is just an empty project.

Oddly, it works in the REPL:

docker run -it --rm --platform=linux/arm64 -v `pwd`/Foo:/project julia:1.6 julia --project=/project
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.5 (2021-12-19)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> versioninfo()
Julia Version 1.6.5
Commit 9058264a69 (2021-12-19 12:30 UTC)
Platform Info:
  OS: Linux (aarch64-unknown-linux-gnu)
  CPU: unknown
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, generic)
Environment:
  JULIA_VERSION = 1.6.5
  JULIA_GPG = 3673DF529D9049477F76B37566E3C7DC03D6E495
  JULIA_PATH = /usr/local/julia

(Foo) pkg> instantiate
  Installing known registries into `~/.julia`
       Added registry `General` to `~/.julia/registries/General`
  No Changes to `/project/Project.toml`
  No Changes to `/project/Manifest.toml`

(Foo) pkg>

Minimal reproducible example on Julia 1.6

Generate a project:

julia --eval 'using Pkg; Pkg.generate("Foo")'

Instantiate in a linux/arm64 container (on macOS):

docker run -it --rm --platform=linux/arm64 -v `pwd`/Foo:/project julia:1.6 julia --project=/project --eval 'using Pkg; Pkg.instantiate()'

  Installing known registries into `~/.julia`
       Added
signal (6): Aborted
in expression starting at none:1
gsignal at /lib/aarch64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/aarch64-linux-gnu/libc.so.6 (unknown line)
uv__io_poll at /workspace/srcdir/libuv/src/unix/epoll.c:288
uv_run at /workspace/srcdir/libuv/src/unix/core.c:383
jl_task_get_next at /buildworker/worker/package_linuxaarch64/build/src/partr.c:472
poptask at ./task.jl:760
wait at ./task.jl:769
uv_write at ./stream.jl:992
unsafe_write at ./stream.jl:1064
write at ./strings/io.jl:185 [inlined]
print at ./strings/io.jl:187 [inlined]
#with_output_color#815 at ./util.jl:91
with_output_color##kw at ./util.jl:71 [inlined]
#printstyled#816 at ./util.jl:105 [inlined]
printstyled##kw at ./util.jl:105 [inlined]
#printpkgstyle#106 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1406
printpkgstyle at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1404
jfptr_printpkgstyle_53959 at /usr/local/julia/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2419
printpkgstyle at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1401
printpkgstyle at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1401 [inlined]
#82 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1076
#mktempdir#21 at ./file.jl:729
mktempdir at ./file.jl:727 [inlined]
mktempdir at ./file.jl:727 [inlined]
clone_or_cp_registries at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1027
clone_or_cp_registries at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1020 [inlined]
#clone_default_registries#67 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:920
clone_default_registries at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:908 [inlined]
find_registered! at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1291
find_registered! at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:1252 [inlined]
deps_graph at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:523
resolve_versions! at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:407
up at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/Operations.jl:1323
#up#109 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:261
up##kw at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:237 [inlined]
#up#41 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:84 [inlined]
up##kw at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:84 [inlined]
#instantiate#253 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1342
instantiate at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1325 [inlined]
#instantiate#252 at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1321 [inlined]
instantiate at /buildworker/worker/package_linuxaarch64/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1321
unknown function (ip: 0x55258040ef)
_jl_invoke at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linuxaarch64/build/src/julia.h:1703 [inlined]
do_call at /buildworker/worker/package_linuxaarch64/build/src/interpreter.c:115
eval_value at /buildworker/worker/package_linuxaarch64/build/src/interpreter.c:204
eval_stmt_value at /buildworker/worker/package_linuxaarch64/build/src/interpreter.c:155 [inlined]
eval_body at /buildworker/worker/package_linuxaarch64/build/src/interpreter.c:576
jl_interpret_toplevel_thunk at /buildworker/worker/package_linuxaarch64/build/src/interpreter.c:670
jl_toplevel_eval_flex at /buildworker/worker/package_linuxaarch64/build/src/toplevel.c:877
jl_toplevel_eval_flex at /buildworker/worker/package_linuxaarch64/build/src/toplevel.c:825
jl_toplevel_eval_flex at /buildworker/worker/package_linuxaarch64/build/src/toplevel.c:825
jl_toplevel_eval_in at /buildworker/worker/package_linuxaarch64/build/src/toplevel.c:929
eval at ./boot.jl:360 [inlined]
exec_options at ./client.jl:261
_start at ./client.jl:485
jfptr__start_30860 at /usr/local/julia/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2237 [inlined]
jl_apply_generic at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2419
jl_apply at /buildworker/worker/package_linuxaarch64/build/src/julia.h:1703 [inlined]
true_main at /buildworker/worker/package_linuxaarch64/build/src/jlapi.c:560
repl_entrypoint at /buildworker/worker/package_linuxaarch64/build/src/jlapi.c:702
main at /buildworker/worker/package_linuxaarch64/build/cli/loader_exe.c:51
__libc_start_main at /lib/aarch64-linux-gnu/libc.so.6 (unknown line)
_start at /usr/local/julia/bin/julia (unknown line)
_start at /usr/local/julia/bin/julia (unknown line)
Allocations: 3571658 (Pool: 3570672; Big: 986); GC: 5
qemu: uncaught target signal 6 (Aborted) - core dumped
@vtjnash
Copy link
Member

vtjnash commented Jan 12, 2022

I wonder if this will be fixed by #43664

@dnadlinger
Copy link
Member

dnadlinger commented Jan 14, 2022

#43664 only changes the codegen for aarch64-darwin, so it probably won't be. The backtrace also appears to be in C code, while the segfaults due to invalid far jumps were in JIT-compiled code.

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

3 participants