gtk deadlocks in referencer

Bug #1256567 reported by Alexey Smirnov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
referencer (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

To trigger the bug I need to do the following:
1. Open any referencer's menu entry. For example I choose Library->Open. A dialogue window appears.
2. Try to interact with the dialogue window by pressing buttons.
Step 2 makes referencer to freeze.

Backtrace shows that the program now sits in __lll_lock_wait () which is called by g_mutex_lock ():

#0 __lll_lock_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007ffff414b192 in _L_lock_1142 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#2 0x00007ffff414b110 in __GI___pthread_mutex_lock (mutex=0x777380)
    at pthread_mutex_lock.c:104
#3 0x00007ffff54d13a1 in g_mutex_lock ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff649dcba in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#5 0x00007ffff54913b6 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff5491708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7 0x00007ffff5491b0a in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007ffff685d277 in gtk_main ()

I am not a GTK programmer and cannot identify an exact source of these deadlocks, but I believe that they are caused by some thread related changes in newer versions of glib. This conclusion is supported by the fact that deadlocks are absent in referencer 1.1.6 in Debian squeeze.

While in my case the bug is reproducible in a rather straightforward manner, it might not be so in general. If the menu is working properly there is another method to trigger the bug. This method inevitably leads to deadlocks for refrencer 1.1.6 in Debian wheezy. I am quite sure this also true for 1.2.1. Steps to reproduce
1. Have a large collection of papers.
2. Create a new library in referencer from this collection. The arxiv plugin must be on. While creating the library, referencer call the arxiv plugin which uses glib to show info boxes. Because of large number of papers large number of treads will be created. This should increase the probability of deadlocks.

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: referencer 1.2.1-1
ProcVersionSignature: Ubuntu 3.11.0-13.20-generic 3.11.6
Uname: Linux 3.11.0-13-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.1
Architecture: amd64
Date: Sat Nov 30 20:42:30 2013
ExecutablePath: /usr/bin/referencer
MarkForUpload: True
ProcEnviron:
 SHELL=/bin/bash
 TERM=xterm
 PATH=(custom, user)
 LANG=ru_RU.UTF-8
 XDG_RUNTIME_DIR=<set>
SourcePackage: referencer
UpgradeStatus: No upgrade log present (probably fresh install)
XsessionErrors:
 (gnome-settings-daemon:2300): GLib-GObject-WARNING **: g_object_notify: object class `GkbdStatus' has no property named `name'
 x-session-manager[2237]: WARNING: Could not launch application 'pulseaudio.desktop': Unable to start application: Не удалось выполнить процесс-потомок «start-pulseaudio-x11» (Нет такого файла или каталога)

Revision history for this message
Alexey Smirnov (alexey-l-smirnov) wrote :
Changed in referencer (Ubuntu):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.