GNOME Bugzilla – Bug 358017
>=gtk+2.10.3 freezes audacious
Last modified: 2006-10-02 21:06:16 UTC
"open playlist" and "save playlist" commands will freeze audacious when gtk+-2.10 is installed. select a playlist, and click "save" or "open", and the modal FileChooserDialog will freeze with the selected button inset. i've isolated the problem to the function "playlist_file_selection" on ui_playlist.c:954. playlist_file_selection will properly return the chosen playlist filename, but doesn't return from "gtk_widget_destroy", freeing the dialog. i don't know what's going on with "gtk_widget_destroy". please check out the attached gdb session and ui_playlist.c excerpt. I don't think this is related to broken CFLAGS. I've tried compiling pango, atk, glib, gtk+, audacious, and audacious-plugins with CFLAGS="-ggdb -pipe" with the same results. i run gcc 4.1.1, glibc-2.4, and i've tried gtk+-2.10.3 and 2.10.4. i'm guessing it's probably a gtk+-2.10 bug because audacious w/gtk+-2.8.20 works.
Created attachment 73513 [details] gdb with audacious-1.2.0-r1 and gtk+-2.10.3 here i did "open playlist", selected an .m3u, break at gtk_widget_destroy, get a nice backtrace, see there's a filename, continue to gtk_widget_destroy, the dialog freezes, and it never returns!
excerpt from audacious/ui_playlist.c:921-961 -------------->8------------------>8---------------->8-------------------------- playlist_file_selection(const gchar * title, gboolean save, const gchar * default_filename) { GtkWidget *dialog, *button; gchar *filename; g_return_val_if_fail(title != NULL, NULL); dialog = gtk_file_chooser_dialog_new(title, GTK_WINDOW(mainwin), save ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL); if (default_filename) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), default_filename); button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); gtk_button_set_use_stock(GTK_BUTTON(button), TRUE); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); button = gtk_dialog_add_button(GTK_DIALOG(dialog), save ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT); gtk_button_set_use_stock(GTK_BUTTON(button), TRUE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); else filename = NULL; gtk_widget_destroy(dialog); return filename; }
mmmm, autechre? very good taste! :-) perhaps related to the other problems we are facing with gtk+ 2.10.4 like bug 358405. :-/
Are you using the gnome-vfs filesystem backend ? Both the gnome-vfs and the unix backends had deadlock issues, which should be fixed in cvs.
hooray! i tried gtk+2.10.5 and audacious doesn't freeze opening/saving playlists. good work!