Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2441

[cpp] Crash upon reconnect when user passed empty vector to connection_options::failover_urls

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-c-0.36.0
    • proton-c-0.37.0
    • cpp-binding
    • None

    Description

      $ 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
      

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            DreamPearl Rakhi Kumari
            DreamPearl Rakhi Kumari
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment