Bug 1327123

Summary: Loading playlist from file doesn't work
Product: Red Hat Enterprise Linux 7 Reporter: Jiri Prajzner <jprajzne>
Component: totem-pl-parserAssignee: Bastien Nocera <bnocera>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.3CC: bnocera, jprajzne, tpelka
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-11 11:52:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
rhythmbox -d output
none
.gdbinit file
none
stacktrace none

Description Jiri Prajzner 2016-04-14 10:04:49 UTC
Description of problem:
When loading playlist (m3u) from file, it doesn't load its contents.

Version-Release number of selected component (if applicable):
3.3.1

How reproducible:
Always

Steps to Reproduce:
1. have m3u playlist ready
2. Click '+' > Load from file
3. choose your playlist > Open

Actual results:
Playlist is added into the list, but its contents are not 

Expected results:
Playlist contents are visible and playable

Additional info:

Comment 2 Bastien Nocera 2016-05-23 16:26:44 UTC
Can't reproduce this. What's the output of:
rhythmbox -d
when reproducing the problem?

What's the content of the m3u file? Are the files mentioned in the playlist available?

Comment 3 Jiri Prajzner 2016-05-25 09:58:58 UTC
Created attachment 1161370 [details]
rhythmbox -d output

Comment 4 Jiri Prajzner 2016-05-25 10:00:20 UTC
Contents of m3u:
A1 Dave.flac
A2 Muzzell Loop (Penguin RMX).flac
A3 Paddy Cluck Cluck.flac
A4 WUDUEVECNSDNGTNAMCBKPRO.flac
A5 We Have To Drink Some Booze.flac
A6 Goats Chair.flac

These files are available.

Comment 5 Bastien Nocera 2016-06-10 09:07:05 UTC
(05:45:17) [0x20c0430] [handle_playlist_entry_cb] rb-playlist-manager.c:236: adding uri file:///home/test (title (null), genre (null)) from playlist

Either rb_canonicalise_uri() is broken, or totem-pl-parser is.

Could you please save the attached text file as ~/.gdbinit and, after installing rhythmbox-debuginfo, run "gdb --args rhythmbox" and reproduce the problem.

You should get some thing like that in the output:
$1 = 0x28eb240 "file:///home/hadess/Music/Moby%20-%20Innocents/05%20-%20Moby%20-%20The%20Perfect%20Life%20(with%20Wayne%20Coyne).mp3"
$2 = 0x27fb480 "file:///home/hadess/Music/Moby%20-%20Innocents/05%20-%20Moby%20-%20The%20Perfect%20Life%20(with%20Wayne%20Coyne).mp3"

Could you also please make a tarball out of the playlist and audio files (if necessary, remove items from both the playlist file and the file list to make it a minimal reproducer)?

Comment 6 Bastien Nocera 2016-06-10 09:07:26 UTC
Created attachment 1166595 [details]
.gdbinit file

Comment 7 Jiri Prajzner 2016-06-27 13:58:33 UTC
Rhythmbox hangs if the gdb attaches to it.
On the positive note, if i provide absolute path to the files in the playlist, Rhythmbox does load them :)
If a make an intentional typo in the path, it doesn't complain about it though.
I think it'd be great to:
a) make it work with relative paths (search for the files recursively in the playlist directory)
b) display a GUI message that the files can't be loaded.

What do you think please?

Comment 8 Bastien Nocera 2016-06-28 08:09:40 UTC
(In reply to Jiri Prajzner from comment #7)
> Rhythmbox hangs if the gdb attaches to it.

Don't attach to it, launch it as mentioned in the comment above, and type "run" at the gdb prompt. If in doubt, please try asking one of your colleagues that knows how to operate gdb.

> On the positive note, if i provide absolute path to the files in the
> playlist, Rhythmbox does load them :)
> If a make an intentional typo in the path, it doesn't complain about it
> though.
> I think it'd be great to:
> a) make it work with relative paths (search for the files recursively in the
> playlist directory)
> b) display a GUI message that the files can't be loaded.
> 
> What do you think please?

I still need the gdb output I requested.

Comment 9 Jiri Prajzner 2016-06-28 10:05:20 UTC
Here you are:
[test@qe-dell-ovs5-vm-36 ~]$ gdb --args rhythmbox
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-92.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
No symbol table is loaded.  Use the "file" command.
Breakpoint 1 (rb-playlist-manager.c:235) pending.
Reading symbols from /usr/bin/rhythmbox...Reading symbols from /usr/lib/debug/usr/bin/rhythmbox.debug...done.
done.
(gdb) run
Starting program: /bin/rhythmbox 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffe2a16700 (LWP 9501)]
[New Thread 0x7fffe2215700 (LWP 9502)]
[New Thread 0x7fffe079f700 (LWP 9503)]
[New Thread 0x7fffdfd81700 (LWP 9504)]
[New Thread 0x7fffdf580700 (LWP 9505)]
[New Thread 0x7fffded7f700 (LWP 9506)]
[New Thread 0x7fffde57e700 (LWP 9507)]
[New Thread 0x7fffdcef3700 (LWP 9508)]
[Thread 0x7fffdf580700 (LWP 9505) exited]
[Thread 0x7fffded7f700 (LWP 9506) exited]
[Thread 0x7fffdfd81700 (LWP 9504) exited]

(rhythmbox:9497): libsoup-CRITICAL **: soup_server_quit: assertion 'priv->listeners != NULL' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff69906fb "libsoup", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, 
    args=args@entry=0x7fffffffb910) at gmessages.c:1086
1086		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));

Comment 10 Bastien Nocera 2016-06-30 13:28:12 UTC
You need to type "continue" when you hit warnings. Most of those are already tracked in bug 1259708 and bug 1351643.

Comment 11 Jiri Prajzner 2016-06-30 13:38:36 UTC
gdb --args rhythmbox
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-92.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
No symbol table is loaded.  Use the "file" command.
Breakpoint 1 (rb-playlist-manager.c:235) pending.
Reading symbols from /usr/bin/rhythmbox...Reading symbols from /usr/lib/debug/usr/bin/rhythmbox.debug...done.
done.
(gdb) run
Starting program: /bin/rhythmbox 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Detaching after fork from child process 18866.
[New Thread 0x7fffe2a16700 (LWP 18869)]
[New Thread 0x7fffe2215700 (LWP 18870)]
[New Thread 0x7fffe079f700 (LWP 18871)]
[New Thread 0x7fffdfd81700 (LWP 18872)]
[New Thread 0x7fffdf580700 (LWP 18873)]
[New Thread 0x7fffded7f700 (LWP 18874)]
[New Thread 0x7fffde57e700 (LWP 18875)]
[New Thread 0x7fffddd7d700 (LWP 18876)]
[New Thread 0x7fffdd57c700 (LWP 18877)]
[Thread 0x7fffde57e700 (LWP 18875) exited]
[Thread 0x7fffdd57c700 (LWP 18877) exited]
[Thread 0x7fffded7f700 (LWP 18874) exited]
[Thread 0x7fffddd7d700 (LWP 18876) exited]
[Thread 0x7fffdfd81700 (LWP 18872) exited]

(rhythmbox:18862): libsoup-CRITICAL **: soup_server_quit: assertion 'priv->listeners != NULL' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff69906fb "libsoup", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, 
    args=args@entry=0x7fffffffb910) at gmessages.c:1086
1086		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) continue
Continuing.

(rhythmbox:18862): GLib-GObject-CRITICAL **: object SoupServer 0x12be3e0 finalized while still in-construction

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff3084604 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, 
    args=args@entry=0x7fffffffb930) at gmessages.c:1086
1086		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
(gdb) 

Doesn't seem to make any difference here.

Comment 12 Bastien Nocera 2016-06-30 19:06:12 UTC
(In reply to Jiri Prajzner from comment #11)
> gdb --args rhythmbox
> GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-92.el7
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-redhat-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> No symbol table is loaded.  Use the "file" command.
> Breakpoint 1 (rb-playlist-manager.c:235) pending.
> Reading symbols from /usr/bin/rhythmbox...Reading symbols from
> /usr/lib/debug/usr/bin/rhythmbox.debug...done.
> done.
> (gdb) run
> Starting program: /bin/rhythmbox 
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> Detaching after fork from child process 18866.
> [New Thread 0x7fffe2a16700 (LWP 18869)]
> [New Thread 0x7fffe2215700 (LWP 18870)]
> [New Thread 0x7fffe079f700 (LWP 18871)]
> [New Thread 0x7fffdfd81700 (LWP 18872)]
> [New Thread 0x7fffdf580700 (LWP 18873)]
> [New Thread 0x7fffded7f700 (LWP 18874)]
> [New Thread 0x7fffde57e700 (LWP 18875)]
> [New Thread 0x7fffddd7d700 (LWP 18876)]
> [New Thread 0x7fffdd57c700 (LWP 18877)]
> [Thread 0x7fffde57e700 (LWP 18875) exited]
> [Thread 0x7fffdd57c700 (LWP 18877) exited]
> [Thread 0x7fffded7f700 (LWP 18874) exited]
> [Thread 0x7fffddd7d700 (LWP 18876) exited]
> [Thread 0x7fffdfd81700 (LWP 18872) exited]
> 
> (rhythmbox:18862): libsoup-CRITICAL **: soup_server_quit: assertion
> 'priv->listeners != NULL' failed
> 
> Program received signal SIGTRAP, Trace/breakpoint trap.
> g_logv (log_domain=0x7ffff69906fb "libsoup", log_level=G_LOG_LEVEL_CRITICAL,
> format=<optimized out>, 
>     args=args@entry=0x7fffffffb910) at gmessages.c:1086
> 1086		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
> (gdb) continue
> Continuing.
> 
> (rhythmbox:18862): GLib-GObject-CRITICAL **: object SoupServer 0x12be3e0
> finalized while still in-construction
> 
> Program received signal SIGTRAP, Trace/breakpoint trap.
> g_logv (log_domain=0x7ffff3084604 "GLib-GObject",
> log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, 
>     args=args@entry=0x7fffffffb930) at gmessages.c:1086
> 1086		  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
> (gdb) 
> 
> Doesn't seem to make any difference here.

You need to keep on typing "continue"...

Comment 13 Jiri Prajzner 2016-07-01 14:55:17 UTC
Created attachment 1174945 [details]
stacktrace

Comment 14 Bastien Nocera 2016-07-05 08:26:51 UTC
That's a known upstream bug in totem-pl-parser, specifically with m3u files:
#6  0x00007ffff6f25628 in totem_pl_parser_add_hash_table (parser=parser@entry=0x172aa30, 
    metadata=metadata@entry=0x16cbce0, uri=uri@entry=0x13e49e0 "\360\352z", is_playlist=is_playlist@entry=0)
    at totem-pl-parser.c:1373

Comment 15 Jiri Prajzner 2016-07-18 08:57:24 UTC
We have it covered in https://tcms.engineering.redhat.com/plan/19699

Comment 17 Jiri Prajzner 2018-07-11 11:52:03 UTC
can't reproduce in rhel 7.6 & rhythmbox 3.4.2