[ 
https://issues.apache.org/jira/browse/PROTON-2441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jiri Daněk updated PROTON-2441:
-------------------------------
    Description: 
{noformat}
$ gdb ./reconnect_client

(gdb) run amqp://127.0.0.1 examples 1
Starting program: 
/home/rkumari/repos/qpid-proton/build/cpp/examples/reconnect_client 
amqp://127.0.0.1 examples 1
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.33-5.fc34.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Retries: 0 Delay: 0 Trying: NO URL@0 SZ: 0
 *Program received signal SIGSEGV, Segmentation fault.*
 0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
std::operator<< <char, std::char_traits<char>, std::allocator<char> 
>(std::basic_ostream<char, std::char_traits<char> >&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) () from /lib64/libstdc++.so.6

(gdb) backtrace
 #0 0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
std::operator<< <char, std::char_traits<char>, std::allocator<char> 
>(std::basic_ostream<char, std::char_traits<char> >&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) () from /lib64/libstdc++.so.6
 #1 0x00007ffff7e984b5 in proton::container::impl::reconnect (this=0x43c640, 
pnc=0x43df10) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:241
 #2 0x00007ffff7ead66d in std::__invoke_impl<void, void 
(proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
pn_connection_t*&> (__f=
 @0x446060: (void (proton::container::impl::*)(proton::container::impl * const, 
pn_connection_t *)) 0x7ffff7e97ed4 
<proton::container::impl::reconnect(pn_connection_t*)>, __t=@0x446078: 0x43c640)
 at /usr/include/c++/11/bits/invoke.h:74
 #3 0x00007ffff7ead1d6 in std::__invoke<void 
(proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
pn_connection_t*&> (__fn=
 @0x446060: (void (proton::container::impl::*)(proton::container::impl * const, 
pn_connection_t *)) 0x7ffff7e97ed4 
<proton::container::impl::reconnect(pn_connection_t*)>) at 
/usr/include/c++/11/bits/invoke.h:96
 #4 0x00007ffff7eacd73 in std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, 
std::_Index_tuple<0ul, 1ul>) (this=0x446060, __args=...)
 at /usr/include/c++/11/functional:420
 #5 0x00007ffff7eac7a6 in std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>::operator()<, void>() (this=0x446060) at 
/usr/include/c++/11/functional:503
 #6 0x00007ffff7eaba21 in std::__invoke_impl<void, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&>(std::__invoke_other, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&) (__f=...) at 
/usr/include/c++/11/bits/invoke.h:61
 #7 0x00007ffff7eaa497 in std::__invoke_r<void, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&>(std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&) (__fn=...) at 
/usr/include/c++/11/bits/invoke.h:154
 #8 0x00007ffff7ea8cdf in std::_Function_handler<void (), std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)> >::_M_invoke(std::_Any_data const&) 
(__functor=...)
 at /usr/include/c++/11/bits/std_function.h:291
 #9 0x00007ffff7e9f12e in std::function<void ()>::operator()() const 
(this=0x445fa8) at /usr/include/c++/11/bits/std_function.h:560
 #10 0x00007ffff7e96050 in proton::internal::v11::work::operator() 
(this=0x445fa8) at 
/home/rkumari/repos/qpid-proton/cpp/include/proton/work_queue.hpp:283
 #11 0x00007ffff7e9ba47 in proton::container::impl::run_timer_jobs 
(this=0x43c640) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:536
 #12 0x00007ffff7e9be69 in proton::container::impl::dispatch (this=0x43c640, 
event=0x43f160) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:567
 #13 0x00007ffff7e9db82 in proton::container::impl::thread (this=0x43c640) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:755
 #14 0x00007ffff7e9e8cc in proton::container::impl::run (this=0x43c640, 
threads=1) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:801
 #15 0x00007ffff7e93bf3 in proton::container::run (this=0x7fffffffdf28) at 
/home/rkumari/repos/qpid-proton/cpp/src/container.cpp:92
 #16 0x000000000040ce2b in main (argc=4, argv=0x7fffffffe058) at 
/home/rkumari/repos/qpid-proton/cpp/examples/reconnect_client.cpp:135
{noformat}

  was:
```

$ gdb ./reconnect_client

(gdb) run amqp://127.0.0.1 examples 1
Starting program: 
/home/rkumari/repos/qpid-proton/build/cpp/examples/reconnect_client 
amqp://127.0.0.1 examples 1
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.33-5.fc34.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Retries: 0 Delay: 0 Trying: NO URL@0 SZ: 0
 *Program received signal SIGSEGV, Segmentation fault.*
 0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
std::operator<< <char, std::char_traits<char>, std::allocator<char> 
>(std::basic_ostream<char, std::char_traits<char> >&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) () from /lib64/libstdc++.so.6

(gdb) backtrace
 #0 0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
std::operator<< <char, std::char_traits<char>, std::allocator<char> 
>(std::basic_ostream<char, std::char_traits<char> >&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) () from /lib64/libstdc++.so.6
 #1 0x00007ffff7e984b5 in proton::container::impl::reconnect (this=0x43c640, 
pnc=0x43df10) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:241
 #2 0x00007ffff7ead66d in std::__invoke_impl<void, void 
(proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
pn_connection_t*&> (__f=
 @0x446060: (void (proton::container::impl::*)(proton::container::impl * const, 
pn_connection_t *)) 0x7ffff7e97ed4 
<proton::container::impl::reconnect(pn_connection_t*)>, __t=@0x446078: 0x43c640)
 at /usr/include/c++/11/bits/invoke.h:74
 #3 0x00007ffff7ead1d6 in std::__invoke<void 
(proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
pn_connection_t*&> (__fn=
 @0x446060: (void (proton::container::impl::*)(proton::container::impl * const, 
pn_connection_t *)) 0x7ffff7e97ed4 
<proton::container::impl::reconnect(pn_connection_t*)>) at 
/usr/include/c++/11/bits/invoke.h:96
 #4 0x00007ffff7eacd73 in std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, 
std::_Index_tuple<0ul, 1ul>) (this=0x446060, __args=...)
 at /usr/include/c++/11/functional:420
 #5 0x00007ffff7eac7a6 in std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>::operator()<, void>() (this=0x446060) at 
/usr/include/c++/11/functional:503
 #6 0x00007ffff7eaba21 in std::__invoke_impl<void, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&>(std::__invoke_other, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&) (__f=...) at 
/usr/include/c++/11/bits/invoke.h:61
 #7 0x00007ffff7eaa497 in std::__invoke_r<void, std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&>(std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)>&) (__fn=...) at 
/usr/include/c++/11/bits/invoke.h:154
 #8 0x00007ffff7ea8cdf in std::_Function_handler<void (), std::_Bind<void 
(proton::container::impl::*(proton::container::impl*, 
pn_connection_t*))(pn_connection_t*)> >::_M_invoke(std::_Any_data const&) 
(__functor=...)
 at /usr/include/c++/11/bits/std_function.h:291
 #9 0x00007ffff7e9f12e in std::function<void ()>::operator()() const 
(this=0x445fa8) at /usr/include/c++/11/bits/std_function.h:560
 #10 0x00007ffff7e96050 in proton::internal::v11::work::operator() 
(this=0x445fa8) at 
/home/rkumari/repos/qpid-proton/cpp/include/proton/work_queue.hpp:283
 #11 0x00007ffff7e9ba47 in proton::container::impl::run_timer_jobs 
(this=0x43c640) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:536
 #12 0x00007ffff7e9be69 in proton::container::impl::dispatch (this=0x43c640, 
event=0x43f160) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:567
 #13 0x00007ffff7e9db82 in proton::container::impl::thread (this=0x43c640) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:755
 #14 0x00007ffff7e9e8cc in proton::container::impl::run (this=0x43c640, 
threads=1) at 
/home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:801
 #15 0x00007ffff7e93bf3 in proton::container::run (this=0x7fffffffdf28) at 
/home/rkumari/repos/qpid-proton/cpp/src/container.cpp:92
 #16 0x000000000040ce2b in main (argc=4, argv=0x7fffffffe058) at 
/home/rkumari/repos/qpid-proton/cpp/examples/reconnect_client.cpp:135
 ```


> [cpp] Crash upon reconnect when user passed empty vector to 
> connection_options::failover_urls
> ---------------------------------------------------------------------------------------------
>
>                 Key: PROTON-2441
>                 URL: https://issues.apache.org/jira/browse/PROTON-2441
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: cpp-binding
>         Environment: Linux fedora 5.11.12-300.fc34.x86_64 #1 SMP Wed Apr 7 
> 16:31:13 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
> NAME=Fedora
> VERSION="34 (Workstation Edition)"
> ID=fedora
> VERSION_ID=34
> VERSION_CODENAME=""
> PLATFORM_ID="platform:f34"
>            Reporter: Rakhi Kumari
>            Assignee: Rakhi Kumari
>            Priority: Major
>
> {noformat}
> $ gdb ./reconnect_client
> (gdb) run amqp://127.0.0.1 examples 1
> Starting program: 
> /home/rkumari/repos/qpid-proton/build/cpp/examples/reconnect_client 
> amqp://127.0.0.1 examples 1
> Missing separate debuginfos, use: dnf debuginfo-install 
> glibc-2.33-5.fc34.x86_64
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> Retries: 0 Delay: 0 Trying: NO URL@0 SZ: 0
>  *Program received signal SIGSEGV, Segmentation fault.*
>  0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
> std::operator<< <char, std::char_traits<char>, std::allocator<char> 
> >(std::basic_ostream<char, std::char_traits<char> >&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&) () from /lib64/libstdc++.so.6
> (gdb) backtrace
>  #0 0x00007ffff7cf1104 in std::basic_ostream<char, std::char_traits<char> >& 
> std::operator<< <char, std::char_traits<char>, std::allocator<char> 
> >(std::basic_ostream<char, std::char_traits<char> >&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&) () from /lib64/libstdc++.so.6
>  #1 0x00007ffff7e984b5 in proton::container::impl::reconnect (this=0x43c640, 
> pnc=0x43df10) at 
> /home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:241
>  #2 0x00007ffff7ead66d in std::__invoke_impl<void, void 
> (proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
> pn_connection_t*&> (__f=
>  @0x446060: (void (proton::container::impl::*)(proton::container::impl * 
> const, pn_connection_t *)) 0x7ffff7e97ed4 
> <proton::container::impl::reconnect(pn_connection_t*)>, __t=@0x446078: 
> 0x43c640)
>  at /usr/include/c++/11/bits/invoke.h:74
>  #3 0x00007ffff7ead1d6 in std::__invoke<void 
> (proton::container::impl::*&)(pn_connection_t*), proton::container::impl*&, 
> pn_connection_t*&> (__fn=
>  @0x446060: (void (proton::container::impl::*)(proton::container::impl * 
> const, pn_connection_t *)) 0x7ffff7e97ed4 
> <proton::container::impl::reconnect(pn_connection_t*)>) at 
> /usr/include/c++/11/bits/invoke.h:96
>  #4 0x00007ffff7eacd73 in std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>::__call<void, , 0ul, 
> 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (this=0x446060, __args=...)
>  at /usr/include/c++/11/functional:420
>  #5 0x00007ffff7eac7a6 in std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>::operator()<, void>() (this=0x446060) 
> at /usr/include/c++/11/functional:503
>  #6 0x00007ffff7eaba21 in std::__invoke_impl<void, std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>&>(std::__invoke_other, std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>&) (__f=...) at 
> /usr/include/c++/11/bits/invoke.h:61
>  #7 0x00007ffff7eaa497 in std::__invoke_r<void, std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>&>(std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)>&) (__fn=...) at 
> /usr/include/c++/11/bits/invoke.h:154
>  #8 0x00007ffff7ea8cdf in std::_Function_handler<void (), std::_Bind<void 
> (proton::container::impl::*(proton::container::impl*, 
> pn_connection_t*))(pn_connection_t*)> >::_M_invoke(std::_Any_data const&) 
> (__functor=...)
>  at /usr/include/c++/11/bits/std_function.h:291
>  #9 0x00007ffff7e9f12e in std::function<void ()>::operator()() const 
> (this=0x445fa8) at /usr/include/c++/11/bits/std_function.h:560
>  #10 0x00007ffff7e96050 in proton::internal::v11::work::operator() 
> (this=0x445fa8) at 
> /home/rkumari/repos/qpid-proton/cpp/include/proton/work_queue.hpp:283
>  #11 0x00007ffff7e9ba47 in proton::container::impl::run_timer_jobs 
> (this=0x43c640) at 
> /home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:536
>  #12 0x00007ffff7e9be69 in proton::container::impl::dispatch (this=0x43c640, 
> event=0x43f160) at 
> /home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:567
>  #13 0x00007ffff7e9db82 in proton::container::impl::thread (this=0x43c640) at 
> /home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:755
>  #14 0x00007ffff7e9e8cc in proton::container::impl::run (this=0x43c640, 
> threads=1) at 
> /home/rkumari/repos/qpid-proton/cpp/src/proactor_container_impl.cpp:801
>  #15 0x00007ffff7e93bf3 in proton::container::run (this=0x7fffffffdf28) at 
> /home/rkumari/repos/qpid-proton/cpp/src/container.cpp:92
>  #16 0x000000000040ce2b in main (argc=4, argv=0x7fffffffe058) at 
> /home/rkumari/repos/qpid-proton/cpp/examples/reconnect_client.cpp:135
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to