qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Moravec (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-7786) qpidd segfaults during startup when SSL certificate cant be read
Date Thu, 18 May 2017 10:15:04 GMT

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

Pavel Moravec updated QPID-7786:
--------------------------------
    Summary: qpidd segfaults during startup when SSL certificate cant be read  (was: [qpid-cpp]
qpidd segfaults during startup when SSL certificate cant be read)

> qpidd segfaults during startup when SSL certificate cant be read
> ----------------------------------------------------------------
>
>                 Key: QPID-7786
>                 URL: https://issues.apache.org/jira/browse/QPID-7786
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>            Reporter: Pavel Moravec
>            Assignee: Pavel Moravec
>
> When qpidd can't read NSS password file, or when SSL certificate name is not found /
readable in the NSS database, qpidd segfaults at startup with backtrace:
> {code}
> (gdb) bt
> #0  0x00007f3010a4f704 in qpid::sys::SocketAddress::nextAddress (this=this@entry=0x7ffe36dc0570)
at /usr/src/debug/qpid-cpp-0.34/src/qpid/sys/posix/SocketAddress.cpp:321
> #1  0x00007f301113ec17 in qpid::sys::SocketAcceptor::listen (this=this@entry=0x29bf500,
interfaces=..., port=port@entry=5671, backlog=backlog@entry=10, factory=...)
>     at /usr/src/debug/qpid-cpp-0.34/src/qpid/sys/SocketTransport.cpp:150
> #2  0x00007f3010fdfdbb in qpid::sys::SslPlugin::initialize (this=0x7f3011407180 <qpid::sys::sslPlugin>,
target=...) at /usr/src/debug/qpid-cpp-0.34/src/qpid/sys/SslPlugin.cpp:126
> #3  0x00007f3010a876af in operator() (a1=..., p=<optimized out>, this=<synthetic
pointer>) at /usr/include/boost/bind/mem_fn_template.hpp:165
> #4  operator()<boost::_mfi::mf1<void, qpid::Plugin, qpid::Plugin::Target&>,
boost::_bi::list1<qpid::Plugin* const&> > (a=<synthetic pointer>, f=<synthetic
pointer>, 
>     this=<synthetic pointer>) at /usr/include/boost/bind/bind.hpp:313
> #5  operator()<qpid::Plugin*> (a1=@0x2488ce0: 0x7f3011407180 <qpid::sys::sslPlugin>,
this=<synthetic pointer>) at /usr/include/boost/bind/bind_template.hpp:47
> #6  for_each<__gnu_cxx::__normal_iterator<qpid::Plugin* const*, std::vector<qpid::Plugin*>
>, boost::_bi::bind_t<void, boost::_mfi::mf1<void, qpid::Plugin, qpid::Plugin::Target&>,
boost::_bi::list2<boost::arg<1>, boost::reference_wrapper<qpid::Plugin::Target>
> > > (__f=..., __last=..., __first=<qpid::sys::sslPlugin>) at /usr/include/c++/4.8.2/bits/stl_algo.h:4417
> #7  qpid::(anonymous namespace)::each_plugin<boost::_bi::bind_t<void, boost::_mfi::mf1<void,
qpid::Plugin, qpid::Plugin::Target&>, boost::_bi::list2<boost::arg<1>, boost::reference_wrapper<qpid::Plugin::Target>
> > > (f=...) at /usr/src/debug/qpid-cpp-0.34/src/qpid/Plugin.cpp:73
> #8  0x00007f3010a877a2 in qpid::Plugin::initializeAll (t=...) at /usr/src/debug/qpid-cpp-0.34/src/qpid/Plugin.cpp:91
> #9  0x00007f3010ffc99a in qpid::broker::Broker::Broker (this=0x249bae0, conf=...) at
/usr/src/debug/qpid-cpp-0.34/src/qpid/broker/Broker.cpp:376
> #10 0x0000000000405c82 in qpid::broker::QpiddBroker::execute (this=this@entry=0x7ffe36dc284e,
options=0x24909a0) at /usr/src/debug/qpid-cpp-0.34/src/posix/QpiddBroker.cpp:229
> #11 0x0000000000409d04 in qpid::broker::run_broker (argc=3, argv=0x7ffe36dc2be8, hidden=<optimized
out>) at /usr/src/debug/qpid-cpp-0.34/src/qpidd.cpp:108
> #12 0x00007f300fb0db35 in __libc_start_main (main=0x404ce0 <main(int, char**)>,
argc=3, ubp_av=0x7ffe36dc2be8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized
out>, 
>     stack_end=0x7ffe36dc2bd8) at ../csu/libc-start.c:274
> #13 0x0000000000404f51 in _start ()
> (gdb) list
> 316	        (void) getAddrInfo(*this);
> 317	    }
> 318	}
> 319	
> 320	bool SocketAddress::nextAddress() const {
> 321	    bool r = currentAddrInfo->ai_next != 0;
> 322	    if (r)
> 323	        currentAddrInfo = currentAddrInfo->ai_next;
> 324	    return r;
> 325	}
> (gdb) p currentAddrInfo
> $2 = (addrinfo *) 0x0
> (gdb) 
> {code}
> It is OK if the broker won't start, but it should not segfault.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message