Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 5

Qt-interest Archive, April 2008
Runtime error QUdpSocket


Message 1 in thread

Hi,

I am porting an application from qt3 to qt4. It generates a runtime 
error on the following line:

	timeout = sock->waitForReadyRead(30); //sock is a QUdpSocket

The error happens without any specific pattern, between a few seconds 
and a minute after the app is started. The traceback is at the end of 
the email.

I read some threads that glibc may have some problems with qt4, but I am 
not sure if that's the problem.

Any help would be greatly appreciated!
Juan-Pablo


*** glibc detected *** ./jacktrip: double free or corruption (fasttop): 
0x080b4ac0 ***
======= Backtrace: =========
/lib/libc.so.6[0x4457ea96]
/lib/libc.so.6(cfree+0x90)[0x44581fb0]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x449a9691]
/usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib24unregisterSocketNotifierEP15QSocketNotifier+0xb5)[0x4ad3e215]
/usr/lib/libQtCore.so.4(_ZN15QSocketNotifier10setEnabledEb+0x3d)[0x4ad332dd]
/usr/lib/libQtNetwork.so.4[0x4b533c4a]
/usr/lib/libQtNetwork.so.4[0x4b53fec9]
/usr/lib/libQtNetwork.so.4(_ZN15QAbstractSocket16waitForReadyReadEi+0x143)[0x4b5420b3]
./jacktrip[0x8055003]
/usr/lib/libQtCore.so.4[0x4ac788f7]
/lib/libpthread.so.0[0x4468e45b]
/lib/libc.so.6(clone+0x5e)[0x445e623e]
======= Memory map: ========
08048000-0806c000 r-xp 00000000 00:11 101058022 
/user/j/jcaceres/svn-jacktrip/trunk/jacktrip/src/jacktrip
0806c000-0806d000 rw-p 00024000 00:11 101058022 
/user/j/jcaceres/svn-jacktrip/trunk/jacktrip/src/jacktrip
0806d000-080e2000 rw-p 0806d000 00:00 0          [heap]
444fb000-44514000 r-xp 00000000 08:01 3264041    /lib/ld-2.5.so
44514000-44515000 r--p 00019000 08:01 3264041    /lib/ld-2.5.so
44515000-44516000 rw-p 0001a000 08:01 3264041    /lib/ld-2.5.so
44518000-44652000 r-xp 00000000 08:01 3264065    /lib/libc-2.5.so
44652000-44654000 r--p 0013a000 08:01 3264065    /lib/libc-2.5.so
44654000-44655000 rw-p 0013c000 08:01 3264065    /lib/libc-2.5.so
44655000-44658000 rw-p 44655000 00:00 0
4465a000-4467f000 r-xp 00000000 08:01 3264212    /lib/libm-2.5.so
4467f000-44680000 r--p 00024000 08:01 3264212    /lib/libm-2.5.so
44680000-44681000 rw-p 00025000 08:01 3264212    /lib/libm-2.5.so
44683000-44685000 r-xp 00000000 08:01 3264217    /lib/libdl-2.5.so
44685000-44686000 r--p 00001000 08:01 3264217    /lib/libdl-2.5.so
44686000-44687000 rw-p 00002000 08:01 3264217    /lib/libdl-2.5.so
44689000-4469c000 r-xp 00000000 08:01 3264248    /lib/libpthread-2.5.so
4469c000-4469d000 r--p 00012000 08:01 3264248    /lib/libpthread-2.5.so
4469d000-4469e000 rw-p 00013000 08:01 3264248    /lib/libpthread-2.5.so
4469e000-446a0000 rw-p 4469e000 00:00 0
446a2000-446b4000 r-xp 00000000 08:01 3703933    /usr/lib/libz.so.1.2.3
446b4000-446b5000 rw-p 00011000 08:01 3703933    /usr/lib/libz.so.1.2.3
446b7000-446bc000 r-xp 00000000 08:01 3718406    /usr/lib/libXdmcp.so.6.0.0
446bc000-446bd000 rw-p 00004000 08:01 3718406    /usr/lib/libXdmcp.so.6.0.0
446bf000-447bd000 r-xp 00000000 08:01 3718407    /usr/lib/libX11.so.6.2.0
447bd000-447c1000 rw-p 000fe000 08:01 3718407    /usr/lib/libX11.so.6.2.0
447c3000-447c5000 r-xp 00000000 08:01 3718405    /usr/lib/libXau.so.6.0.0
447c5000-447c6000 rw-p 00001000 08:01 3718405    /usr/lib/libXau.so.6.0.0
447c8000-447d7000 r-xp 00000000 08:01 3718412    /usr/lib/libXext.so.6.4.0
447d7000-447d8000 rw-p 0000e000 08:01 3718412    /usr/lib/libXext.so.6.4.0
447da000-447e5000 r-xp 00000000 08:01 3266905 
/lib/libgcc_s-4.1.2-20070626.so.1
447e5000-447e6000 rw-p 0000a000 08:01 3266905 
/lib/libgcc_s-4.1.2-20070626.so.1
4486a000-44889000 r-xp 00000000 08:01 3264220    /lib/libexpat.so.0.5.0
44889000-4488b000 rw-p 0001e000 08:01 3264220    /lib/libexpat.so.0.5.0
448e6000-448ee000 r-xp 00000000 08:01 3718408 
/usr/lib/libXrender.so.1.3.0
448ee000-448ef000 rw-p 00007000 08:01 3718408 
/usr/lib/libXrender.so.1.3.0
448f1000-448f3000 r-xp 00000000 08:01 3718413 
/usr/lib/libXinerama.so.1.0.0
448f3000-448f4000 rw-p 00001000 08:01 3718413 
/usr/lib/libXinerama.so.1.0.0
448f6000-449d6000 r-xp 00000000 08:01 3718423    /usr/lib/libstdc++.so.6.0.8
449d6000-449da000 r--p 000df000 08:01 3718423    /usr/lib/libstdc++.so.6.0.8
449da000-449db000 rw-p 000e3000 08:01 3718423    /usr/lib/libstdc++.so.6.0.8
449db000-449e1000 rw-p 449db000 00:00 0
449e3000-449e7000 r-xp 00000000 08:01 3718416    /usr/lib/libXfixes.so.3.1.0
449e7000-449e8000 rw-p 00003000 08:01 3718416    /usr/lib/libXfixes.so.3.1.0
449ea000-449ed000 r-xp 00000000 08:01 3718415    /usr/lib/libXrandr.so.2.0.0
449ed000-449ee000 rw-p 00002000 08:01 3718415    /usr/lib/libXraAborted

--
 [ signature omitted ] 

Message 2 in thread

Juan-Pablo Caceres wrote:
>I am porting an application from qt3 to qt4. It generates a runtime
>error on the following line:
>
>        timeout = sock->waitForReadyRead(30); //sock is a QUdpSocket
>
>The error happens without any specific pattern, between a few seconds
>and a minute after the app is started. The traceback is at the end of
>the email.
>
>I read some threads that glibc may have some problems with qt4, but I am
>not sure if that's the problem.

I don't know of any outstanding bugs nor of any reports of problems 
between glibc and Qt 4.

Please run your application inside valgrind and post the result of the 
crash here. (it may not crash under valgrind; if that's the case, paste 
the memory error logs from valgrind)

Also, please use a debug version of Qt when making those tests. A trace 
without debugging info is not useful.

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 3 in thread

Hi Thiago,

Thiago Macieira wrote:
> Juan-Pablo Caceres wrote:
>> I am porting an application from qt3 to qt4. It generates a runtime
>> error on the following line:
>>
>>         timeout = sock->waitForReadyRead(30); //sock is a QUdpSocket
>>
>> The error happens without any specific pattern, between a few seconds
>> and a minute after the app is started. The traceback is at the end of
>> the email.
>>
>> I read some threads that glibc may have some problems with qt4, but I am
>> not sure if that's the problem.
> 
> I don't know of any outstanding bugs nor of any reports of problems 
> between glibc and Qt 4.
> 
> Please run your application inside valgrind and post the result of the 
> crash here. (it may not crash under valgrind; if that's the case, paste 
> the memory error logs from valgrind)
> 
> Also, please use a debug version of Qt when making those tests. A trace 
> without debugging info is not useful.
> 

Thanks a lot for your answer. I attached the valgrind output (hope it 
helps). I can generate a more detailed report if you need that. I also 
believe I am use the debug option, at leas this is what I am using in qmake:
"CONFIG+=qt debug thread warn_on"

The program still crashes under valgrind.
Thanks a lot for your help again,
Juan-Pablo



==13067==
==13067== Syscall param write(buf) points to uninitialised byte(s)
==13067==    at 0x49108D9B: (within /lib/libpthread-2.5.so)
==13067==    by 0x4B5AFE53: jack_client_deliver_request (in 
/usr/lib/libjack.so.
0.0.23)
==13067==    by 0x4B5B1584: jack_activate (in /usr/lib/libjack.so.0.0.23)
==13067==    by 0x804FC57: JackClient::start() (JackClient.cpp:232)
==13067==    by 0x80540E0: StreamBD::cmd(MainDialog*) (StreamBD.cpp:247)
==13067==    by 0x8051252: MainDialog::init(StreamBD*) (MainDialog.cpp:88)
==13067==    by 0x8050A55: main (main.cpp:56)
==13067==  Address 0xBEE7813C is on thread 1's stack
==13067==
==13067== Syscall param write(buf) points to uninitialised byte(s)
==13067==    at 0x49108D9B: (within /lib/libpthread-2.5.so)
==13067==    by 0x4B5AFE53: jack_client_deliver_request (in 
/usr/lib/libjack.so.
0.0.23)
==13067==    by 0x4B5B04A7: jack_connect (in /usr/lib/libjack.so.0.0.23)
==13067==    by 0x804FAC2: JackClient::go() (JackClient.cpp:262)
==13067==    by 0x80540E0: StreamBD::cmd(MainDialog*) (StreamBD.cpp:247)
==13067==    by 0x8051252: MainDialog::init(StreamBD*) (MainDialog.cpp:88)
==13067==    by 0x8050A55: main (main.cpp:56)
==13067==  Address 0xBEE7812B is on thread 1's stack
==13067==
==13067== Syscall param write(buf) points to uninitialised byte(s)
==13067==    at 0x49108D9B: (within /lib/libpthread-2.5.so)
==13067==    by 0x4B5AFE53: jack_client_deliver_request (in 
/usr/lib/libjack.so.
0.0.23)
==13067==    by 0x4B5B04A7: jack_connect (in /usr/lib/libjack.so.0.0.23)
==13067==    by 0x804FB91: JackClient::go() (JackClient.cpp:282)
==13067==    by 0x80540E0: StreamBD::cmd(MainDialog*) (StreamBD.cpp:247)
==13067==    by 0x8051252: MainDialog::init(StreamBD*) (MainDialog.cpp:88)
==13067==    by 0x8050A55: main (main.cpp:56)
==13067==  Address 0xBEE7812B is on thread 1's stack
Running
==13067==
==13067== Conditional jump or move depends on uninitialised value(s)
==13067==    at 0x4C92A892: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4949DE61: g_main_context_check (in 
/lib/libglib-2.0.so.0.1200.
9)
==13067==    by 0x4949E1FD: (within /lib/libglib-2.0.so.0.1200.9)
==13067==    by 0x4949E984: g_main_context_iteration (in 
/lib/libglib-2.0.so.0.1
200.9)
==13067==    by 0x4C92AC93: 
QEventDispatcherGlib::processEvents(QFlags<QEventLoo
p::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4F3DDFC4: (within /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4C908CA0: 
QEventLoop::processEvents(QFlags<QEventLoop::Process
EventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C908DAB: 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFla
g>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C90B149: QCoreApplication::exec() (in 
/usr/lib/libQtCore.so.4
.3.2)
==13067==    by 0x4F364046: QApplication::exec() (in 
/usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x8050A6C: main (main.cpp:58)
==13067==
==13067== Conditional jump or move depends on uninitialised value(s)
==13067==    at 0x4C92A86D: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4949DE61: g_main_context_check (in 
/lib/libglib-2.0.so.0.1200.
9)
==13067==    by 0x4949E1FD: (within /lib/libglib-2.0.so.0.1200.9)
==13067==    by 0x4949E984: g_main_context_iteration (in 
/lib/libglib-2.0.so.0.1
200.9)
==13067==    by 0x4C92AC93: 
QEventDispatcherGlib::processEvents(QFlags<QEventLoo
p::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4F3DDFC4: (within /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4C908CA0: 
QEventLoop::processEvents(QFlags<QEventLoop::Process
EventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C908DAB: 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFla
g>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C90B149: QCoreApplication::exec() (in 
/usr/lib/libQtCore.so.4
.3.2)
==13067==    by 0x4F364046: QApplication::exec() (in 
/usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x8050A6C: main (main.cpp:58)
==13067==
==13067== Conditional jump or move depends on uninitialised value(s)
==13067==    at 0x4949DEA1: g_main_context_check (in 
/lib/libglib-2.0.so.0.1200.
9)
==13067==    by 0x4949E1FD: (within /lib/libglib-2.0.so.0.1200.9)
==13067==    by 0x4949E984: g_main_context_iteration (in 
/lib/libglib-2.0.so.0.1
200.9)
==13067==    by 0x4C92AC93: 
QEventDispatcherGlib::processEvents(QFlags<QEventLoo
p::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4F3DDFC4: (within /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4C908CA0: 
QEventLoop::processEvents(QFlags<QEventLoop::Process
EventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C908DAB: 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFla
g>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C90B149: QCoreApplication::exec() (in 
/usr/lib/libQtCore.so.4
.3.2)
==13067==    by 0x4F364046: QApplication::exec() (in 
/usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x8050A6C: main (main.cpp:58)
==13067==
==13067== Conditional jump or move depends on uninitialised value(s)
==13067==    at 0x4949DEA1: g_main_context_check (in 
/lib/libglib-2.0.so.0.1200.
9)
==13067==    by 0x4949E1FD: (within /lib/libglib-2.0.so.0.1200.9)
==13067==    by 0x4949E984: g_main_context_iteration (in 
/lib/libglib-2.0.so.0.1
200.9)
==13067==    by 0x4C92AC77: 
QEventDispatcherGlib::processEvents(QFlags<QEventLoo
p::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4F3DDFC4: (within /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4C908CA0: 
QEventLoop::processEvents(QFlags<QEventLoop::Process
EventsFlag>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C908DAB: 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFla
g>) (in /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4C90B149: QCoreApplication::exec() (in 
/usr/lib/libQtCore.so.4
.3.2)
==13067==    by 0x4F364046: QApplication::exec() (in 
/usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x8050A6C: main (main.cpp:58)
udp in waited too long (more than 30ms)...
==13067==
==13067== Thread 2:
==13067== Invalid read of size 1
==13067==    at 0x4D17F6A3: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D17FF67: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18D099: QAbstractSocket::waitForReadyRead(int) (in 
/usr/lib/
libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==  Address 0x4774A70 is 64 bytes inside a block of size 120 free'd
==13067==    at 0x4004D31: operator delete(void*) (vg_replace_malloc.c:244)
==13067==    by 0x4D17F5F7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C91B933: QObject::~QObject() (in 
/usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4D17F52F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18957F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DA07: 
QAbstractSocket::disconnectFromHostImplementation()
(in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DD1C: 
QAbstractSocket::qt_metacall(QMetaObject::Call, int,
  void**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D1AEAC1: QUdpSocket::qt_metacall(QMetaObject::Call, 
int, void
**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C9156EA: QMetaCallEvent::placeMetaCall(QObject*) (in 
/usr/lib
/libQtCore.so.4.3.2)
==13067==    by 0x4C9177D8: QObject::event(QEvent*) (in 
/usr/lib/libQtCore.so.4.
3.2)
==13067==    by 0x4F364A3F: QApplicationPrivate::notify_helper(QObject*, 
QEvent*
) (in /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4F36A988: QApplication::notify(QObject*, QEvent*) (in 
/usr/lib
/libQtGui.so.4.3.2)
==13067==
==13067== Invalid write of size 1
==13067==    at 0x4D17F6AE: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D17FF67: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18D099: QAbstractSocket::waitForReadyRead(int) (in 
/usr/lib/
libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==  Address 0x4774A70 is 64 bytes inside a block of size 120 free'd
==13067==    at 0x4004D31: operator delete(void*) (vg_replace_malloc.c:244)
==13067==    by 0x4D17F5F7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C91B933: QObject::~QObject() (in 
/usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4D17F52F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18957F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DA07: 
QAbstractSocket::disconnectFromHostImplementation()
(in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DD1C: 
QAbstractSocket::qt_metacall(QMetaObject::Call, int,
  void**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D1AEAC1: QUdpSocket::qt_metacall(QMetaObject::Call, 
int, void
**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C9156EA: QMetaCallEvent::placeMetaCall(QObject*) (in 
/usr/lib
/libQtCore.so.4.3.2)
==13067==    by 0x4C9177D8: QObject::event(QEvent*) (in 
/usr/lib/libQtCore.so.4.
3.2)
==13067==    by 0x4F364A3F: QApplicationPrivate::notify_helper(QObject*, 
QEvent*
) (in /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4F36A988: QApplication::notify(QObject*, QEvent*) (in 
/usr/lib
/libQtGui.so.4.3.2)
==13067==
==13067== Invalid write of size 4
==13067==    at 0x4D17F6B2: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D17FF67: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18D099: QAbstractSocket::waitForReadyRead(int) (in 
/usr/lib/
libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==  Address 0x4774A6C is 60 bytes inside a block of size 120 free'd
==13067==    at 0x4004D31: operator delete(void*) (vg_replace_malloc.c:244)
==13067==    by 0x4D17F5F7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C91B933: QObject::~QObject() (in 
/usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4D17F52F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18957F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DA07: 
QAbstractSocket::disconnectFromHostImplementation()
(in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DD1C: 
QAbstractSocket::qt_metacall(QMetaObject::Call, int,
  void**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D1AEAC1: QUdpSocket::qt_metacall(QMetaObject::Call, 
int, void
**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C9156EA: QMetaCallEvent::placeMetaCall(QObject*) (in 
/usr/lib
/libQtCore.so.4.3.2)
==13067==    by 0x4C9177D8: QObject::event(QEvent*) (in 
/usr/lib/libQtCore.so.4.
3.2)
==13067==    by 0x4F364A3F: QApplicationPrivate::notify_helper(QObject*, 
QEvent*
) (in /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4F36A988: QApplication::notify(QObject*, QEvent*) (in 
/usr/lib
/libQtGui.so.4.3.2)
==13067==
==13067== Invalid read of size 4
==13067==    at 0x4C899607: QString::operator=(QString const&) (in 
/usr/lib/libQ
tCore.so.4.3.2)
==13067==    by 0x4D17FD42: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D17FF67: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18D099: QAbstractSocket::waitForReadyRead(int) (in 
/usr/lib/
libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==  Address 0x4774A74 is 68 bytes inside a block of size 120 free'd
==13067==    at 0x4004D31: operator delete(void*) (vg_replace_malloc.c:244)
==13067==    by 0x4D17F5F7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C91B933: QObject::~QObject() (in 
/usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4D17F52F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18957F: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DA07: 
QAbstractSocket::disconnectFromHostImplementation()
(in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D18DD1C: 
QAbstractSocket::qt_metacall(QMetaObject::Call, int,
  void**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4D1AEAC1: QUdpSocket::qt_metacall(QMetaObject::Call, 
int, void
**) (in /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x4C9156EA: QMetaCallEvent::placeMetaCall(QObject*) (in 
/usr/lib
/libQtCore.so.4.3.2)
==13067==    by 0x4C9177D8: QObject::event(QEvent*) (in 
/usr/lib/libQtCore.so.4.
3.2)
==13067==    by 0x4F364A3F: QApplicationPrivate::notify_helper(QObject*, 
QEvent*
) (in /usr/lib/libQtGui.so.4.3.2)
==13067==    by 0x4F36A988: QApplication::notify(QObject*, QEvent*) (in 
/usr/lib
/libQtGui.so.4.3.2)
==13067==
==13067== Invalid read of size 4
==13067==    at 0x4D17D6E7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==  Address 0x4 is not stack'd, malloc'd or (recently) free'd
==13067==
==13067== Process terminating with default action of signal 11 (SIGSEGV)
==13067==  Access not within mapped region at address 0x4
==13067==    at 0x4D17D6E7: (within /usr/lib/libQtNetwork.so.4.3.2)
==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
==13067==
==13067== ERROR SUMMARY: 36 errors from 14 contexts (suppressed: 49 from 1)
==13067== malloc/free: in use at exit: 358,646 bytes in 4,239 blocks.
==13067== malloc/free: 65,140 allocs, 60,901 frees, 6,083,490 bytes 
allocated.
==13067== For counts of detected errors, rerun with: -v
==13067== searching for pointers to 4,239 not-freed blocks.
==13067== checked 18,063,968 bytes.
==13067==
==13067== LEAK SUMMARY:
==13067==    definitely lost: 1,828 bytes in 38 blocks.
==13067==      possibly lost: 1,809 bytes in 30 blocks.
==13067==    still reachable: 355,009 bytes in 4,171 blocks.
==13067==         suppressed: 0 bytes in 0 blocks.
==13067== Use --leak-check=full to see details of leaked memory.







--
 [ signature omitted ] 

Message 4 in thread

Juan-Pablo Caceres wrote:

Here's the issue:

>==13067== Thread 2:
>==13067== Invalid read of size 1
>==13067==    at 0x4D17F6A3: (within /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D17FF67: (within /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D18D099: QAbstractSocket::waitForReadyRead(int) (in
>/usr/lib/
>libQtNetwork.so.4.3.2)
>==13067==    by 0x8054FE6: UDPInput::run() (udp_input.cpp:207)
>==13067==    by 0x4C8658F6: (within /usr/lib/libQtCore.so.4.3.2)
>==13067==    by 0x4910245A: start_thread (in /lib/libpthread-2.5.so)
>==13067==    by 0x4905A23D: clone (in /lib/libc-2.5.so)
>==13067==  Address 0x4774A70 is 64 bytes inside a block of size 120
> free'd ==13067==    at 0x4004D31: operator delete(void*)
> (vg_replace_malloc.c:244) ==13067==    by 0x4D17F5F7: (within
> /usr/lib/libQtNetwork.so.4.3.2) ==13067==    by 0x4C91B933:
> QObject::~QObject() (in
>/usr/lib/libQtCore.so.4.3.2)
>==13067==    by 0x4D17F52F: (within /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D18957F: (within /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D18DA07:
>QAbstractSocket::disconnectFromHostImplementation()
>(in /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D18DD1C:
>QAbstractSocket::qt_metacall(QMetaObject::Call, int,
>  void**) (in /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4D1AEAC1: QUdpSocket::qt_metacall(QMetaObject::Call,
>int, void
>**) (in /usr/lib/libQtNetwork.so.4.3.2)
>==13067==    by 0x4C9156EA: QMetaCallEvent::placeMetaCall(QObject*) (in
>/usr/lib
>/libQtCore.so.4.3.2)
>==13067==    by 0x4C9177D8: QObject::event(QEvent*) (in
>/usr/lib/libQtCore.so.4.
>3.2)
>==13067==    by 0x4F364A3F: QApplicationPrivate::notify_helper(QObject*,
>QEvent*
>) (in /usr/lib/libQtGui.so.4.3.2)
>==13067==    by 0x4F36A988: QApplication::notify(QObject*, QEvent*) (in
>/usr/lib
>/libQtGui.so.4.3.2)

While the trace is incomplete (missing frames, you can get more by passing 
the --num-callers=25 option to valgrind) and you did not rebuild Qt with 
debugging symbols like I asked, I think we have enough information to 
make a guess:

You're using a QObject class (namely, a QUdpSocket one) from a thread that 
is not its thread. Please create it inside the thread or use 
QObject::moveToThread().

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.