You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brpc.apache.org by GitBox <gi...@apache.org> on 2019/07/29 03:58:35 UTC

[GitHub] [incubator-brpc] niukuo opened a new issue #859: 链接jemalloc后可能会有死锁的问题

niukuo opened a new issue #859: 链接jemalloc后可能会有死锁的问题
URL: https://github.com/apache/incubator-brpc/issues/859
 
 
   **Describe the bug (描述bug)**
   jemalloc在申请内存时会有lock/unlock操作,brpc劫持了pthread_mutex_unlock函数后在submit_contention里面又有内存操作,导致出现死锁。
   
   **To Reproduce (复现方法)**
   在内存操作时有小概率出现。
   
   **Expected behavior (期望行为)**
   
   
   **Versions (各种版本)**
   OS: centos 5.7
   Compiler: CC=/usr/local/gcc-4.9.2/bin/gcc CXXFLAGS='-gdwarf-2'
   brpc: 3becc72864e748774f13e4347f98b30585664ea4
   protobuf:2.4.1
   
   **Additional context/screenshots (更多上下文/截图)**
   Thread 10 (Thread 0x7fe2009ff700 (LWP 17081)):
   #0 0x00007fe28a98d51d in __lll_lock_wait () from /lib64/libpthread.so.0
   #1 0x00007fe28a988e51 in _L_lock_1022 () from /lib64/libpthread.so.0
   #2 0x00007fe28a988df2 in pthread_mutex_lock () from /lib64/libpthread.so.0
   #3 0x0000000000ac982b in pthread_mutex_lock ()
   #4 0x000000000050d860 in je_arena_choose_hard ()
   #5 0x0000000000544028 in je_tcache_get_hard ()
   #6 0x000000000051165b in malloc ()
   #7 0x00000000011e97ec in operator new(unsigned long, std::nothrow_t const&) ()
   #8 0x0000000000aca071 in bthread::submit_contention(bthread_contention_site_t const&, long) ()
   #9 0x0000000000ac9bb7 in pthread_mutex_unlock ()
   #10 0x0000000000522750 in je_base_alloc ()
   #11 0x0000000000516f4f in je_arena_new ()
   #12 0x000000000050d7ab in arena_init_locked ()
   #13 0x000000000050d94d in je_arena_choose_hard ()
   #14 0x0000000000544028 in je_tcache_get_hard ()
   #15 0x000000000051165b in malloc ()
   #16 0x00000000011f4cd8 in operator new(unsigned long) ()
   #17 0x0000000000693e5e in std::function ()>::function, std::__future_base::_Result_base::_Deleter>, rocksdb::Status>, void>(std::__future_base::_Task_setter, std::__future_base::_Result_base::_Deleter>, rocksdb::Status>) ()
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org