Skip to content

SIGSEGV, does not respond to kill, generally not verbose enough #3

Description

@jinnatar

Tried running the direnv example but when trying to ally shim it locks up and does not respond to a ^C. A kill -9 is required to exit. This may be an issue with my config, but that's impossible for me to say since no errors are printed.

I'd prefer if the tool was a bit more "polite", i.e. perhaps voluntarily exit with an error if hitting a SIGSEGV. Or even respond to a SIGTERM at a minimum. Ideally it would run and do the thing though. :-)

Strace on Debian 13, x86_64:

execve("/home/jinnak/.local/bin/ally", ["ally", "shim"], 0x7ffe45c22918 /* 104 vars /) = 0
brk(NULL) = 0xdef3000
brk(0xdef3d80) = 0xdef3d80
arch_prctl(ARCH_SET_FS, 0xdef3400) = 0
set_tid_address(0xdef36d0) = 755798
set_robust_list(0xdef36e0, 24) = 0
rseq(0xdef3d20, 0x20, 0, 0x53053053) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192
1024, rlim_max=RLIM64_INFINITY}) = 0
readlinkat(AT_FDCWD, "/proc/self/exe", "/home/jinnak/.local/bin/ally", 4096) = 28
getrandom("\xe0\x76\x86\x0d\x7f\x3c\x86\x8c", 8, GRND_NONBLOCK) = 8
brk(NULL) = 0xdef3d80
brk(0xdf14d80) = 0xdf14d80
brk(0xdf15000) = 0xdf15000
mprotect(0x8ed000, 1310720, PROT_READ) = 0
sysinfo({uptime=888939, loads=[154656, 121216, 104480], totalram=16484134912, freeram=249950208, sharedram=2733670400, bufferram=250368000, totalswap=1024454656, freeswap=959422464, procs=1674, totalhigh=0, freehigh=0, mem_unit=1}) = 0
mmap(NULL, 3772976, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f6369dda000
mmap(NULL, 60367616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f6366447000
mmap(NULL, 1030258456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f6328dbf000
mmap(NULL, 16484134912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f5f52540000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5f524ff000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5f524be000
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=81921024, rlim_max=RLIM64_INFINITY}) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160375, ...}) = 0
mmap(NULL, 160375, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5f52496000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14408, ...}) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5f52491000
mmap(0x7f5f52492000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f5f52492000
mmap(0x7f5f52493000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f5f52493000
mmap(0x7f5f52494000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f5f52494000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\236\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
fstat(3, {st_mode=S_IFREG|0755, st_size=2003408, ...}) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
mmap(NULL, 2055800, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5f5229b000
mmap(0x7f5f522c3000, 1462272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f5f522c3000
mmap(0x7f5f52428000, 352256, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18d000) = 0x7f5f52428000
mmap(0x7f5f5247e000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e2000) = 0x7f5f5247e000
mmap(0x7f5f52484000, 52856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5f52484000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\304\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=225600, ...}) = 0
mmap(NULL, 226064, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5f52263000
mmap(0x7f5f52264000, 163840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f5f52264000
mmap(0x7f5f5228c000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x29000) = 0x7f5f5228c000
mmap(0x7f5f52297000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x7f5f52297000
mmap(0x7f5f5229a000, 784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5f5229a000
close(3) = 0
mprotect(0x7f5f52297000, 8192, PROT_READ) = 0
mprotect(0x7f5f5247e000, 16384, PROT_READ) = 0
mprotect(0x7f5f52494000, 4096, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192
1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f5f52496000, 160375) = 0
munmap(0x7f5f52491000, 16400) = 0
munmap(0x7f5f5229b000, 2055800) = 0
munmap(0x7f5f52263000, 226064) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7f5f5232ee70} ---
+++ killed by SIGKILL +++
zsh: killed strace ally shim

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions