Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dead lock when using braft together #2277

Open
lilothar opened this issue Jun 15, 2023 · 1 comment
Open

dead lock when using braft together #2277

lilothar opened this issue Jun 15, 2023 · 1 comment

Comments

@lilothar
Copy link

Describe the bug (描述bug)
用braft的example atomic做测试,将atomic的 Atomic类单独实现,编译成一个.so,再讲so链接到server上,启动server会发生死锁,一直cpu 100%将分开的类Atomic的cpp文件与server文件一起编译,可以正常启动,gdb查看了一下调用栈,在bthread中死锁了,使用的版本brpc1.5,brpc1.0左右,用brpc + braft做过一些应用,无论一起编译还是分开编译,都可以正常运行,记忆里1.0之后对协程锁有过升级,是否是升级引入的新问题?
#0 0x000055e84718fc20 in pthread_once@plt ()
#1 0x000055e8472c158f in bthread::first_sys_pthread_mutex_lock (mutex=0x55e8497432c8) at /src/bthread/mutex.cpp:431
#2 0x00007f9d4c2ea999 in google::protobuf::internal::OnShutdownRun(void ()(void const), void const*) () from /home/ubuntu/miniconda3/envs/ea-dev/lib/libprotobuf.so.31
#3 0x00007f9d4c2e2eef in google::protobuf::internal::InitProtobufDefaultsSlow() () from /lib/libprotobuf.so.31
#4 0x00007f9d4c382de6 in google::protobuf::(anonymous namespace)::AddDescriptorsImpl(google::protobuf::internal::DescriptorTable const*) [clone .constprop.0] () from /home/ubuntu/miniconda3/envs/ea-dev/lib/libprotobuf.so.31
#5 0x00007f9d4c91447e in call_init (l=, argc=argc@entry=7, argv=argv@entry=0x7ffca51ad418, env=env@entry=0x7ffca51ad458) at ./elf/dl-init.c:70
#6 0x00007f9d4c914568 in call_init (env=0x7ffca51ad458, argv=0x7ffca51ad418, argc=7, l=) at ./elf/dl-init.c:33
#7 _dl_init (main_map=0x7f9d4c9492e0, argc=7, argv=0x7ffca51ad418, env=0x7ffca51ad458) at ./elf/dl-init.c:117
#8 0x00007f9d4c92e2ea in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#9 0x0000000000000007 in ?? ()
#10 0x00007ffca51af018 in ?? ()
#11 0x00007ffca51af021 in ?? ()
#12 0x00007ffca51af039 in ?? ()
#13 0x00007ffca51af052 in ?? ()
#14 0x00007ffca51af071 in ?? ()
#15 0x00007ffca51af081 in ?? ()

To Reproduce (复现方法)
必现

Expected behavior (期望行为)
正常运行

Versions (各种版本)
OS: ubuntu
Compiler: gcc
brpc:1.5
protobuf:master

Additional context/screenshots (更多上下文/截图)

@lorinlee
Copy link
Contributor

可以按这个issue里的试下把contention profile注释掉吗? #2266

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants