After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 330637 - Gst makes application crash when loading .asx files
Gst makes application crash when loading .asx files
Status: RESOLVED DUPLICATE of bug 330120
Product: totem-pl-parser
Classification: Core
Component: General
Old
Other All
: Normal critical
: ---
Assigned To: General Totem maintainer(s)
General Totem maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2006-02-10 09:44 UTC by David Prieto
Modified: 2008-06-03 17:39 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14



Description David Prieto 2006-02-10 09:44:39 UTC
Please describe the problem:
Whenever I try to load an internet radio station Gstreamer makes the application
freeze, be it totem or rhythmbox.

Steps to reproduce:
1. open totem or rhythmbox
2. load http://www.ondacero.es/europafm.asx
3. watch the app crash


Actual results:


Expected results:
I would like the application to actually play the radio station

Does this happen every time?
yes

Other information:
Comment 1 Christian Fredrik Kalager Schaller 2006-02-10 10:10:55 UTC
I could reproduce the bug, the issue is actually that if you feed a bogus link into 'open location' Totem crashes. Doing http://www.fluendo.com/dontexist.asx gave me same result. Re-assigning to Totem.
Comment 2 David Prieto 2006-02-10 10:28:30 UTC
It happens on rhythmbox too, and I seem to remember the rhythmbox devs told me it as because od Gst. On top of that, with earlier versions of totem I could listen to the stations if I used the xine backend instead of Gst.
Comment 3 Bastien Nocera 2006-02-10 10:32:21 UTC
$ ./test-parser http://www.fluendo.com/dontexist.asx

###################### parsing ################

added URI 'http://www.fluendo.com/dontexist.asx' with title 'empty' genre '(null)'

And the xine-lib backend will error:
Totem could not play 'http://www.fluendo.com/dontexist.asx'.
There is no input plugin to handle the location of this movie

Make sure you have a recent version of Totem and its playlist parser. If it still crashes, it's probably a GStreamer crash. A backtrace would help...
Comment 4 Christian Fredrik Kalager Schaller 2006-02-10 11:26:50 UTC
Here is the bt I am getting:

(gdb) thread apply all bt

Thread 1 (Thread -1208342864 (LWP 2775))

  • #0 ??
  • #1 __nptl_setxid
    from /lib/libpthread.so.0
  • #2 seteuid
    from /lib/libc.so.6
  • #3 gnome_vfs_get_daemon_volume_monitor_type
    from /usr/lib/libgnomevfs-2.so.0
  • #4 gnome_vfs_transform_get
    from /usr/lib/libgnomevfs-2.so.0
  • #5 gnome_vfs_uri_new_private
    from /usr/lib/libgnomevfs-2.so.0
  • #6 gnome_vfs_uri_new
    from /usr/lib/libgnomevfs-2.so.0
  • #7 gnome_vfs_open
    from /usr/lib/libgnomevfs-2.so.0
  • #8 my_gnome_vfs_get_mime_type_with_data
    at totem-pl-parser.c line 153
  • #9 totem_pl_parser_parse_internal
    at totem-pl-parser.c line 1695
  • #10 totem_playlist_add_mrl
    at totem-playlist.c line 1526
  • #11 totem_action_open_files_list
    at totem.c line 1566
  • #12 totem_action_open_files
    at totem.c line 1511
  • #13 on_open_location1_activate
    at totem.c line 1665
  • #14 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #19 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_menu_shell_append
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_menu_attach
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 gtk_marshal_BOOLEAN__VOID
    from /usr/lib/libgtk-x11-2.0.so.0
  • #24 g_value_set_static_boxed
    from /usr/lib/libgobject-2.0.so.0
  • #25 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #26 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #27 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #28 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #29 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #30 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #31 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #32 gdk_add_client_message_filter
    from /usr/lib/libgdk-x11-2.0.so.0
  • #33 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #34 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #35 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #36 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #37 main
    at totem.c line 3627

With GST_DEBUG it seems the only relevant message is:
(totem:2816): GLib-CRITICAL **: g_str_has_prefix: assertion `str != NULL' failed
Comment 5 Bastien Nocera 2006-02-10 12:06:05 UTC
Sounds like a SIG33, not a segfault you're seeing.
Add those lines to your ~/.gdbinit:
handle SIG33 nostop
handle SIG33 pass
Comment 6 Christian Fredrik Kalager Schaller 2006-02-10 17:40:48 UTC
Jan/Thaytan said he was able to see the problem with this backtrace

(gdb) bt
  • #0 strcmp
    from /lib/libc.so.6
  • #1 totem_pl_parser_parse_internal
    at totem-pl-parser.c line 1712
  • #2 totem_playlist_add_mrl
    at totem-playlist.c line 1526
  • #3 totem_action_open_files_list
    at totem.c line 1566
  • #4 totem_action_open_files
    at totem.c line 1511
  • #5 on_open_location1_activate
    at totem.c line 1665
  • #6 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #11 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 gtk_menu_shell_append
    from /usr/lib/libgtk-x11-2.0.so.0
  • #14 gtk_menu_attach
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 gtk_marshal_BOOLEAN__VOID
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 g_value_set_static_boxed
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #21 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #24 gdk_add_client_message_filter
    from /usr/lib/libgdk-x11-2.0.so.0
  • #25 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #26 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #27 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #28 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #29 main
    at totem.c line 3627
  • #1 totem_pl_parser_parse_internal
    at totem-pl-parser.c line 1712
$1 = 0x0
(gdb) list 1708
1703
1704            parser->priv->recurse_level--;
1705
1706            if (ret == TOTEM_PL_PARSER_RESULT_SUCCESS)
1707                    return ret;
1708
1709            super = gnome_vfs_get_supertype_from_mime_type (mimetype);
1710            for (i = 0; i < G_N_ELEMENTS (ignore_types); i++) {
1711                    if (gnome_vfs_mime_type_is_supertype (ignore_types[i].mimetype) != FALSE) {
1712                            if (strcmp (super, ignore_types[i].mimetype) == 0) {
(gdb)
1713                                    g_free (super);
1714                                    return TOTEM_PL_PARSER_RESULT_IGNORED;
1715                            }
1716                    } else {
1717                            GnomeVFSMimeEquivalence eq;
1718
1719                            eq = gnome_vfs_mime_type_get_equivalence (mimetype, ignore_types[i].mimetype);
1720                            if (eq == GNOME_VFS_MIME_PARENT || eq == GNOME_VFS_MIME_IDENTICAL) {
1721                                    g_free (super);
1722                                    return TOTEM_PL_PARSER_RESULT_IGNORED;
(gdb) print mimetype
$2 = 0x0
(gdb) list 1700
1695                                    mimetype = my_gnome_vfs_get_mime_type_with_data (url, &data);
1696                            }
1697                            ret = (* dual_types[i].func) (parser, url, data);
1698                            break;
1699                    }
1700            }
1701
1702            g_free (data);
1703
1704            parser->priv->recurse_level--;
(gdb) print url
$3 = 0x8371f08 "http://www.fluendo.com/binbong.asx"
(gdb)
$4 = 0x8371f08 "http://www.fluendo.com/binbong.asx"
(gdb)
Comment 7 Bastien Nocera 2006-02-10 17:52:12 UTC
I already fixed that bug the other day.

*** This bug has been marked as a duplicate of 330120 ***
Comment 8 Philip Withnall 2008-06-03 17:39:25 UTC
Mass-move from totem to totem-pl-parser. You can remove all messages by searching for this comment.