Comment 28 for bug 1646407

Revision history for this message
Ananth Suryanarayana (anantha-l) wrote :

The actual reason for crash is indeed due to IFMapClient object (client) already deleted, especially its vtable. Since there is no entry (or rather invalid entry may be) for method identifier() from the derived class, segv is generated, rightly so..

Just for record (from another core with similar signature)

(gdb) info vtbl client IFMapXmppChannel::IFMapSender
vtable for 'IFMapClient' @ 0x7f83c08ef3b0 (subobject @ 0x7f83c34cb570):
[0]: 0x7f83c2ca7f70
[1]: 0x111
[2]: 0x7f83c3140bf0
[3]: 0x7f83c34cb560
[4]: 0x693c0a3e3f22302e
[5]: 0xdc7370 <vtable for pugi::xml_writer+16>
(gdb)

not good. identifier() method is not present in the vtable and hence we can
assert that client is deleted already.

Good one looks like this (for an object of another type), just e.g.

(gdb) f 8
#8 0x0000000000b53a3d in XmppSession::OnRead (this=0x2417ad0, buffer=...) at controller/src/xmpp/xmpp_session.cc:308
308 controller/src/xmpp/xmpp_session.cc: No such file or directory.
(gdb) info vtbl this
vtable for 'XmppSession' @ 0xdff3b0 (subobject @ 0x2417ad0):
[0]: 0xd0b020 <TcpSession::Send(unsigned char const*, unsigned long, unsigned long*)>
[1]: 0xd09c20 <TcpSession::Connected(boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>)>
[2]: 0xd09820 <TcpSession::Accepted()>
[3]: 0x905550 <TcpSession::ToString() const>
[4]: 0xcefd10 <SslSession::socket() const>
[5]: 0xd05bf0 <TcpSession::ReleaseBuffer(boost::asio::const_buffer)>
[6]: 0xb53b10 <XmppSession::GetSessionInstance() const>
[7]: 0xd0ecc0 <TcpSession::SetSocketOptions()>
[8]: 0xd09640 <TcpSession::AsyncReadStart()>
[9]: 0xd05740 <TcpSession::SetDeferReader(bool)>
[10]: 0x9054e0 <TcpSession::IsReaderDeferred() const>
[11]: 0xcf0ad0 <SslSession::AsyncReadHandlerProcess(boost::asio::mutable_buffer, unsigned long&, boost::system::error_code&)>
[12]: 0xcefd30 <SslSession::CreateReaderTask(boost::asio::mutable_buffer, unsigned long)>
[13]: 0xb52730 <XmppSession::~XmppSession()>
[14]: 0xb52910 <XmppSession::~XmppSession()>
[15]: 0xb53890 <XmppSession::OnRead(boost::asio::const_buffer)>
[16]: 0xb522d0 <XmppSession::WriteReady(boost::system::error_code const&)>
[17]: 0xceffa0 <SslSession::AsyncReadSome(boost::asio::mutable_buffer)>
[18]: 0xcf0b20 <SslSession::WriteSome(unsigned char const*, unsigned long, boost::system::error_code&)>
[19]: 0xcf12a0 <SslSession::AsyncWrite(unsigned char const*, unsigned long)>
[20]: 0x9054f0 <TcpSession::reader_task_id() const>