#239 Segfault when shutting down newly created connections

iTALC 2
closed-invalid
Crash (29)
5
2013-08-26
2012-06-12
No

When shutting down an iTALC connection that has been created a few seconds before (0> t > 4) the process dies with a segmentation fault.

I'm using the iTALC 2 library with a management tool that is part of UCS@school. When opening a room (creating core and VNC connections to several computers) the management tools provides the feature to re-initialize the connections. In that case all existing connections are closed (calling stop on the ItalcVncConnection) and after that new connections to the same computers are opened again. If the users calls the re-initialization within at maximum 4 seconds after opening the room the process dies. gdb shows the following trace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fdd3cdc6700 (LWP 1463)]
0x00007fdd4f365cdc in QMutex::lock (this=0x7fdd380604b0) at
thread/qmutex.cpp:150
150 if (d->recursive) {
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt
#0 0x00007fdd4f365cdc in QMutex::lock (this=0x7fdd380604b0) at
thread/qmutex.cpp:150
#1 0x00007fdd4f36a999 in QThreadPrivate::finish (arg=<value optimized out>) at
thread/qthread_unix.cpp:270
#2 0x00007fdd4f36ae1d in ~__pthread_cleanup_class (arg=0x7fdd380009d0) at
/usr/include/pthread.h:535
#3 QThreadPrivate::start (arg=0x7fdd380009d0) at thread/qthread_unix.cpp:253
#4 0x00007fdd51cfa8ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#5 0x00007fdd50bcb86d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6 0x0000000000000000 in ?? ()
(gdb) print d
$1 = (QMutexPrivate *) 0x0

strace:

[pid 21084] futex(0x1d7302c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1,
{1339411175, 826215000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
[pid 21084] futex(0x1d73000, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 21084] tgkill(21084, 21092, SIGRTMIN <unfinished ...>
[pid 21092] <... connect resumed> ) = ? ERESTARTSYS (To be restarted)
[pid 21084] <... tgkill resumed> ) = 0
[pid 21092] --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 21084] futex(0x7ff38400645c,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, {1339411176, 826776000},
ffffffff <unfinished ...>
[pid 21092] futex(0x7ff39b892990, FUTEX_WAKE_PRIVATE, 2147483647) = 0
[pid 21092] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 21092 detached
[pid 21084] <... ???? resumed> ) = ? <unavailable>
[pid 21094] +++ killed by SIGSEGV +++
[pid 21095] +++ killed by SIGSEGV +++
[pid 21093] +++ killed by SIGSEGV +++
+++ killed by SIGSEGV +++

So far I could not find the reason for that.

Qt: 4.6.3-4 (Debian based system)

Discussion

  • This issue may be closed. The segfault was result of a conflict between the memory management of our self-developed iTALC python bindings and the QT memory management.

     
    • status: open --> closed-invalid
    • assigned_to: Tobias Doerffel
     
  • Closing as requested.