小编bob*_*oby的帖子

死锁(fork + malloc)libc(glibc-2.17、glibc-2.23)

我遇到了一个非常烦人的问题:我有一个程序在开始时创建一个线程,该线程将在执行期间启动其他内容(fork() 紧随其后的是 execve())。

这是我的程序达到(我认为)死锁时两个线程的 bt:

线程 2 (LWP 8839):

#0 0x00007ffff6cdf736 在 __libc_fork () 中 ../sysdeps/nptl/fork.c:125

#1 _IO_new_proc_open 中的 0x00007ffff6c8f8c0 (fp=fp@entry=0x7ffff00031d0, command=command@entry=0x7ffff6c26e20 "ps -u brejon | grep \"cvc\"

#2 _IO_new_popen 中的 0x00007ffff6c8fbcc (命令 = 0x7ffff6c26e20 "ps -u user| grep \"cvc\" | wc -l", mode=0x42c7fd "r") at iopopen.c:296

#3-4...

#5 0x00007ffff74d9434 在 pthread_create.c:333 处的 start_thread (arg=0x7ffff6c27700)

#6 0x00007ffff6d0fcfd 在克隆()中位于../sysdeps/unix/sysv/linux/x86_64/clone.S:109

线程 1 (LWP 8835):

#0 __lll_lock_wait_private () 位于 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95

malloc_atfork 中的 #1 0x00007ffff6ca0ad9 (sz=140737337120848,调用者=) at arena.c:179

#2 0x00007ffff6c8d875 在 __GI__IO_file_doallocate (fp=0x17a72230) …

c deadlock libc

3
推荐指数
1
解决办法
1347
查看次数

标签 统计

c ×1

deadlock ×1

libc ×1