Package: wordwarvi
Version: 1.00+dfsg1-3
Severity: grave
Tags: patch
Justification: renders package unusable

Dear Maintainer,

Wordwarvi cannot start game.

>$ LANG=C gdb -q wordwarvi
>Reading symbols from wordwarvi...(no debugging symbols found)...done.
>(gdb) r
>Starting program: /usr/games/wordwarvi
>[Thread debugging using libthread_db enabled]
>Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>No joystick...
(snip)
>[New Thread 0x7fffe7567700 (LWP 3460)]
>Decoding audio data...done.
>Can't open /dev/input/event5: Permission denied
>No rumble...
>Attempt to unlock mutex that was not locked
>
>Program received signal SIGABRT, Aborted.
>0x00007ffff5b8b077 in __GI_raise (sig=sig@entry=6)
>    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>56    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
>(gdb) bt
>#0  0x00007ffff5b8b077 in __GI_raise (sig=sig@entry=6)
>    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
>#1  0x00007ffff5b8c458 in __GI_abort () at abort.c:89
>#2  0x00007ffff5f8b95d in g_mutex_unlock_slowpath (mutex=<optimized out>,
>    prev=<optimized out>)
>    at /build/glib2.0-Dv_k6u/glib2.0-2.42.0/./glib/gthread-posix.c:1327
>#3  0x00007ffff683ebbf in IA__gtk_main ()
>    at /build/gtk+2.0-zztKf7/gtk+2.0-2.24.24/gtk/gtkmain.c:1256
>#4  0x0000000000403934 in ?? ()
>#5  0x00007ffff5b77b45 in __libc_start_main (main=0x402b20, argc=1,
>    argv=0x7fffffffe3d8, init=<optimized out>, fini=<optimized out>,
>    rtld_fini=<optimized out>, stack_end=0x7fffffffe3c8) at libc-start.c:287
(snip)

This is caused by GLib's mutex implementation change.
See GNOME tracker about this [1].

Wordwarvi uses the "wrong code" (in [2]'s phrase),
so crashes in g_mutex_unlock_slowpath().


How to fix:
(a) Change gtk+2.0 to accept also "wrong code" (see [2] and Debian bug #763690)
or
(b) Change wordwarvi to use the "correct" way (in [2]'s phrase).

I wrote a patch for (b). Please apply attached patch.


[1] https://bugzilla.gnome.org/show_bug.cgi?id=735428
[2] https://github.com/GNOME/gtk/commit/79c3ff3c4ed74bbcc820dac2d5180fa4d48d55ec


-- System Information:
Debian Release: jessie/sid
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'testing'), (500,
'stable'), (500, 'oldstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.14-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages wordwarvi depends on:
ii  libasound2       1.0.28-1
ii  libc6            2.19-11
ii  libglib2.0-0     2.42.0-1
ii  libgtk2.0-0      2.24.24-1
ii  libogg0          1.3.2-1
ii  libportaudio2    19+svn20140130-1
ii  libvorbis0a      1.3.2-1.4
ii  libvorbisfile3   1.3.2-1.4
ii  wordwarvi-sound  1.00+dfsg1-3

wordwarvi recommends no packages.

wordwarvi suggests no packages.

-- no debconf information


Regards,
Nobuhiro
--- wordwarvi-1.00+dfsg1.orig/wordwarvi.c
+++ wordwarvi-1.00+dfsg1/wordwarvi.c
@@ -14068,6 +14068,7 @@ int main(int argc, char *argv[])
        g_thread_init(NULL);
 
     gdk_threads_init();
+    gdk_threads_enter();
 
     gettimeofday(&start_time, NULL);
 
@@ -14075,6 +14076,7 @@ int main(int argc, char *argv[])
      * and waits for an event to occur (like a key press or
      * mouse event). */
     gtk_main ();
+    gdk_threads_leave();
 
     wwviaudio_stop_portaudio();
     free_debris_forms();

Reply via email to