daming6 commented on issue #3288:
URL: https://github.com/apache/brpc/issues/3288#issuecomment-4417134632
> 会不会是rdma_performance bvar全局变量生命周期的问题?能用 gdb 看看堆栈吗?
这个偶发问题复现概率有点低,目前手动gdb能看不core dumped时调用make_shared()代码中有3处,具体gdb打断点调试如下:
(gdb) c
Continuing.
[New Thread 0x4000037cfdc0 (LWP 2118472)]
Thread 1 "client" hit Breakpoint 1.5,
std::make_shared<bvar::detail::AgentCombiner<bvar::Stat, unsigned long,
bvar::IntRecorder::AddToStat>>() () at
/usr/include/c++/12/bits/shared_ptr.h:1010
1010 std::forward<_Args>(__args)...);
(gdb) bt
#0 std::make_shared<bvar::detail::AgentCombiner<bvar::Stat, unsigned long,
bvar::IntRecorder::AddToStat>>() () at
/usr/include/c++/12/bits/shared_ptr.h:1010
#1 bvar::IntRecorder::IntRecorder (this=0x431090 <g_latency_recorder>) at
./src/bvar/recorder.h:127
#2 bvar::detail::LatencyRecorderBase::LatencyRecorderBase
(this=this@entry=0x431090 <g_latency_recorder>,
window_size=window_size@entry=-1) at src/bvar/latency_recorder.cpp:170
#3 0x0000000000414c5c in bvar::LatencyRecorder::LatencyRecorder
(this=0x431090 <g_latency_recorder>, prefix=...) at
../../output/include/bvar/latency_recorder.h:80
#4 0x000000000040a490 in __static_initialization_and_destruction_0
(__initialize_p=1, __priority=65535) at client.cpp:50
#5 _GLOBAL__sub_I_client.cpp(void) () at client.cpp:312
#6 0x0000400002f27828 in __libc_start_main () from /usr/lib64/libc.so.6
#7 0x000000000040a730 in _start ()
(gdb) c
Continuing.
Thread 1 "client" hit Breakpoint 1.6,
std::make_shared<bvar::detail::AgentCombiner<long, long,
bvar::detail::MaxTo<long> >, long&, long&, bvar::detail::MaxTo<long> const&> ()
at /usr/include/c++/12/bits/shared_ptr.h:1010
1010 std::forward<_Args>(__args)...);
(gdb) bt
#0 std::make_shared<bvar::detail::AgentCombiner<long, long,
bvar::detail::MaxTo<long> >, long&, long&, bvar::detail::MaxTo<long> const&> ()
at /usr/include/c++/12/bits/shared_ptr.h:1010
#1 bvar::Reducer<long, bvar::detail::MaxTo<long>,
bvar::detail::VoidOp>::Reducer (inv_op=..., op=..., identity=0, this=0x4310f0
<g_latency_recorder+96>) at ./src/bvar/reducer.h:204
#2 bvar::Maxer<long, void>::Maxer (default_value=0, this=0x4310f0
<g_latency_recorder+96>) at ./src/bvar/reducer.h:412
#3 bvar::detail::LatencyRecorderBase::LatencyRecorderBase
(this=this@entry=0x431090 <g_latency_recorder>,
window_size=window_size@entry=-1) at src/bvar/latency_recorder.cpp:158
#4 0x0000000000414c5c in bvar::LatencyRecorder::LatencyRecorder
(this=0x431090 <g_latency_recorder>, prefix=...) at
../../output/include/bvar/latency_recorder.h:80
#5 0x000000000040a490 in __static_initialization_and_destruction_0
(__initialize_p=1, __priority=65535) at client.cpp:50
#6 _GLOBAL__sub_I_client.cpp(void) () at client.cpp:312
#7 0x0000400002f27828 in __libc_start_main () from /usr/lib64/libc.so.6
#8 0x000000000040a730 in _start ()
(gdb) c
Continuing.
Thread 1 "client" hit Breakpoint 1.7,
std::make_shared<bvar::detail::AgentCombiner<bvar::detail::PercentileSamples<254ul>,
bvar::detail::PercentileSamples<30ul>,
bvar::detail::detail::AddPercentileSamples>>() ()
at /usr/include/c++/12/bits/shared_ptr.h:1010
1010 std::forward<_Args>(__args)...);
(gdb) bt
#0
std::make_shared<bvar::detail::AgentCombiner<bvar::detail::PercentileSamples<254ul>,
bvar::detail::PercentileSamples<30ul>,
bvar::detail::detail::AddPercentileSamples>>() ()
at /usr/include/c++/12/bits/shared_ptr.h:1010
#1 bvar::detail::Percentile::Percentile (this=this@entry=0x431140
<g_latency_recorder+176>) at src/bvar/detail/percentile.cpp:89
#2 0x000040000063d3dc in
bvar::detail::LatencyRecorderBase::LatencyRecorderBase
(this=this@entry=0x431090 <g_latency_recorder>,
window_size=window_size@entry=-1) at src/bvar/latency_recorder.cpp:170
#3 0x0000000000414c5c in bvar::LatencyRecorder::LatencyRecorder
(this=0x431090 <g_latency_recorder>, prefix=...) at
../../output/include/bvar/latency_recorder.h:80
#4 0x000000000040a490 in __static_initialization_and_destruction_0
(__initialize_p=1, __priority=65535) at client.cpp:50
#5 _GLOBAL__sub_I_client.cpp(void) () at client.cpp:312
#6 0x0000400002f27828 in __libc_start_main () from /usr/lib64/libc.so.6
#7 0x000000000040a730 in _start ()
然后看代码Reducer对象/IntRecorder对象/Percentile对象对应文件中都有operator<<函数,operator<<函数调用_combiner->get_or_create_tls_agent()
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]