[kopete-bugs] [Bug 224800] Kopete crash if avahi daemon restart (bonjour) [QHostAddressPrivate::clear, QAbstractSocket::disconnectFromHostImplementation, ..., QAbstractSocket::disconnectFromHost]

Bruno Bigras bigras.bruno at gmail.com
Sun Feb 7 08:25:59 CET 2010


https://bugs.kde.org/show_bug.cgi?id=224800





--- Comment #8 from Bruno Bigras <bigras bruno gmail com>  2010-02-07 08:25:55 ---
This is what happens when I use bonjour with Kopete and Pidgin (on XP) and I
close the IM window on the Pidgin's side.

I did a valgrind kopete 2>&1 | tee valgrind.log

Note: I added the two blank lines just before closing drkonqi.

If you want more details just ask.

kopete(18704)/kopete (skype) SkypeConnection::operator%: Send message: "PING"
kopete(18704)/kopete (skype) SkypeConnection::operator%: Reply message: "PONG"
kopete(18704)/kopete (skype) SkypeConnection::parseMessage:
kopete(18704)/kopete (skype) Skype::skypeMessage:
kopete(18704)/kopete (skype) Skype::skypeMessage: Unknow message "PONG"
kopete(18704)/kopete (bonjour) BonjourContactConnection::getNextToken: Read
Token:  "stream:stream"
kopete(18704)/kopete (bonjour) BonjourContactConnection::dataInSocket: Data
Available:  "stream:stream"  ConnectionState:  50
kopete(18704)/kopete (bonjour) BonjourContactConnection::getNextToken: Read
Token:  ""
kopete(18704)/kopete (bonjour) BonjourContactConnection::dataInSocket: Data
Available:  ""  ConnectionState:  51
==18686== Invalid write of size 2
==18686==    at 0x78E2999: QAbstractSocket::disconnectFromHostImplementation()
(qabstractsocket.cpp:2410)
==18686==    by 0x78E3267: QAbstractSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qabstractsocket.cpp:114)
==18686==    by 0x790EADE: QTcpSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qtcpsocket.cpp:64)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686==    by 0x8AA5EBD: QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const
(qmetaobject.cpp:1533)
==18686==    by 0x8AA5210: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(qmetaobject.cpp:1113)
==18686==    by 0x7864521: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) (qobjectdefs.h:396)
==18686==    by 0x78E262D: QAbstractSocket::disconnectFromHost()
(qabstractsocket.cpp:2311)
==18686==    by 0x78DDD66: QAbstractSocketPrivate::canReadNotification()
(qabstractsocket.cpp:605)
==18686==    by 0x78E37D1: QAbstractSocketPrivate::readNotification()
(qabstractsocket_p.h:77)
==18686==    by 0x78CA576: QAbstractSocketEngine::readNotification()
(qabstractsocketengine.cpp:154)
==18686==    by 0x78CD867: QReadNotifier::event(QEvent*)
(qnativesocketengine.cpp:1089)
==18686==  Address 0x12697fd8 is 264 bytes inside a block of size 456 free'd
==18686==    at 0x4C24A7A: operator delete(void*) (vg_replace_malloc.c:346)
==18686==    by 0x78E40C8: QTcpSocketPrivate::~QTcpSocketPrivate()
(qtcpsocket_p.h:62)
==18686==    by 0x8A5EC5F:
QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:62)
==18686==    by 0x8ABBE48: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:100)
==18686==    by 0x8AB3AE4: QObject::~QObject() (qobject.cpp:992)
==18686==    by 0x8A1E8D7: QIODevice::~QIODevice() (qiodevice.cpp:408)
==18686==    by 0x78DFC98: QAbstractSocket::~QAbstractSocket()
(qabstractsocket.cpp:1243)
==18686==    by 0x78E3E91: QTcpSocket::~QTcpSocket() (qtcpsocket.cpp:103)
==18686==    by 0x1A9BB71C:
BonjourContactConnection::~BonjourContactConnection()
(bonjourcontactconnection.cpp:98)
==18686==    by 0x1A9B2D27:
BonjourContact::connectionDisconnected(BonjourContactConnection*)
(bonjourcontact.cpp:212)
==18686==    by 0x1A9B318F: BonjourContact::qt_metacall(QMetaObject::Call, int,
void**) (bonjourcontact.moc:93)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686== 
==18686== Invalid write of size 2
==18686==    at 0x78E29A6: QAbstractSocket::disconnectFromHostImplementation()
(qabstractsocket.cpp:2411)
==18686==    by 0x78E3267: QAbstractSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qabstractsocket.cpp:114)
==18686==    by 0x790EADE: QTcpSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qtcpsocket.cpp:64)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686==    by 0x8AA5EBD: QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const
(qmetaobject.cpp:1533)
==18686==    by 0x8AA5210: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(qmetaobject.cpp:1113)
==18686==    by 0x7864521: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) (qobjectdefs.h:396)
==18686==    by 0x78E262D: QAbstractSocket::disconnectFromHost()
(qabstractsocket.cpp:2311)
==18686==    by 0x78DDD66: QAbstractSocketPrivate::canReadNotification()
(qabstractsocket.cpp:605)
==18686==    by 0x78E37D1: QAbstractSocketPrivate::readNotification()
(qabstractsocket_p.h:77)
==18686==    by 0x78CA576: QAbstractSocketEngine::readNotification()
(qabstractsocketengine.cpp:154)
==18686==    by 0x78CD867: QReadNotifier::event(QEvent*)
(qnativesocketengine.cpp:1089)
==18686==  Address 0x12697fda is 266 bytes inside a block of size 456 free'd
==18686==    at 0x4C24A7A: operator delete(void*) (vg_replace_malloc.c:346)
==18686==    by 0x78E40C8: QTcpSocketPrivate::~QTcpSocketPrivate()
(qtcpsocket_p.h:62)
==18686==    by 0x8A5EC5F:
QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:62)
==18686==    by 0x8ABBE48: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:100)
==18686==    by 0x8AB3AE4: QObject::~QObject() (qobject.cpp:992)
==18686==    by 0x8A1E8D7: QIODevice::~QIODevice() (qiodevice.cpp:408)
==18686==    by 0x78DFC98: QAbstractSocket::~QAbstractSocket()
(qabstractsocket.cpp:1243)
==18686==    by 0x78E3E91: QTcpSocket::~QTcpSocket() (qtcpsocket.cpp:103)
==18686==    by 0x1A9BB71C:
BonjourContactConnection::~BonjourContactConnection()
(bonjourcontactconnection.cpp:98)
==18686==    by 0x1A9B2D27:
BonjourContact::connectionDisconnected(BonjourContactConnection*)
(bonjourcontact.cpp:212)
==18686==    by 0x1A9B318F: BonjourContact::qt_metacall(QMetaObject::Call, int,
void**) (bonjourcontact.moc:93)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686== 
==18686== Invalid read of size 8
==18686==    at 0x78BAB22: QScopedPointer<QHostAddressPrivate,
QScopedPointerDeleter<QHostAddressPrivate> >::operator->() const
(qscopedpointer.h:112)
==18686==    by 0x78B9131: QHostAddress::clear() (qhostaddress.cpp:609)
==18686==    by 0x78E29C0: QAbstractSocket::disconnectFromHostImplementation()
(qabstractsocket.cpp:2412)
==18686==    by 0x78E3267: QAbstractSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qabstractsocket.cpp:114)
==18686==    by 0x790EADE: QTcpSocket::qt_metacall(QMetaObject::Call, int,
void**) (moc_qtcpsocket.cpp:64)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686==    by 0x8AA5EBD: QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const
(qmetaobject.cpp:1533)
==18686==    by 0x8AA5210: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(qmetaobject.cpp:1113)
==18686==    by 0x7864521: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) (qobjectdefs.h:396)
==18686==    by 0x78E262D: QAbstractSocket::disconnectFromHost()
(qabstractsocket.cpp:2311)
==18686==    by 0x78DDD66: QAbstractSocketPrivate::canReadNotification()
(qabstractsocket.cpp:605)
==18686==    by 0x78E37D1: QAbstractSocketPrivate::readNotification()
(qabstractsocket_p.h:77)
==18686==  Address 0x12697fe0 is 272 bytes inside a block of size 456 free'd
==18686==    at 0x4C24A7A: operator delete(void*) (vg_replace_malloc.c:346)
==18686==    by 0x78E40C8: QTcpSocketPrivate::~QTcpSocketPrivate()
(qtcpsocket_p.h:62)
==18686==    by 0x8A5EC5F:
QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:62)
==18686==    by 0x8ABBE48: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:100)
==18686==    by 0x8AB3AE4: QObject::~QObject() (qobject.cpp:992)
==18686==    by 0x8A1E8D7: QIODevice::~QIODevice() (qiodevice.cpp:408)
==18686==    by 0x78DFC98: QAbstractSocket::~QAbstractSocket()
(qabstractsocket.cpp:1243)
==18686==    by 0x78E3E91: QTcpSocket::~QTcpSocket() (qtcpsocket.cpp:103)
==18686==    by 0x1A9BB71C:
BonjourContactConnection::~BonjourContactConnection()
(bonjourcontactconnection.cpp:98)
==18686==    by 0x1A9B2D27:
BonjourContact::connectionDisconnected(BonjourContactConnection*)
(bonjourcontact.cpp:212)
==18686==    by 0x1A9B318F: BonjourContact::qt_metacall(QMetaObject::Call, int,
void**) (bonjourcontact.moc:93)
==18686==    by 0x8AA2FFA: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==18686== 
ASSERT: "d" in file
../../include/QtCore/../../../../../src/qt/qt/src/corelib/tools/qscopedpointer.h,
line 112
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = kopete path = /kde4/trunk/kde/bin pid = 18704


sock_file=/home/bruno/.kde/socket-t61p/kdeinit4__0
==18686== 
==18686== HEAP SUMMARY:
==18686==     in use at exit: 15,301,610 bytes in 251,778 blocks
==18686==   total heap usage: 1,480,316 allocs, 1,228,538 frees, 342,506,224
bytes allocated
==18686== 
==18686== LEAK SUMMARY:
==18686==    definitely lost: 11,578 bytes in 34 blocks
==18686==    indirectly lost: 27,165 bytes in 855 blocks
==18686==      possibly lost: 11,961,489 bytes in 226,300 blocks
==18686==    still reachable: 3,301,378 bytes in 24,589 blocks
==18686==         suppressed: 0 bytes in 0 blocks
==18686== Rerun with --leak-check=full to see details of leaked memory
==18686== 
==18686== For counts of detected and suppressed errors, rerun with: -v
==18686== Use --track-origins=yes to see where uninitialised values come from
==18686== ERROR SUMMARY: 97 errors from 15 contexts (suppressed: 545 from 17)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the kopete-bugs mailing list