-
Notifications
You must be signed in to change notification settings - Fork 910
Open
Labels
Description
Describe the Bug
While attempting to execute asdf plugin add... Golang returns a SIGSEGV.
Steps to Reproduce
Start a shell inside an Amd64 based container image using an ARM64 host machine. Attempt to execute asdf plugin add ... using any plugin. We tested with the following:
- asdf plugin add cowsay https://github.com/amrox/asdf-pyapp.git
- asdf plugin add aws-nuke https://github.com/bersalazar/asdf-aws-nuke.git
- asdf plugin add aws-sso-cli https://github.com/adamcrews/asdf-aws-sso-cli.git
- asdf plugin add ansible https://github.com/Bleacks/asdf-ansible.git
Surprisingly asdf plugin add --help does work as expected.
Expected Behaviour
In the ARM Fedora 64 Guest
$ asdf plugin add ansible https://github.com/Bleacks/asdf-ansible.git
Plugin named ansible already added
Actual Behaviour
In the Amd64 container:
$ asdf plugin add ansible https://github.com/Bleacks/asdf-ansible.git
SIGSEGV: segmentation violation
PC=0x43430e m=1 sigcode=1 addr=0xffffffffbc7b16a8
goroutine 0 gp=0xc000006540 m=1 mp=0xc000048008 [idle]:
runtime.netpoll(0x16d005d9dc94?)
/usr/local/go/src/runtime/netpoll_epoll.go:166 +0x24e fp=0xc000027f38 sp=0xc0000278b0 pc=0x43430e
runtime.sysmon()
/usr/local/go/src/runtime/proc.go:6127 +0x2d7 fp=0xc000027fa0 sp=0xc000027f38 pc=0x447077
runtime.mstart1()
/usr/local/go/src/runtime/proc.go:1834 +0x93 fp=0xc000027fc8 sp=0xc000027fa0 pc=0x43dc33
runtime.mstart0()
/usr/local/go/src/runtime/proc.go:1791 +0x76 fp=0xc000027ff8 sp=0xc000027fc8 pc=0x43db76
runtime.mstart()
/usr/local/go/src/runtime/asm_amd64.s:395 +0x5 fp=0xc000028000 sp=0xc000027ff8 pc=0x473a25
goroutine 1 gp=0xc0000061c0 m=nil [runnable]:
runtime.asyncPreempt2()
/usr/local/go/src/runtime/preempt.go:308 +0x39 fp=0xc00016c3d8 sp=0xc00016c3b8 pc=0x439319
runtime.asyncPreempt()
/usr/local/go/src/runtime/preempt_amd64.s:53 +0xdb fp=0xc00016c560 sp=0xc00016c3d8 pc=0x476e9b
os.checkClonePidfd()
/usr/local/go/src/syscall/exec_linux.go:794 +0x11b fp=0xc00016c5f8 sp=0xc00016c560 pc=0x4c581b
os.checkPidfd()
/usr/local/go/src/os/pidfd_linux.go:192 +0x25c fp=0xc00016c6a0 sp=0xc00016c5f8 pc=0x4f33fc
os.init.OnceValue[...].func2()
/usr/local/go/src/sync/oncefunc.go:57 +0x73 fp=0xc00016c6f8 sp=0xc00016c6a0 pc=0x4ecb33
sync.(*Once).doSlow(0x15?, 0x13?)
/usr/local/go/src/sync/once.go:76 +0xb4 fp=0xc00016c758 sp=0xc00016c6f8 pc=0x48bb94
sync.(*Once).Do(0x0?, 0xc00016c848?)
/usr/local/go/src/sync/once.go:67 +0x19 fp=0xc00016c778 sp=0xc00016c758 pc=0x48bab9
os.init.OnceValue[...].func3()
/usr/local/go/src/sync/oncefunc.go:62 +0x36 fp=0xc00016c7b0 sp=0xc00016c778 pc=0x4eca76
os.pidfdWorks(...)
/usr/local/go/src/os/pidfd_linux.go:142
os.ensurePidfd(0x0)
/usr/local/go/src/os/pidfd_linux.go:31 +0x23 fp=0xc00016c7e8 sp=0xc00016c7b0 pc=0x4f28a3
os.startProcess({0xc000102690, 0xd}, {0xc000113bc0, 0x3, 0x3}, 0xc00016c9f0)
/usr/local/go/src/os/exec_posix.go:38 +0xca fp=0xc00016c8d0 sp=0xc00016c7e8 pc=0x4eea2a
os.StartProcess({0xc000102690, 0xd}, {0xc000113bc0, 0x3, 0x3}, 0xc00016c9f0)
/usr/local/go/src/os/exec.go:319 +0x54 fp=0xc00016c910 sp=0xc00016c8d0 pc=0x4ee6b4
os/exec.(*Cmd).Start(0xc000170180)
/usr/local/go/src/os/exec/exec.go:709 +0x5d1 fp=0xc00016ca98 sp=0xc00016c910 pc=0x553071
os/exec.(*Cmd).Run(0xc000170180)
/usr/local/go/src/os/exec/exec.go:607 +0x18 fp=0xc00016cab0 sp=0xc00016ca98 pc=0x552a58
github.com/asdf-vm/asdf/internal/execute.Command.Run({{0x61e7a6, 0x3}, {0x0, 0x0}, {0xc000114450, 0x3, 0x3}, {0x0, 0x0}, {0x67c018, ...}, ...})
/github/workspace/internal/execute/execute.go:63 +0x2cf fp=0xc00016cb40 sp=0xc00016cab0 pc=0x556f6f
github.com/asdf-vm/asdf/internal/git.exec({0xc000114440?, 0xc000142000?, 0x1b?})
/github/workspace/internal/git/git.go:171 +0x158 fp=0xc00016ccb0 sp=0xc00016cb40 pc=0x558798
github.com/asdf-vm/asdf/internal/git.Repo.Clone({{0xc00013c120?, 0x5?}, {0x0?, 0xd?}}, {0xffffbdbef61f, 0x2b}, {0x0, 0x0})
/github/workspace/internal/git/git.go:50 +0x1a5 fp=0xc00016cd08 sp=0xc00016ccb0 pc=0x5576e5
github.com/asdf-vm/asdf/internal/plugins.Add({{0xc000012025, 0x5}, {0xc0001025f0, 0xd}, {0x621030, 0xe}, {0xc0001025c0, 0xb}, {0x0, 0x0, ...}, ...}, ...)
/github/workspace/internal/plugins/plugins.go:408 +0x4e7 fp=0xc00016cf68 sp=0xc00016cd08 pc=0x55cc87
github.com/asdf-vm/asdf/internal/cli.pluginAddCommand(0x5d131b?, {{0xc000012025, 0x5}, {0xc0001025f0, 0xd}, {0x621030, 0xe}, {0xc0001025c0, 0xb}, {0x0, ...}, ...}, ...)
/github/workspace/internal/cli/cli.go:721 +0xab fp=0xc00016d090 sp=0xc00016cf68 pc=0x5bb22b
github.com/asdf-vm/asdf/internal/cli.Execute.func12({0xc00014e288?, 0x67d518?}, 0xc00014e288)
/github/workspace/internal/cli/cli.go:195 +0x23e fp=0xc00016d2f8 sp=0xc00016d090 pc=0x5b5e3e
github.com/urfave/cli/v3.(*Command).run(0xc00014e288, {0x67d518, 0xc0001139e0}, {0xc0001138f0, 0x3, 0x3})
/go/pkg/mod/github.com/urfave/cli/v3@v3.3.3/command_run.go:336 +0x2674 fp=0xc00016d6b8 sp=0xc00016d2f8 pc=0x59da54
github.com/urfave/cli/v3.(*Command).run(0xc00014e008, {0x67d518, 0xc000113800}, {0xc0001143c0, 0x4, 0x4})
/go/pkg/mod/github.com/urfave/cli/v3@v3.3.3/command_run.go:274 +0x1ee5 fp=0xc00016da78 sp=0xc00016d6b8 pc=0x59d2c5
github.com/urfave/cli/v3.(*Command).run(0xc00014c008, {0x67d518, 0xc000112810}, {0xc00011a000, 0x5, 0x5})
/go/pkg/mod/github.com/urfave/cli/v3@v3.3.3/command_run.go:274 +0x1ee5 fp=0xc00016de38 sp=0xc00016da78 pc=0x59d2c5
github.com/urfave/cli/v3.(*Command).Run(...)
/go/pkg/mod/github.com/urfave/cli/v3@v3.3.3/command_run.go:94
github.com/asdf-vm/asdf/internal/cli.Execute({0xc00013c040, 0x1a})
/github/workspace/internal/cli/cli.go:347 +0x1950 fp=0xc00016df30 sp=0xc00016de38 pc=0x5b5410
main.main()
/github/workspace/cmd/asdf/main.go:18 +0x2a fp=0xc00016df50 sp=0xc00016df30 pc=0x5c5c6a
runtime.main()
/usr/local/go/src/runtime/proc.go:272 +0x28b fp=0xc00016dfe0 sp=0xc00016df50 pc=0x43a78b
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00016dfe8 sp=0xc00016dfe0 pc=0x475961
goroutine 2 gp=0xc000006700 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc000042fa8 sp=0xc000042f88 pc=0x46e1ee
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:430
runtime.forcegchelper()
/usr/local/go/src/runtime/proc.go:337 +0xb3 fp=0xc000042fe0 sp=0xc000042fa8 pc=0x43aad3
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000042fe8 sp=0xc000042fe0 pc=0x475961
created by runtime.init.7 in goroutine 1
/usr/local/go/src/runtime/proc.go:325 +0x1a
goroutine 3 gp=0xc000006fc0 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc000043780 sp=0xc000043760 pc=0x46e1ee
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:430
runtime.bgsweep(0xc00006e000)
/usr/local/go/src/runtime/mgcsweep.go:277 +0x94 fp=0xc0000437c8 sp=0xc000043780 pc=0x425834
runtime.gcenable.gowrap1()
/usr/local/go/src/runtime/mgc.go:204 +0x25 fp=0xc0000437e0 sp=0xc0000437c8 pc=0x419f45
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000437e8 sp=0xc0000437e0 pc=0x475961
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:204 +0x66
goroutine 4 gp=0xc000007180 m=nil [GC scavenge wait]:
runtime.gopark(0xc00006e000?, 0x679560?, 0x1?, 0x0?, 0xc000007180?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc000043f78 sp=0xc000043f58 pc=0x46e1ee
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:430
runtime.(*scavengerState).park(0x7def80)
/usr/local/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000043fa8 sp=0xc000043f78 pc=0x423269
runtime.bgscavenge(0xc00006e000)
/usr/local/go/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000043fc8 sp=0xc000043fa8 pc=0x4237dc
runtime.gcenable.gowrap2()
/usr/local/go/src/runtime/mgc.go:205 +0x25 fp=0xc000043fe0 sp=0xc000043fc8 pc=0x419ee5
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000043fe8 sp=0xc000043fe0 pc=0x475961
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:205 +0xa5
goroutine 17 gp=0xc000118000 m=nil [finalizer wait]:
runtime.gopark(0x490013?, 0xc000042660?, 0x9e?, 0x4?, 0xffffbc7a03c8?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc000042620 sp=0xc000042600 pc=0x46e1ee
runtime.runfinq()
/usr/local/go/src/runtime/mfinal.go:193 +0x107 fp=0xc0000427e0 sp=0xc000042620 pc=0x418fc7
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000427e8 sp=0xc0000427e0 pc=0x475961
created by runtime.createfing in goroutine 1
/usr/local/go/src/runtime/mfinal.go:163 +0x3d
goroutine 18 gp=0xc0001181c0 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc00003e718 sp=0xc00003e6f8 pc=0x46e1ee
runtime.chanrecv(0xc0001000e0, 0x0, 0x1)
/usr/local/go/src/runtime/chan.go:639 +0x41c fp=0xc00003e790 sp=0xc00003e718 pc=0x409c5c
runtime.chanrecv1(0x0?, 0x0?)
/usr/local/go/src/runtime/chan.go:489 +0x12 fp=0xc00003e7b8 sp=0xc00003e790 pc=0x409832
runtime.unique_runtime_registerUniqueMapCleanup.func1(...)
/usr/local/go/src/runtime/mgc.go:1781
runtime.unique_runtime_registerUniqueMapCleanup.gowrap1()
/usr/local/go/src/runtime/mgc.go:1784 +0x2f fp=0xc00003e7e0 sp=0xc00003e7b8 pc=0x41cf6f
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00003e7e8 sp=0xc00003e7e0 pc=0x475961
created by unique.runtime_registerUniqueMapCleanup in goroutine 1
/usr/local/go/src/runtime/mgc.go:1779 +0x96
rax 0x2
rbx 0x0
rcx 0x0
rdx 0x0
rdi 0x7feb00
rsi 0xffffffffbc7b1698
rbp 0xc000027f28
rsp 0xc0000278b0
r8 0x77
r9 0x72
r10 0x1
r11 0xffffffffffffff58
r12 0xc000027930
r13 0xc000048008
r14 0xc000006540
r15 0xfffffffffffffff
rip 0x43430e
rflags 0x202
cs 0x33
fs 0x0
gs 0x0
Environment
Physical Host: M3 MacBook
Guest: ARM Fedora 42
Container: Amd64 Fedora 42asdf plugins affected (if relevant)
Host:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: Mac15,6
Model Number: Z1AX002JCFN/A
Chip: Apple M3 Pro
Total Number of Cores: 11 (5 performance and 6 efficiency)
Memory: 36 GB
System Firmware Version: 13822.41.1
OS Loader Version: 11881.140.96
Serial Number (system): REDACTED
Hardware UUID: REDACTED
Provisioning UDID: REDACTED
Activation Lock Status: Disabled
Guest:
$ cat /etc/*release
Fedora release 42 (Adams)
NAME="Fedora Linux"
VERSION="42 (Workstation Edition)"
RELEASE_TYPE=stable
ID=fedora
VERSION_ID=42
VERSION_CODENAME=""
PLATFORM_ID="platform:f42"
PRETTY_NAME="Fedora Linux 42 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:42"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f42/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=42
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=42
SUPPORT_END=2026-05-13
VARIANT="Workstation Edition"
VARIANT_ID=workstation
Fedora release 42 (Adams)
Fedora release 42 (Adams)
Container:
cat /etc/*release
Fedora release 42 (Adams)
NAME="Fedora Linux"
VERSION="42 (Container Image)"
RELEASE_TYPE=stable
ID=fedora
VERSION_ID=42
VERSION_CODENAME=""
PLATFORM_ID="platform:f42"
PRETTY_NAME="Fedora Linux 42 (Container Image)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:42"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f42/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=42
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=42
SUPPORT_END=2026-05-13
VARIANT="Container Image"
VARIANT_ID=container
Fedora release 42 (Adams)
Fedora release 42 (Adams)