gtkpod crashes with SIGSEGV in gdk_window_set_geometry_hints

Bug #512964 reported by Chaitanya Gupta
90
This bug affects 18 people
Affects Status Importance Assigned to Milestone
gtkpod (Debian)
Fix Released
Unknown
gtkpod (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: gtkpod

I was copying tracks from my iPod (2nd gen Nano) onto the filesystem (NTFS partition), when gtkpod crashed.

ProblemType: Bug
Architecture: amd64
Date: Wed Jan 27 02:25:38 2010
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/gtkpod
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
Package: gtkpod 0.99.14-2ubuntu3
ProcEnviron:
 PATH=(custom, user)
 LANG=en_IN
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-17.54-generic
SourcePackage: gtkpod
Uname: Linux 2.6.31-17-generic x86_64

Revision history for this message
Chaitanya Gupta (mail-chaitanyagupta) wrote :
Revision history for this message
Chaitanya Gupta (mail-chaitanyagupta) wrote :

Here's the backtrace from gdb for this process:

Program received signal SIGSEGV, Segmentation fault.
0x00007f0ec42cbe64 in gdk_window_set_geometry_hints () from /usr/lib/libgdk-x11-2.0.so.0
(gdb) bt
#0 0x00007f0ec42cbe64 in gdk_window_set_geometry_hints () from /usr/lib/libgdk-x11-2.0.so.0
#1 0x00007f0ec476b812 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#2 0x00007f0ec29035ae in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3 0x00007f0ec291864d in ?? () from /usr/lib/libgobject-2.0.so.0
#4 0x00007f0ec2919d39 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#5 0x00007f0ec291a283 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#6 0x00007f0ec45c4bd0 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#7 0x00007f0ec427d8c6 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#8 0x00007f0ec2466bce in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#9 0x00007f0ec246a598 in ?? () from /lib/libglib-2.0.so.0
#10 0x00007f0ec246a6c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#11 0x00007f0ec4646021 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#12 0x000000000044e825 in export_files_init ()
#13 0x00007f0ec29035ae in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#14 0x00007f0ec2918983 in ?? () from /usr/lib/libgobject-2.0.so.0
#15 0x00007f0ec2919d39 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#16 0x00007f0ec291a283 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#17 0x00007f0ec475980e in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x00007f0ec465a74d in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00007f0ec465bf49 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00007f0ec464c728 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x00007f0ec29035ae in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#22 0x00007f0ec291864d in ?? () from /usr/lib/libgobject-2.0.so.0
#23 0x00007f0ec2919bcc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#24 0x00007f0ec291a283 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#25 0x00007f0ec475371f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00007f0ec4644cd3 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#27 0x00007f0ec4645ca3 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#28 0x00007f0ec42bacdc in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#29 0x00007f0ec2466bce in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007f0ec246a598 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007f0ec246a9f5 in g_main_loop_run () from /lib/libglib-2.0.so.0
#32 0x00007f0ec4646177 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#33 0x000000000045b352 in main ()

Revision history for this message
Elladan (elladan) wrote :

This happens 100% of the time when using the copy to filesystem feature for me. It makes the feature completely unusable.

Revision history for this message
Matthew Horr (matthorr) wrote :

Also affects me copying to filesystem with Nana 3G

Changed in gtkpod (Ubuntu):
status: New → Confirmed
Revision history for this message
puzzler995 (emarsee1) wrote :

Also affects me copying to filesystem with iPod Touch 2G with iPhone OS 3.1.2 installed

Revision history for this message
Motin (motin) wrote :

Same here. Anyone knows another way to copy files from iPod to filesystem with the track/video/filenames intact?

Revision history for this message
Duane Waddle (duane-waddle) wrote :

This problem appears to be related to a section of code where each file to be exported is handled in a separate worker thread. From what I can tell, when the worker thread does something that causes the warning dialog box to pop up (overwriting an existing file for example), this causes the crash.

I don't know enough about the app (or about GTK+ apps in general) to fix the underlying issue right now, but there was an #ifdef around the threaded version of the code and a #else to fallback to its single-thread equivalent.

The patch attached is an ugly, horrible workaround that rigs the #ifdef to where the single-thread version of the code is always used. It doesn't fix the underlying issue at all - but at least should allow folks who are being impacted to work around it.

tags: added: patch
Changed in gtkpod (Debian):
status: Unknown → New
Revision history for this message
Drew Scott Daniels (drewdaniels) wrote :

I backported version 1.0 from mavric (just a simple source download and build), and I didn't get this error, I got a different error. Unfortunately ubuntu-bug said the package wasn't from ubuntu so it wasn't easy for me to add data to Launchpad about the new failure.

First I downloaded the three source files into a directory by themselves, then I ran:
$ dpkg-source -x gtkpod_1.0.0-0ubuntu1.dsc
$ cd gtkpod-1.0.0/
$ dpkg-buildpackage -b
$ dpkg -i ../*.deb

After running gtkpod and extracting the files, it seemed
gdb showed:
gtkpod: ../../src/xcb_io.c:249: process_responses: Assertion `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe27fc700 (LWP 9684)]
0x00007ffff4794a75 in raise () from /lib/libc.so.6

I still want to check the source code to see if the relevant part was made thread safe, or I just didn't hit the race condition before hitting this other bug.

Revision history for this message
Drew Scott Daniels (drewdaniels) wrote :

file_export.c sometimes calls gtkpod_warning
misc_confirm.c's gtkpod_warning calls gtkpod_confirmation
confirmation.c's GtkResponseType gtkpod_confirmation is fairly big and finding potential race conditions there would be very time consuming for me. Since this code hasn't changed in the latest upstream release I think an upstream bug needs to be filed for this issue.
The upstream bug-tracker is at http://gtkpod.org/bugs/index.php?do=toplevel&project=0 and I haven't seen any bug filed that's similar to this one except one that claims there's no error messages for an export files crash:
http://gtkpod.org/bugs/index.php?do=details&task_id=24&project=1&status[0]=

I'm going to try to open an link in a new upstream bug.

Revision history for this message
Drew Scott Daniels (drewdaniels) wrote :
Changed in gtkpod (Debian):
status: New → Confirmed
Revision history for this message
Duane Waddle (duane-waddle) wrote :

Upstream bug was closed as 'fixed' on 2011-02-15. I've not been able to test it yet, but a quick glance at the source repository makes me think it was fixed in commit 40d3357adca13c532a706e86496f8d3410722484 .

http://gtkpod.git.sourceforge.net/git/gitweb.cgi?p=gtkpod/gtkpod;a=commit;h=40d3357adca13c532a706e86496f8d3410722484

Changed in gtkpod (Debian):
status: Confirmed → Fix Released
tags: added: patch-accepted-upstream
Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

Ubuntu 9.10 Has reached his EOL, and this bug seems to be fixed upstream, so I'm closing.

Changed in gtkpod (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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