apache / pulsar-client-python

Apache Pulsar Python client library
https://pulsar.apache.org/
Apache License 2.0
51 stars 39 forks source link

[Bug] python pulsar client create producer thread suspend because of deadlock #129

Open ZHr-UChiHa opened 1 year ago

ZHr-UChiHa commented 1 year ago

Search before asking

Version

2.10.2 pulcar-client-cpp

Minimal reproduce step

When the Python client is repeatedly invoked to create a producer, there is a possibility that a deadlock occurs when the producer is created.

What did you expect to see?

create producer normally

What did you see instead?

#0  0x00007fdda35c7a3c in pthread_cond_wait () from /usr/lib64/libpthread.so.0
apache/pulsar#1  0x00007fdd87654f9c in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/venv/lib/python3.9/site-packages/xgboost/lib/libstdc++.so.6
apache/pulsar#2  0x00007fdd6a0bd3bb in pulsar::Client::createProducer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pulsar::ProducerConfiguration const&, pulsar::Producer&) () from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#3  0x00007fdd6a08e132 in Client_createProducer(pulsar::Client&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pulsar::ProducerConfiguration const&) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#4  0x00007fdd6a090fc1 in boost::python::objects::caller_py_function_impl<boost::python::detail::caller<pulsar::Producer (*)(pulsar::Client&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pulsar::ProducerConfiguration const&), boost::python::default_call_policies, boost::mpl::vector4<pulsar::Producer, pulsar::Client&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pulsar::ProducerConfiguration const&> > >::operator()(_object*, _object*) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#5  0x00007fdd6a250ed5 in boost::python::objects::function::call(_object*, _object*) const ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#6  0x00007fdd6a251058 in boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke(boost::detail::function::function_buffer&) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#7  0x00007fdd6a258f6b in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#8  0x00007fdd6a075fd3 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<PulsarException, void (*)(PulsarException const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(PulsarException const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#9  0x00007fdd6a258d0c in boost::python::handle_exception_impl(boost::function0<void>) ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#10 0x00007fdd6a24fb59 in function_call ()
   from /opt/share/oss/NetEco/NAIEDeployCombAgent/infers/predict/python/venv/bms_battery_pulsar/23.5.0/bms_battery_pulsar/0315fd33a2ab4141a6662b21893c845c/_pulsar.cpython-39-x86_64-linux-gnu.so
apache/pulsar#11 0x000055f7573263da in _PyObject_MakeTpCall ()
apache/pulsar#12 0x000055f75748f235 in ?? ()
apache/pulsar#13 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#14 0x000055f7573ab28e in ?? ()
apache/pulsar#15 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#16 0x000055f75748f1c3 in ?? ()
apache/pulsar#17 0x000055f7573162d8 in _PyEval_EvalFrameDefault ()
apache/pulsar#18 0x000055f75730ff67 in ?? ()
apache/pulsar#19 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#20 0x000055f75731280f in _PyEval_EvalFrameDefault ()
---Type <return> to continue, or q <return> to quit---
apache/pulsar#21 0x000055f7573ab28e in ?? ()
apache/pulsar#22 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#23 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#24 0x000055f75731280f in _PyEval_EvalFrameDefault ()
apache/pulsar#25 0x000055f7573ab28e in ?? ()
apache/pulsar#26 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#27 0x000055f75748f1c3 in ?? ()
apache/pulsar#28 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#29 0x000055f75730ff67 in ?? ()
apache/pulsar#30 0x000055f75748f1c3 in ?? ()
apache/pulsar#31 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#32 0x000055f75730ff67 in ?? ()
apache/pulsar#33 0x000055f75748f1c3 in ?? ()
apache/pulsar#34 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#35 0x000055f75730ff67 in ?? ()
apache/pulsar#36 0x000055f75748f0a6 in ?? ()
apache/pulsar#37 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#38 0x000055f75731280f in _PyEval_EvalFrameDefault ()
apache/pulsar#39 0x000055f7573ab28e in ?? ()
apache/pulsar#40 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#41 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#42 0x000055f75731280f in _PyEval_EvalFrameDefault ()
apache/pulsar#43 0x000055f75730ff67 in ?? ()
apache/pulsar#44 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#45 0x000055f7573ab28e in ?? ()
apache/pulsar#46 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#47 0x000055f75748f1c3 in ?? ()
apache/pulsar#48 0x000055f7573162d8 in _PyEval_EvalFrameDefault ()
apache/pulsar#49 0x000055f75730ff67 in ?? ()
apache/pulsar#50 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#51 0x000055f75730ff67 in ?? ()
apache/pulsar#52 0x000055f757326522 in _PyObject_FastCallDictTstate ()
apache/pulsar#53 0x000055f7573267a3 in _PyObject_Call_Prepend ()
apache/pulsar#54 0x000055f757367cec in ?? ()
apache/pulsar#55 0x000055f7573635ec in ?? ()
---Type <return> to continue, or q <return> to quit---
apache/pulsar#56 0x000055f7573263da in _PyObject_MakeTpCall ()
apache/pulsar#57 0x000055f75731761e in _PyEval_EvalFrameDefault ()
apache/pulsar#58 0x000055f75730ff67 in ?? ()
apache/pulsar#59 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#60 0x000055f75730ff67 in ?? ()
apache/pulsar#61 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#62 0x000055f75730ff67 in ?? ()
apache/pulsar#63 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#64 0x000055f75730ff67 in ?? ()
apache/pulsar#65 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#66 0x000055f7573ab28e in ?? ()
apache/pulsar#67 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#68 0x000055f7573265ad in _PyObject_FastCallDictTstate ()
apache/pulsar#69 0x000055f7573267a3 in _PyObject_Call_Prepend ()
apache/pulsar#70 0x000055f757367cec in ?? ()
apache/pulsar#71 0x000055f7573635ec in ?? ()
apache/pulsar#72 0x000055f7573263da in _PyObject_MakeTpCall ()
apache/pulsar#73 0x000055f757316c3a in _PyEval_EvalFrameDefault ()
apache/pulsar#74 0x000055f7573ab28e in ?? ()
apache/pulsar#75 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#76 0x000055f75748f1c3 in ?? ()
apache/pulsar#77 0x000055f757316251 in _PyEval_EvalFrameDefault ()
apache/pulsar#78 0x000055f7573ab28e in ?? ()
apache/pulsar#79 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#80 0x000055f75748f1c3 in ?? ()
apache/pulsar#81 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#82 0x000055f7573ab28e in ?? ()
apache/pulsar#83 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#84 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#85 0x000055f75730ff67 in ?? ()
apache/pulsar#86 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#87 0x000055f75730ff67 in ?? ()
apache/pulsar#88 0x000055f75748f0a6 in ?? ()
apache/pulsar#89 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#90 0x000055f75731280f in _PyEval_EvalFrameDefault ()
---Type <return> to continue, or q <return> to quit---
apache/pulsar#91 0x000055f75730ff67 in ?? ()
apache/pulsar#92 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#93 0x000055f7573ab28e in ?? ()
apache/pulsar#94 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#95 0x000055f75748f1c3 in ?? ()
apache/pulsar#96 0x000055f7573162d8 in _PyEval_EvalFrameDefault ()
apache/pulsar#97 0x000055f75730ff67 in ?? ()
apache/pulsar#98 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#99 0x000055f75730ff67 in ?? ()
apache/pulsar#100 0x000055f757326522 in _PyObject_FastCallDictTstate ()
apache/pulsar#101 0x000055f7573267a3 in _PyObject_Call_Prepend ()
apache/pulsar#102 0x000055f757367cec in ?? ()
apache/pulsar#103 0x000055f7573635ec in ?? ()
apache/pulsar#104 0x000055f7573263da in _PyObject_MakeTpCall ()
apache/pulsar#105 0x000055f75731761e in _PyEval_EvalFrameDefault ()
apache/pulsar#106 0x000055f75730ff67 in ?? ()
apache/pulsar#107 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#108 0x000055f75730ff67 in ?? ()
apache/pulsar#109 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#110 0x000055f75730ff67 in ?? ()
apache/pulsar#111 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#112 0x000055f75730ff67 in ?? ()
apache/pulsar#113 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#114 0x000055f75730ff67 in ?? ()
apache/pulsar#115 0x000055f757325f22 in PyVectorcall_Call ()
apache/pulsar#116 0x000055f75731280f in _PyEval_EvalFrameDefault ()
apache/pulsar#117 0x000055f75730ff67 in ?? ()
apache/pulsar#118 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#119 0x000055f7573ab28e in ?? ()
apache/pulsar#120 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#121 0x000055f75748f1c3 in ?? ()
apache/pulsar#122 0x000055f7573162d8 in _PyEval_EvalFrameDefault ()
apache/pulsar#123 0x000055f75730ff67 in ?? ()
apache/pulsar#124 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#125 0x000055f75730ff67 in ?? ()
---Type <return> to continue, or q <return> to quit---
apache/pulsar#126 0x000055f757326522 in _PyObject_FastCallDictTstate ()
apache/pulsar#127 0x000055f7573267a3 in _PyObject_Call_Prepend ()
apache/pulsar#128 0x000055f757367cec in ?? ()
apache/pulsar#129 0x000055f7573635ec in ?? ()
apache/pulsar#130 0x000055f7573263da in _PyObject_MakeTpCall ()
apache/pulsar#131 0x000055f75731761e in _PyEval_EvalFrameDefault ()
apache/pulsar#132 0x000055f75730ff67 in ?? ()
apache/pulsar#133 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#134 0x000055f75730ff67 in ?? ()
apache/pulsar#135 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#136 0x000055f75730ff67 in ?? ()
apache/pulsar#137 0x000055f757316437 in _PyEval_EvalFrameDefault ()
apache/pulsar#138 0x000055f75730ff67 in ?? ()
apache/pulsar#139 0x000055f757316251 in _PyEval_EvalFrameDefault ()
apache/pulsar#140 0x000055f75730ff67 in ?? ()
apache/pulsar#141 0x000055f75748f1c3 in ?? ()
apache/pulsar#142 0x000055f7573177ee in _PyEval_EvalFrameDefault ()
apache/pulsar#143 0x000055f7573ab28e in ?? ()
apache/pulsar#144 0x000055f7573261c1 in _PyFunction_Vectorcall ()
apache/pulsar#145 0x000055f7573162d8 in _PyEval_EvalFrameDefault ()
apache/pulsar#146 0x000055f75730ff67 in ?? ()
apache/pulsar#147 0x000055f757316251 in _PyEval_EvalFrameDefault ()
apache/pulsar#148 0x000055f7573ab28e in ?? ()
apache/pulsar#149 0x000055f7573ab622 in _PyEval_EvalCodeWithName ()
apache/pulsar#150 0x000055f7573ab66e in PyEval_EvalCodeEx ()
apache/pulsar#151 0x000055f7573ab69b in PyEval_EvalCode ()
apache/pulsar#152 0x000055f7573dcda9 in ?? ()
apache/pulsar#153 0x000055f7573dfd47 in PyRun_SimpleFileExFlags ()
apache/pulsar#154 0x000055f75731b0a8 in Py_RunMain ()
apache/pulsar#155 0x000055f75731b5b9 in Py_BytesMain ()
apache/pulsar#156 0x00007fdda3297c87 in __libc_start_main () from /usr/lib64/libc.so.6
apache/pulsar#157 0x000055f75731a22c in _start ()

Anything else?

No response

Are you willing to submit a PR?

BewareMyPower commented 1 year ago

Please describe it specifically in the title. Is there any reproduce code? Or could you try 3.1.0 or the latest 3.2.0 here?