! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Crash on pause and resume due to massive amount of open files
Status:
RESOLVED: FIXED

Comments

Description Sebastian 2013-01-22 09:49:32 CET
I am using parole to play long mp3 files. On some files I experience crashes when pausing and then resuming after some time.

The crash is because of too many open files:

******

(parole:18369): parole-WARNING **: Unable to load icon : gtk-media-pause : Fehler beim Öffnen der Datei: Zu viele offene Dateien

...

(parole:18369): Gtk-CRITICAL **: IA__gtk_widget_render_icon: assertion `size > GTK_ICON_SIZE_INVALID || size == -1' failed

(parole:18369): Gtk-WARNING **: Attempting to store changes into `/home/me/.local/share/recently-used.xbel', but failed: Datei »/home/me/.local/share/recently-used.xbel.7WJ9QW« konnte nicht angelegt werden: Zu viele offene Dateien
**
Gtk:ERROR:gtkrecentmanager.c:2112:get_icon_fallback: assertion failed: (retval != 
NULL)

******

If I check for open files with lsof | grep parole I get some obvious ones like 

/usr/bin/parole or /usr/share/locale/de/LC_MESSAGES/parole.mo

and over 2000 instances of the currently playing mp3 file.

This bug was introduced when moving from 0.3.0.2 to 0.4.0.
I am using archlinux if it matters at all.
Comment 1 Simon Steinbeiss editbugs 2013-02-21 13:46:38 CET
Sorry, I've never been able to confirm this bug. I tried with >1000 open files myself with current Parole from git. Could you try again with the latest changes?
Comment 2 Sebastian 2013-02-21 13:56:44 CET
Strangely the crash only happens on some mp3 files. Most mp3 files I tried work just fine. I haven't been able to narrow down what makes a file work or not work.

I'll try with the current git, but I haven't been able to make my autotools output a makefile for parole yet (autogen.sh does not work out of the box).
Comment 3 Simon Steinbeiss editbugs 2013-02-21 14:00:53 CET
Even though your debug-output doesn't suggest it, it could be related to the fact that until recently, our auto-saved-playlist was not using UTF8, so files with Umlauts or other special characters got borked.
Comment 4 Sebastian 2013-02-21 15:09:04 CET
No, that's not it.
This is the mp3info of a file that causes crashes:

$ mp3info -x 01-annie_mac_-_bbc_radio1-sat-11-18-2013-talion.mp3 
File: 01-annie_mac_-_bbc_radio1-sat-11-18-2013-talion.mp3
Title:   BBC Radio1-SAT-11-18-2013 - ww Track: 1
Artist:  Annie Mac
Album:   www.mixing.dj                  Year:  2013
Comment: www.mixing.dj                  Genre: Electronic [52]
Media Type:  MPEG 1.0 Layer III
Audio:       Variable KB/s, 48KHz (joint stereo)
Emphasis:    none
CRC:         No
Copyright:   No
Original:    Yes
Padding:     No
Length:      118:56

So no special characters.
Comment 5 Simon Steinbeiss editbugs 2013-02-21 15:12:41 CET
So does this file only cause the crash in combination with 1999 other files in the playlist on pause/resume, or does it cause a crash on its own too?
Comment 6 Sebastian 2013-02-21 15:20:05 CET
Only the single file is in the playlist. Directly called from the console (parole <filename>).
After about 30 seconds of playtime I get lots of this messages on the calling terminal:

(parole:32329): Gtk-WARNING **: Unknown property: GtkMenu.ubuntu-local

(parole:32329): Gtk-CRITICAL **: IA__gtk_widget_render_icon: assertion `size > GTK_ICON_SIZE_INVALID || size == -1' failed

After this messages appear the crash can be provoked by pausing the playback and continuing it again.
Comment 7 Simon Steinbeiss editbugs 2013-02-21 15:36:58 CET
That really seems to be a different bug than what you originally described.

You could send me/us one of the mp3 files in question via email.
Comment 8 Simon Steinbeiss editbugs 2013-02-22 11:41:38 CET
Contrary to what I've said up to now I was able now to at least confirm the warning message about not being able to write to recently-used.xbel.

However, parole does not crash here.
Comment 9 Sebastian 2013-02-22 13:19:27 CET
I was able to reproduce the crash with current parole-git.

Here is a backtrace of a crash (seems not very helpful):
(gdb) bt
#0  0x00007ffff26d42c5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff26d5748 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff398f8d7 in g_assertion_message () from /usr/lib/libglib-2.0.so.0
#3  0x00007ffff398fdf4 in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0
#4  0x00007ffff7096b6e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#5  0x00007ffff70915cb in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#6  0x00007ffff6c77637 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#7  0x00007ffff396d845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#8  0x00007ffff396db78 in ?? () from /usr/lib/libglib-2.0.so.0
#9  0x00007ffff396df72 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#10 0x00007ffff703d5d7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#11 0x000000000041478f in main (argc=1, argv=0x7fffffffe2b8) at main.c:436

Any suggestions what I could do to further investigate this behaviour?
Comment 10 Sebastian 2013-02-22 14:45:36 CET
As parole it quite quick to compile I did a git bisect with the following result:

$ git bisect bad
27150b0f60966778020e742eff6860477277a1fd is the first bad commit
commit 27150b0f60966778020e742eff6860477277a1fd
Author: Sean Davis <smd.seandavis@gmail.com>
Date:   Sat Dec 1 00:18:49 2012 -0500

    Initial recent files menu.

:040000 040000 352814ae2db116fab30fd490ecc61a1f545f55a9 34fa270c4e9ec1a7246000193282f76218cef0ad M      data
:040000 040000 ce0bda4acd4d8989d7bb61a31778ccf903e85b23 a5e9c92b1c168530d53f1db1dbab8ad77685bdfd M      src

The console messages 

(parole:32329): Gtk-WARNING **: Unknown property: GtkMenu.ubuntu-local

(parole:32329): Gtk-CRITICAL **: IA__gtk_widget_render_icon: assertion `size > GTK_ICON_SIZE_INVALID || size == -1' failed

appear some revisions before without causing a crash. I didn't do a seperate bisect on this issue but a revision where the messages appear but no crash happens is e.g. 949d5e8567888610168f50e3168a49d9326bad05

Hope this helps in some way to track down the problem.
Comment 11 Sean Davis editbugs 2013-12-06 02:27:14 CET
I believe we managed to resolve this with our recent move to gtk3.  The parole git-master (0.5.90 -> 0.6) no longer seems to crash.  We found the file that was originally causing the crash, let it run for a bit, then let it run all day while pausing/playing every 3 seconds with automation.

I'm going to close this bug, but if you find that you are still having an issue, feel free to re-open it and we can debug further.

Cheers!

Bug #9795

Reported by:
Sebastian
Reported on: 2013-01-22
Last modified on: 2013-12-06

People

Assignee:
Simon Steinbeiss
CC List:
1 user

Version

Attachments

Additional information