-
Notifications
You must be signed in to change notification settings - Fork 891
Closed
Labels
Description
Describe the Bug
Executing asdf plugin-add php https://github.com/...
returns a Golang segfault.
Abstractions
MacBook Pros M3 (ARM) host -> UTM 4.5.4 -> Fedora 42(Adam) guest (ARM) -> Fedora 42 container (AMD64) via using podman 5.5.2 -> asdf-vm -> asdf plugin add ...
Steps to Reproduce
- Attempt to add plugin via CLI command using both 0.18.0 and 0.17.0
Have tried the following three commands:
- asdf plugin add maven https://github.com/halcyon/asdf-php
- asdf plugin add php https://github.com/asdf-community/asdf-php.git
- asdf plugin add sonarscanner https://github.com/virtualstaticvoid/asdf-sonarscanner.git
All result in a similar segfault with output of:
SIGSEGV: segmentation violation
PC=0x43430e m=1 sigcode=1 addr=0xffffffffac6316a8
goroutine 0 gp=0xc000006540 m=1 mp=0xc000046008 [idle]:
runtime.netpoll(0xa9be48fd928?)
/usr/local/go/src/runtime/netpoll_epoll.go:166 +0x24e fp=0xc000025f38 sp=0xc0000258b0 pc=0x43430e
runtime.sysmon()
/usr/local/go/src/runtime/proc.go:6127 +0x2d7 fp=0xc000025fa0 sp=0xc000025f38 pc=0x447077
runtime.mstart1()
/usr/local/go/src/runtime/proc.go:1834 +0x93 fp=0xc000025fc8 sp=0xc000025fa0 pc=0x43dc33
runtime.mstart0()
/usr/local/go/src/runtime/proc.go:1791 +0x76 fp=0xc000025ff8 sp=0xc000025fc8 pc=0x43db76
runtime.mstart()
/usr/local/go/src/runtime/asm_amd64.s:395 +0x5 fp=0xc000026000 sp=0xc000025ff8 pc=0x473a25
goroutine 1 gp=0xc0000061c0 m=nil [runnable]:
runtime.asyncPreempt2()
/usr/local/go/src/runtime/preempt.go:308 +0x39 fp=0xc000186508 sp=0xc0001864e8 pc=0x439319
runtime.asyncPreempt()
/usr/local/go/src/runtime/preempt_amd64.s:53 +0xdb fp=0xc000186690 sp=0xc000186508 pc=0x476e9b
syscall.readlen(0xc000172878?, 0xc00017a000?, 0xb?)
/usr/local/go/src/syscall/zsyscall_linux_amd64.go:987 +0x2c fp=0xc0001866d0 sp=0xc000186690 pc=0x4c44ac
syscall.forkExec({0xc000102690?, 0xc000172860?}, {0xc000113bc0, 0x3, 0x3}, 0x7dfe01?)
/usr/local/go/src/syscall/exec_unix.go:220 +0x449 fp=0xc0001867e8 sp=0xc0001866d0 pc=0x4c05c9
syscall.StartProcess(...)
/usr/local/go/src/syscall/exec_unix.go:258
os.startProcess({0xc000102690, 0xd}, {0xc000113bc0, 0x3, 0x3}, 0xc0001869f0)
/usr/local/go/src/os/exec_posix.go:55 +0x2f2 fp=0xc0001868d0 sp=0xc0001867e8 pc=0x4eec52
os.StartProcess({0xc000102690, 0xd}, {0xc000113bc0, 0x3, 0x3}, 0xc0001729f0)
/usr/local/go/src/os/exec.go:319 +0x54 fp=0xc000186910 sp=0xc0001868d0 pc=0x4ee6b4
os/exec.(*Cmd).Start(0xc000176180)
/usr/local/go/src/os/exec/exec.go:709 +0x5d1 fp=0xc000186a98 sp=0xc000186910 pc=0x553071
os/exec.(*Cmd).Run(0xc000176180)
/usr/local/go/src/os/exec/exec.go:607 +0x18 fp=0xc000186ab0 sp=0xc000186a98 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=0xc000186b40 sp=0xc000186ab0 pc=0x556f6f
github.com/asdf-vm/asdf/internal/git.exec({0xc000114440?, 0xc000144000?, 0x17?})
/github/workspace/internal/git/git.go:171 +0x158 fp=0xc000186cb0 sp=0xc000186b40 pc=0x558798
github.com/asdf-vm/asdf/internal/git.Repo.Clone({{0xc0001420d8?, 0x5?}, {0x0?, 0xd?}}, {0xffffaf9ef6f0, 0x2e}, {0x0, 0x0})
/github/workspace/internal/git/git.go:50 +0x1a5 fp=0xc000186d08 sp=0xc000186cb0 pc=0x5576e5
github.com/asdf-vm/asdf/internal/plugins.Add({{0xc000012035, 0x5}, {0xc0001025f0, 0xd}, {0x621030, 0xe}, {0xc0001025c0, 0xb}, {0x0, 0x0, ...}, ...}, ...)
/github/workspace/internal/plugins/plugins.go:408 +0x4e7 fp=0xc000186f68 sp=0xc000186d08 pc=0x55cc87
github.com/asdf-vm/asdf/internal/cli.pluginAddCommand(0x5d131b?, {{0xc000012035, 0x5}, {0xc0001025f0, 0xd}, {0x621030, 0xe}, {0xc0001025c0, 0xb}, {0x0, ...}, ...}, ...)
/github/workspace/internal/cli/cli.go:721 +0xab fp=0xc000187090 sp=0xc000186f68 pc=0x5bb22b
github.com/asdf-vm/asdf/internal/cli.Execute.func12({0xc000154288?, 0x67d518?}, 0xc000154288)
/github/workspace/internal/cli/cli.go:195 +0x23e fp=0xc0001872f8 sp=0xc000187090 pc=0x5b5e3e
github.com/urfave/cli/v3.(*Command).run(0xc000154288, {0x67d518, 0xc0001139e0}, {0xc0001138f0, 0x3, 0x3})
/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:336 +0x2674 fp=0xc0001876b8 sp=0xc0001872f8 pc=0x59da54
github.com/urfave/cli/v3.(*Command).run(0xc000154008, {0x67d518, 0xc000113800}, {0xc0001143c0, 0x4, 0x4})
/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:274 +0x1ee5 fp=0xc000187a78 sp=0xc0001876b8 pc=0x59d2c5
github.com/urfave/cli/v3.(*Command).run(0xc000152008, {0x67d518, 0xc000112810}, {0xc00011a000, 0x5, 0x5})
/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:274 +0x1ee5 fp=0xc000187e38 sp=0xc000187a78 pc=0x59d2c5
github.com/urfave/cli/v3.(*Command).Run(...)
/go/pkg/mod/github.com/urfave/cli/[email protected]/command_run.go:94
github.com/asdf-vm/asdf/internal/cli.Execute({0xc00013c040, 0x1a})
/github/workspace/internal/cli/cli.go:347 +0x1950 fp=0xc000187f30 sp=0xc000187e38 pc=0x5b5410
main.main()
/github/workspace/cmd/asdf/main.go:18 +0x2a fp=0xc000187f50 sp=0xc000187f30 pc=0x5c5c6a
runtime.main()
/usr/local/go/src/runtime/proc.go:272 +0x28b fp=0xc000187fe0 sp=0xc000187f50 pc=0x43a78b
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000187fe8 sp=0xc000187fe0 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=0xc000040fa8 sp=0xc000040f88 pc=0x46e1ee
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:430
runtime.forcegchelper()
/usr/local/go/src/runtime/proc.go:337 +0xb3 fp=0xc000040fe0 sp=0xc000040fa8 pc=0x43aad3
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000040fe8 sp=0xc000040fe0 pc=0x475961
created by runtime.init.7 in goroutine 1
/usr/local/go/src/runtime/proc.go:325 +0x1a
goroutine 17 gp=0xc000084380 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc00003c780 sp=0xc00003c760 pc=0x46e1ee
runtime.goparkunlock(...)
/usr/local/go/src/runtime/proc.go:430
runtime.bgsweep(0xc000090000)
/usr/local/go/src/runtime/mgcsweep.go:277 +0x94 fp=0xc00003c7c8 sp=0xc00003c780 pc=0x425834
runtime.gcenable.gowrap1()
/usr/local/go/src/runtime/mgc.go:204 +0x25 fp=0xc00003c7e0 sp=0xc00003c7c8 pc=0x419f45
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00003c7e8 sp=0xc00003c7e0 pc=0x475961
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:204 +0x66
goroutine 18 gp=0xc000084540 m=nil [GC scavenge wait]:
runtime.gopark(0xc000090000?, 0x679560?, 0x1?, 0x0?, 0xc000084540?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc00003cf78 sp=0xc00003cf58 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=0xc00003cfa8 sp=0xc00003cf78 pc=0x423269
runtime.bgscavenge(0xc000090000)
/usr/local/go/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc00003cfc8 sp=0xc00003cfa8 pc=0x4237dc
runtime.gcenable.gowrap2()
/usr/local/go/src/runtime/mgc.go:205 +0x25 fp=0xc00003cfe0 sp=0xc00003cfc8 pc=0x419ee5
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00003cfe8 sp=0xc00003cfe0 pc=0x475961
created by runtime.gcenable in goroutine 1
/usr/local/go/src/runtime/mgc.go:205 +0xa5
goroutine 33 gp=0xc000118000 m=nil [finalizer wait]:
runtime.gopark(0x490013?, 0xc000040660?, 0x9e?, 0x4?, 0xffffac620328?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc000040620 sp=0xc000040600 pc=0x46e1ee
runtime.runfinq()
/usr/local/go/src/runtime/mfinal.go:193 +0x107 fp=0xc0000407e0 sp=0xc000040620 pc=0x418fc7
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc0000407e8 sp=0xc0000407e0 pc=0x475961
created by runtime.createfing in goroutine 1
/usr/local/go/src/runtime/mfinal.go:163 +0x3d
goroutine 34 gp=0xc0001181c0 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/usr/local/go/src/runtime/proc.go:424 +0xce fp=0xc00014a718 sp=0xc00014a6f8 pc=0x46e1ee
runtime.chanrecv(0xc0001000e0, 0x0, 0x1)
/usr/local/go/src/runtime/chan.go:639 +0x41c fp=0xc00014a790 sp=0xc00014a718 pc=0x409c5c
runtime.chanrecv1(0x0?, 0x0?)
/usr/local/go/src/runtime/chan.go:489 +0x12 fp=0xc00014a7b8 sp=0xc00014a790 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=0xc00014a7e0 sp=0xc00014a7b8 pc=0x41cf6f
runtime.goexit({})
/usr/local/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc00014a7e8 sp=0xc00014a7e0 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 0xffffffffac631698
rbp 0xc000025f28
rsp 0xc0000258b0
r8 0x77
r9 0x72
r10 0x1
r11 0xffffffffffffff58
r12 0xc000025930
r13 0xc000046008
r14 0xc000006540
r15 0xfffffffffffffff
rip 0x43430e
rflags 0x202
cs 0x33
fs 0x0
gs 0x0
Expected Behaviour
Successful (code 0) exit of asdf when trying to add a plugin location,
Actual Behaviour
Segfault exit
Environment
[root@90e59f60b2b8 ~]# asdf --version
asdf version v0.18.0 (revision 2114f1e)
[root@90e59f60b2b8 ~]# cat /etc/fedora-release
Fedora release 42 (Adams)
[root@90e59f60b2b8 ~]# printenv | sort
GPG_TTY=/dev/pts/0
HOME=/root
HOSTNAME=90e59f60b2b8
JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto
LANG=C.UTF-8
LESSOPEN=||/usr/bin/lesspipe.sh %s
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:
PATH=/root/.asdf/shims:/root/.local/bin:/root/bin:/usr/local/bin:/usr/bin
PWD=/root
SHLVL=1
TERM=xterm
_=/usr/bin/printenv
container=oci
asdf plugins affected (if relevant)
maven
sonar-scanner
php
terraform-docs
...
likely others
MichaelJ-PP and StorageMatt