两次fork,第二次fork得父进程不退出
Describe the bug 两次fork,第二次fork得父进程不退出
To Reproduce 连接brpc得程序,通过两次fork来实现daemonize,多次运行之后可以复现
Expected behavior
父进程能够正常退出,
Versions OS: Ubuntu 22.04 Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0 brpc: 1.15.0 protobuf: tag: v3.25.5
Additional context/screenshots
` [New LWP 437932] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 0x00007faab40873f0 in __lll_lock_wait () from /lib64/libc.so.6
Thread 2 (Thread 0x7faab3e79640 (LWP 437932) "bvar_sampler"): #0 0x00007faab40d4655 in clock_nanosleep@GLIBC_2.2.5 () from /lib64/libc.so.6 #1 0x00007faab40d9247 in nanosleep () from /lib64/libc.so.6 #2 0x00007faab41050f9 in usleep () from /lib64/libc.so.6 #3 0x00000000015f98ba in bvar::detail::SamplerCollector::run (this=this@entry=0x4d270f0) at /dingo-eureka/brpc/src/bvar/detail/sampler.cpp:183 #4 0x00000000015fb7f0 in bvar::detail::SamplerCollector::sampling_thread (arg=0x4d270f0) at /dingo-eureka/brpc/src/bvar/detail/sampler.cpp:113 #5 0x00007faab408a19a in start_thread () from /lib64/libc.so.6 #6 0x00007faab410f210 in clone3 () from /lib64/libc.so.6
Thread 1 (Thread 0x7faab4227280 (LWP 437931) "dingo-client"): #0 0x00007faab40873f0 in __lll_lock_wait () from /lib64/libc.so.6 #1 0x00007faab408d582 in pthread_mutex_lock@@GLIBC_2.2.5 () from /lib64/libc.so.6 #2 0x00000000015f9546 in butil::Mutex::lock (this=0x4f5c470) at /dingo-eureka/brpc/src/butil/synchronization/lock.h:74 #3 bvar::detail::Sampler::destroy (this=0x4f5c450) at /dingo-eureka/brpc/src/bvar/detail/sampler.cpp:214 #4 0x00000000005616eb in bvar::PassiveStatus::~PassiveStatus (this=0x3f22c00 bvar::g_size, __in_chrg=) at /root/.local/dingo-eureka/include/bvar/passive_status.h:112 #5 0x00007faab40412dd in __run_exit_handlers () from /lib64/libc.so.6 #6 0x00007faab4041430 in exit () from /lib64/libc.so.6 #7 0x0000000000555bef in dingofs::utils::Daemonize (chdir_root=, close_fds=) at /opt/dingofs/src/utils/daemonize.h:34 #8 0x0000000000521fb6 in main (argc=, argv=) at /opt/dingofs/src/client/main.cc:195 `
Source: apache/brpc