Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 5 Oct 2023 14:26:42 -0400
From: Carl Chave <online@...ve.us>
To: musl@...ts.openwall.com, Carl Chave <online@...ve.us>, Rich Felker <dalias@...c.org>
Subject: Re: Hung processes with althttpd web server

> apk add musl-dbg
>
> the bt should be more useful then.

(gdb) bt
#0  __syscall_cp_c (nr=202, u=140049023633540, v=128, w=-2147483632,
x=0, y=0, z=0) at ./arch/x86_64/syscall_arch.h:61
#1  0x00007f5fb449b6c9 in __futex4_cp (to=0x0, val=-2147483632,
op=128, addr=0x7f5fb44e0884 <init_fini_lock+4>) at
src/thread/__timedwait.c:24
#2  __timedwait_cp (addr=addr@...ry=0x7f5fb44e0884 <init_fini_lock+4>,
val=val@...ry=-2147483632, clk=clk@...ry=0, at=at@...ry=0x0,
priv=priv@...ry=128) at src/thread/__timedwait.c:52
#3  0x00007f5fb449b76e in __timedwait (addr=addr@...ry=0x7f5fb44e0884
<init_fini_lock+4>, val=-2147483632, clk=clk@...ry=0, at=at@...ry=0x0,
priv=priv@...ry=128)
    at src/thread/__timedwait.c:68
#4  0x00007f5fb449d9b1 in __pthread_mutex_timedlock (m=0x7f5fb44e0880
<init_fini_lock>, at=at@...ry=0x0) at
src/thread/pthread_mutex_timedlock.c:85
#5  0x00007f5fb449d7c0 in __pthread_mutex_lock
(m=m@...ry=0x7f5fb44e0880 <init_fini_lock>) at
src/thread/pthread_mutex_lock.c:9
#6  0x00007f5fb44a49ff in __libc_exit_fini () at ldso/dynlink.c:1442
#7  0x00007f5fb445b082 in exit (code=0) at src/exit/exit.c:30
#8  0x0000557471c3cf45 in ?? ()
#9  <signal handler called>
#10 0x00007f5fb43d3f20 in ?? () from /lib/libssl.so.3
#11 0x00007f5fb44a4a9d in __libc_exit_fini () at ldso/dynlink.c:1453
#12 0x00007f5fb445b082 in exit (code=0) at src/exit/exit.c:30
#13 0x0000557471c3cbe7 in ?? ()
#14 0x0000557471c3e934 in ?? ()
#15 0x0000557471c3c2d2 in ?? ()
#16 0x00007f5fb4462aad in libc_start_main_stage2 (main=0x557471c3b780,
argc=13, argv=0x7ffd0641b958) at src/env/__libc_start_main.c:95
#17 0x0000557471c3c31a in ?? ()
#18 0x000000000000000d in ?? ()
#19 0x00007ffd0641ce54 in ?? ()
#20 0x00007ffd0641ce66 in ?? ()
#21 0x00007ffd0641ce6d in ?? ()
#22 0x00007ffd0641ce6f in ?? ()
#23 0x00007ffd0641ce76 in ?? ()
#24 0x00007ffd0641ce79 in ?? ()
#25 0x00007ffd0641ce80 in ?? ()
#26 0x00007ffd0641ce89 in ?? ()
#27 0x00007ffd0641ce92 in ?? ()
#28 0x00007ffd0641cea2 in ?? ()
#29 0x00007ffd0641ceac in ?? ()
#30 0x00007ffd0641cec6 in ?? ()
#31 0x00007ffd0641cecd in ?? ()
#32 0x0000000000000000 in ?? ()

> in this case you can also look at
>
> (gdb) disas $rip-40,+80

(gdb) disas $rip-40,+80
Dump of assembler code from 0x7f5fb449c0b5 to 0x7f5fb449c105:
   0x00007f5fb449c0b5 <__syscall_cp_c+19>:    mov    %r9,%r8
   0x00007f5fb449c0b8 <__syscall_cp_c+22>:    mov    %fs:0x0,%rbp
   0x00007f5fb449c0c1 <__syscall_cp_c+31>:    movzbl 0x40(%rbp),%eax
   0x00007f5fb449c0c5 <__syscall_cp_c+35>:    mov    0x20(%rsp),%r9
   0x00007f5fb449c0ca <__syscall_cp_c+40>:    test   %eax,%eax
   0x00007f5fb449c0cc <__syscall_cp_c+42>:    je     0x7f5fb449c0df
<__syscall_cp_c+61>
   0x00007f5fb449c0ce <__syscall_cp_c+44>:    dec    %eax
   0x00007f5fb449c0d0 <__syscall_cp_c+46>:    je     0x7f5fb449c0d8
<__syscall_cp_c+54>
   0x00007f5fb449c0d2 <__syscall_cp_c+48>:    cmp    $0x3,%rbx
   0x00007f5fb449c0d6 <__syscall_cp_c+52>:    jne    0x7f5fb449c0df
<__syscall_cp_c+61>
   0x00007f5fb449c0d8 <__syscall_cp_c+54>:    mov    %rbx,%rax
   0x00007f5fb449c0db <__syscall_cp_c+57>:    syscall
=> 0x00007f5fb449c0dd <__syscall_cp_c+59>:    jmp    0x7f5fb449c12b
<__syscall_cp_c+137>
   0x00007f5fb449c0df <__syscall_cp_c+61>:    push   %r9
   0x00007f5fb449c0e1 <__syscall_cp_c+63>:    lea    0x3c(%rbp),%rax
   0x00007f5fb449c0e5 <__syscall_cp_c+67>:    mov    %rsi,%rcx
   0x00007f5fb449c0e8 <__syscall_cp_c+70>:    mov    %r10,%r9
   0x00007f5fb449c0eb <__syscall_cp_c+73>:    push   %r8
   0x00007f5fb449c0ed <__syscall_cp_c+75>:    mov    %rbx,%rsi
   0x00007f5fb449c0f0 <__syscall_cp_c+78>:    mov    %rdx,%r8
   0x00007f5fb449c0f3 <__syscall_cp_c+81>:    mov    %rdi,%rdx
   0x00007f5fb449c0f6 <__syscall_cp_c+84>:    mov    %rax,%rdi
   0x00007f5fb449c0f9 <__syscall_cp_c+87>:    call   0x7f5fb449ef4a
<__syscall_cp_asm>
   0x00007f5fb449c0fe <__syscall_cp_c+92>:    pop    %rsi
   0x00007f5fb449c0ff <__syscall_cp_c+93>:    pop    %rdi
   0x00007f5fb449c100 <__syscall_cp_c+94>:    cmp    $0xfffffffffffffffc,%rax
   0x00007f5fb449c104 <__syscall_cp_c+98>:    jne    0x7f5fb449c12b
<__syscall_cp_c+137>
End of assembler dump.

> (gdb) info reg
>

(gdb) info reg
rax            0xfffffffffffffe00  -512
rbx            0xca                202
rcx            0x7f5fb449c0dd      140049023353053
rdx            0xffffffff80000010  -2147483632
rsi            0x80                128
rdi            0x7f5fb44e0884      140049023633540
rbp            0x7f5fb44e0b48      0x7f5fb44e0b48 <builtin_tls+136>
rsp            0x7ffd06416680      0x7ffd06416680
r8             0x0                 0
r9             0x0                 0
r10            0x0                 0
r11            0x246               582
r12            0x7f5fb44e0884      140049023633540
r13            0x80                128
r14            0x80                128
r15            0x0                 0
rip            0x7f5fb449c0dd      0x7f5fb449c0dd <__syscall_cp_c+59>
eflags         0x246               [ PF ZF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0

> since the address is the first arg to a futex syscall (rdi).
> then you can try to dig around to see where rdi points to
>
> (gdb) x/4wx $rdi-4

(gdb) x/4wx $rdi-4
0x7f5fb44e0880 <init_fini_lock>:    0x00000000    0x80000010
0x00000001    0x00000000

> (gdb) info sym $rdi
>

(gdb) info sym $rdi
init_fini_lock + 4 in section .bss of /lib/ld-musl-x86_64.so.1

Thanks for the reply and instruction.

Carl

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.