[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #3169 [Vidalia]: Vidalia 0.2.12 triggering Qt assertion on exit
#3169: Vidalia 0.2.12 triggering Qt assertion on exit
-----------------------+----------------------------------------------------
Reporter: fk | Owner: chiiph
Type: defect | Status: new
Priority: normal | Milestone:
Component: Vidalia | Version:
Keywords: 0.2.12 Qt | Parent:
Points: | Actualpoints:
-----------------------+----------------------------------------------------
When using a recent Qt like 4.7.2 compiled with assertions enabled,
Vidalia triggers a Qt assertion on exit and dumps core.
fk@r500 ~ $/usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/vidalia/vidalia --loglevel notice
May 13 15:13:19.131 [notice] Resetting UI translation to English default.
May 13 15:13:19.213 [notice] Vidalia 0.2.12 using Qt 4.7.2
May 13 15:13:19.283 [notice] QtWarningMsg: Application asked to unregister
timer 0x9000004 which is not registered in this thread. Fix application.
May 13 15:13:19.549 [notice] Tor status changed from 'Unset' to 'Stopped'.
May 13 15:13:21.597 [notice] Tor status changed from 'Stopped' to
'Starting'.
May 13 15:13:21.640 [notice] Tor status changed from 'Starting' to
'Started'.
May 13 15:13:21.655 [notice] Tor status changed from 'Started' to
'Authenticating'.
May 13 15:13:21.663 [notice] Authenticating using 'null' authentication.
May 13 15:13:32.814 [notice] Tor status changed from 'Authenticating' to
'Authenticated'.
May 13 15:13:32.815 [notice] Tor status changed from 'Authenticated' to
'Circuit Established'.
May 13 15:13:47.074 [notice] Cleaning up before exiting.
May 13 15:13:47.080 [notice] Vidalia is exiting cleanly (return code 0).
May 13 15:13:47.250 [notice] QtWarningMsg: QSocketNotifier: socket
notifiers cannot be disabled from another thread
May 13 15:13:47.251 [notice] QtWarningMsg: QSocketNotifier: Invalid socket
12 and type 'Read', disabling...
[... more complaints about socket 12 being invalid ...]
May 13 15:13:47.276 [notice] QtWarningMsg: QSocketNotifier: Invalid socket
12 and type 'Read', disabling...
May 13 15:13:47.291 [error] QtFatalMsg: ASSERT failure in
QCoreApplication::sendEvent: "Cannot send events to objects owned by a
different thread. Current thread 80581b0f0. Receiver '' (of type
'QNativeSocketEngine') was created in thread 80582fd80", file
kernel/qcoreapplication.cpp, line 349
May 13 15:13:47.294 [notice] QtWarningMsg: QSocketNotifier: Invalid socket
12 and type 'Read', disabling...
[... more complaints about socket 12 being invalid ...]
May 13 15:13:47.338 [notice] QtWarningMsg: QSocketNotifier: Invalid socket
12 and type 'Read', disabling...
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZMay
13 15:13:47.338 [notice] QtWarningMsg: QSocketNotifier: Invalid socket 12
and type 'Read', disabling...
May 13 15:13:47.338 [error] Fatal Qt error. Aborting.
May 13 15:13:47.339 [notice] QtWarningMsg: QSocketNotifier: Invalid socket
12 and type 'Read', disabling...
Abort trap: 6 (core dumped)
fk@r500 ~ $gdb /usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/vidalia/vidalia vidalia.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
[...]
Loaded symbols for /libexec/ld-elf.so.1
#0 0x000000080345ddbc in thr_kill () from /lib/libc.so.7
[New Thread 80580a800 (LWP 102150/vidalia)]
[New Thread 805807400 (LWP 100612/initial thread)]
(gdb) where
#0 0x000000080345ddbc in thr_kill () from /lib/libc.so.7
#1 0x00000008034fcbe3 in abort () from /lib/libc.so.7
#2 0x00000000004e4aa6 in Vidalia::qt_msg_handler (type=QtFatalMsg,
s=0x8058327d8 "ASSERT failure in QCoreApplication::sendEvent: \"Cannot
send events to objects owned by a different thread. Current thread
80581b0f0. Receiver '' (of type 'QNativeSocketEngine') was created in
thread 8"...) at /usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/vidalia/Vidalia.cpp:86
#3 0x00000008025c0ceb in qt_message_output (msgType=QtFatalMsg,
buf=0x8058327d8 "ASSERT failure in QCoreApplication::sendEvent:
\"Cannot send events to objects owned by a different thread. Current
thread 80581b0f0. Receiver '' (of type 'QNativeSocketEngine') was created
in thread 8"...) at global/qglobal.cpp:2228
#4 0x00000008025c0f6b in qt_message (msgType=QtFatalMsg, msg=0x80278cdf8
"ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fffffffba30) at
global/qglobal.cpp:2328
#5 0x00000008025c1084 in qFatal (msg=0x80278cdf8 "ASSERT failure in %s:
\"%s\", file %s, line %d") at global/qglobal.cpp:2511
#6 0x00000008025c10ca in qt_assert_x (where=0x8027eb31c
"QCoreApplication::sendEvent",
what=0x80587c058 "Cannot send events to objects owned by a different
thread. Current thread 80581b0f0. Receiver '' (of type
'QNativeSocketEngine') was created in thread 80582fd00",
file=0x8027eabe8 "kernel/qcoreapplication.cpp", line=349) at
global/qglobal.cpp:2035
#7 0x00000008026fd0fa in QCoreApplicationPrivate::checkReceiverThread
(this=0x80587d1c0, receiver=0x807860070) at
kernel/qcoreapplication.cpp:341
#8 0x00000008010c6b26 in QApplication::notify (this=0x7fffffffd390,
receiver=0x807860070, e=0x7fffffffc4e0) at kernel/qapplication.cpp:3754
#9 0x00000008026fc1e0 in QCoreApplication::notifyInternal
(this=0x7fffffffd390, receiver=0x807860070, event=0x7fffffffc4e0) at
kernel/qcoreapplication.cpp:731
#10 0x00000008010c34bb in QCoreApplication::sendEvent
(receiver=0x807860070, event=0x7fffffffc4e0) at qcoreapplication.h:215
#11 0x00000008027154f8 in QObjectPrivate::setParent_helper
(this=0x807861780, o=0x0) at kernel/qobject.cpp:1981
#12 0x000000080271b8a5 in ~QObject (this=0x8078a6280) at
kernel/qobject.cpp:954
#13 0x000000080272460e in ~QSocketNotifier (this=0x8078a6280) at
kernel/qsocketnotifier.cpp:229
#14 0x000000080221e257 in ~QReadNotifier (this=0x8078a6280) at
socket/qnativesocketengine.cpp:1088
#15 0x0000000802711b77 in qDeleteInEventHandler (o=0x8078a6280) at
kernel/qobject.cpp:3986
#16 0x000000080221bc94 in QNativeSocketEngine::close (this=0x807860070) at
socket/qnativesocketengine.cpp:821
#17 0x000000080222fd14 in QAbstractSocketPrivate::resetSocketLayer
(this=0x807888800) at socket/qabstractsocket.cpp:508
#18 0x00000008022300e2 in
QAbstractSocket::disconnectFromHostImplementation (this=0x807860050) at
socket/qabstractsocket.cpp:2464
#19 0x000000080223285a in QAbstractSocket::qt_metacall (this=0x807860050,
_c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7fffffffc880) at
moc_qabstractsocket.cpp:114
#20 0x0000000802264279 in QTcpSocket::qt_metacall (this=0x807860050,
_c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fffffffc880) at .moc
/debug-shared/moc_qtcpsocket.cpp:64
#21 0x00000008027048d2 in QMetaObject::metacall (object=0x807860050,
cl=QMetaObject::InvokeMetaMethod, idx=18, argv=0x7fffffffc880) at
kernel/qmetaobject.cpp:237
#22 0x00000008027081f6 in QMetaMethod::invoke (this=0x7fffffffcd90,
object=0x807860050, connectionType=Qt::DirectConnection,
returnValue={<QGenericArgument> = {_data = 0x0, _name = 0x0}, <No data
fields>},
val0={_data = 0x0, _name = 0x0}, val1={_data = 0x0, _name = 0x0},
val2={_data = 0x0, _name = 0x0}, val3={_data = 0x0, _name = 0x0},
val4={_data = 0x0, _name = 0x0}, val5={_data = 0x0, _name = 0x0}, val6=
{_data = 0x0, _name = 0x0}, val7={_data = 0x0, _name = 0x0},
val8={_data = 0x0, _name = 0x0}, val9={_data = 0x0, _name = 0x0}) at
kernel/qmetaobject.cpp:1578
#23 0x00000008027091c3 in QMetaObject::invokeMethod (obj=0x807860050,
member=0x80227cad8 "disconnectFromHostImplementation",
type=Qt::DirectConnection, ret=
{<QGenericArgument> = {_data = 0x0, _name = 0x0}, <No data
fields>}, val0={_data = 0x0, _name = 0x0}, val1={_data = 0x0, _name =
0x0}, val2={_data = 0x0, _name = 0x0}, val3=
{_data = 0x0, _name = 0x0}, val4={_data = 0x0, _name = 0x0},
val5={_data = 0x0, _name = 0x0}, val6={_data = 0x0, _name = 0x0},
val7={_data = 0x0, _name = 0x0}, val8={_data = 0x0, _name = 0x0}, val9=
{_data = 0x0, _name = 0x0}) at kernel/qmetaobject.cpp:1151
#24 0x000000080219a722 in QMetaObject::invokeMethod (obj=0x807860050,
member=0x80227cad8 "disconnectFromHostImplementation",
type=Qt::DirectConnection, val0={_data = 0x0, _name = 0x0}, val1=
{_data = 0x0, _name = 0x0}, val2={_data = 0x0, _name = 0x0},
val3={_data = 0x0, _name = 0x0}, val4={_data = 0x0, _name = 0x0},
val5={_data = 0x0, _name = 0x0}, val6={_data = 0x0, _name = 0x0}, val7=
{_data = 0x0, _name = 0x0}, val8={_data = 0x0, _name = 0x0},
val9={_data = 0x0, _name = 0x0}) at qobjectdefs.h:408
#25 0x000000080222ddfc in QAbstractSocket::disconnectFromHost
(this=0x807860050) at socket/qabstractsocket.cpp:2373
#26 0x00000000005230fc in ControlSocket::disconnectFromHost
(this=0x8078a6040) at /usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/torcontrol/ControlSocket.cpp:78
#27 0x00000000005205b1 in ControlConnection::disconnect (this=0x80582fd00)
at /usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/torcontrol/ControlConnection.cpp:127
#28 0x00000000005120e6 in TorControl::disconnect (this=0x8058b0980) at
/usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/torcontrol/TorControl.cpp:209
#29 0x00000000005123cf in ~TorControl (this=0x8058b0980) at
/usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/torcontrol/TorControl.cpp:102
#30 0x00000000004e37ef in ~Vidalia (this=0x7fffffffd390) at
/usr/obj/usr/ports/net-
mgmt/vidalia/work/vidalia-0.2.12/src/vidalia/Vidalia.cpp:151
I can reliably reproduce this by letting Vidalia connect
to a Control Port first, but it doesn't happen if Vidalia
exits without connection to Tor first. Due to #3168 I
couldn't check if this is still an issue in 0.3.0.
This also happened with Vidalia 0.2.10 and I don't think
it's a recent Vidalia regression but a result of recent Qt
versions being more strict about punishing what the Qt
developers consider API violations.
I'm using FreeBSD 9.0-CURRENT amd64 but don't think the
problem is platform-specific.
There was a similar issue in VLC a while ago:
http://mailman.videolan.org/pipermail/vlc-devel/2010-November/077810.html
with the fix being:
http://www.mail-archive.com/vlc-commits@xxxxxxxxxxxx/msg01974.html
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/3169>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs