I have a desktop app that appears to hang inside of XojoGUIFrameworkARM. The app was unresponsive so I ran GDB backtrace to find where the process was hung.
Thread 1 (Thread 0xb2be3040 (LWP 26748)):
#0 futex_wait_cancelable (private=0, expected=0, futex_word=0x19cc1e4) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x0, cond=0x19cc1b8) at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0x19cc1b8, mutex=0x0) at pthread_cond_wait.c:655
#3 0xb69ec6a8 in ?? () from /home/<obfuscated>/Libs/XojoGUIFrameworkARM.so
#4 0xb69ea200 in ?? () from /home/<obfuscated>/Libs/XojoGUIFrameworkARM.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
From the backtrace I assume it is waiting for the main thread to resume. It would appear that other threads are still running, just not the main event loop thread. Running strace shows that there are still system calls like getting the system time and reading files. There is a constant ioctl FIONREAD and _newselect (timeout) that might mean something?
[pid 26748] ioctl(27, FIONREAD, [0]) = 0
[pid 26748] _newselect(27, [26], [], [26], {tv_sec=0, tv_usec=0}) = 0 (Timeout)
[pid 26748] ioctl(26, FIONREAD, [0]) = 0
[pid 26748] _newselect(11, [10], [], [10], {tv_sec=0, tv_usec=0}) = 0 (Timeout)
[pid 26748] ioctl(10, FIONREAD, [0]) = 0
[pid 26748] clock_gettime(CLOCK_MONOTONIC, {tv_sec=159264, tv_nsec=850974432}) = 0
[pid 26748] clock_gettime(CLOCK_MONOTONIC, {tv_sec=159264, tv_nsec=851156872}) = 0
[pid 26748] clock_gettime(CLOCK_MONOTONIC, {tv_sec=159264, tv_nsec=851334906}) = 0
[pid 26748] clock_gettime(CLOCK_MONOTONIC, {tv_sec=159264, tv_nsec=851513976}) = 0
[pid 26748] futex(0x2541078, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 10504] <... futex resumed> ) = 0
[pid 26748] futex(0x19cc1e0, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid 10504] futex(0x2541034, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 10504] clock_gettime(CLOCK_MONOTONIC, {tv_sec=159264, tv_nsec=852210405}) = 0
Threads like some networking tasks appear to not be working either but did not fail at the same time. I do not have any dialogs or UI blocking code that I can think of.
Does anyone have any thoughts on where to start looking?
Thanks!