[Interest] QTimer Freeze in 4.8

Simone cjb.sw.nospam at gmail.com
Thu Jun 23 21:53:00 CEST 2016


Sorry, I did not pay attention to the mail recipients.
Today, after many tests I discovered that also a simple application with a QMainWindow only and a timer that increase a counter, is freezed after about 3 hours.
The timer run every 250ms.
The touch screen press recover the situation, and everything resume working magically, it seems that the event loop is waiting for some signals, but unfortunately I cannot follow the sources.
Gdb is working if I put a breakpoint, i can follow my code step by step, but since the event dispatcher is in qt libraries, I cannot see where it stuck.

Any suggestion about some tests that I can do?
Is ther a way to configure gdb to see the the qt sources when debugging?

Thanks a lot





> Il giorno 22/giu/2016, alle ore 21:41, Thiago Macieira <thiago.macieira at intel.com> ha scritto:
> 
>> On quarta-feira, 22 de junho de 2016 14:49:39 PDT Cjb_SW Freescale wrote:
>> yes and no, I mean that every other process is executed proper by Linux,
>> and also a second QThread running in the GUI application is running fine.
>> Seems that only the graphic Thread is "freezed". It will resume by touching
>> the Touchscreen (which is USB, managed via Tslib).
>> 
>> Unfortunately I cannot build backtraces, I have problems with GDB. I can
>> launch the program under gdbserver, and I can set breakpoints, but if I
>> press the Interrupt button, then I can see a disassembly window, and I
>> can't see where it is the programcounter in my sources. So I tried to
>> Interrupt the application while is in the freeze state, but I can't see
>> something useful.
> 
> Please, always reply to the mailing list. If you reply to me personally, it 
> may get lost in inbox and I may never reply. And no one else would have the 
> opportunity to, either.
> 
> Anyway, since you said that other processes are running just fine and even 
> other threads in the same process, my conclusion is that something is blocking 
> the GUI thread in your application. We've seen this happen in Qt 5 with XCB, 
> whenever the screensaver is on or when you swap to another virtual terminal: 
> there's a function call we make that blocks on waiting for a reply from the X 
> server, which won't come until the display is unlocked.
> 
> Clearly that's not your case, but you get the idea of what it might be.
> 
> Unfortunately, I can't help you without a backtrace (and one with debug 
> symbols, at that). I have NEVER built a QWS build of Qt and I don't even have 
> a Qt 4.8 source handy to look things up. Sorry.
> 
> My recommendations are:
> * fix GDB. It's unacceptable for it not to work.
> * consider upgrading to Qt 5.6 or 5.7 (which means dropping QWS for something 
>    else)
> 
> Note that you can work around a non-working gdbserver by causing your process 
> to dump core while in the frozen state (kill -ABRT, for example), then loading 
> that core file on your host machine's target gdb.
> 
> -- 
> Thiago Macieira - thiago.macieira (AT) intel.com
>  Software Architect - Intel Open Source Technology Center
> 



More information about the Interest mailing list