DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.65k stars 178 forks source link

File > Add Folder > Segfault (fresh installation) #2870

Closed ghost closed 2 years ago

ghost commented 2 years ago

Steps to reproduce the problem

File > Add Folder > Select ~/Music > Click OK > Segfault

What's going on? Describe the problem in as much detail as possible.

I just installed deadbeef and launched it for the very first time. The first thing I did was go to File > Add Folder to load up some music. Deadbeef crashes after I choose my folder.

Information about the software:

Deadbeef version: Tested 1.9.2 & devel OS: EndeavourOS (Budgie desktop)

$ deadbeef
starting deadbeef devel
server_start
We had a crash. Will not resume the saved session to avoid a crash cycle.
searching for GUI plugins in /home/me/.local/lib64/deadbeef
searching for GUI plugins in /home/me/.local/lib/deadbeef
searching for GUI plugins in /usr/lib/deadbeef
load_plugin_dir /usr/lib/deadbeef: scandir found 55 files
found gui plugin ddb_gui_GTK2.so
added GTK2 gui plugin
found gui plugin ddb_gui_GTK3.so
added GTK3 gui plugin
load gui plugin
checking GUI plugin: GTK2
found selected GUI plugin: GTK2
loading plugin /usr/lib/deadbeef/ddb_gui_GTK2.so
loading plugins from /home/me/.local/lib64/deadbeef
loading plugins from /home/me/.local/lib/deadbeef
loading plugins from /usr/lib/deadbeef
load_plugin_dir /usr/lib/deadbeef: scandir found 55 files
loading plugin /usr/lib/deadbeef/aac.so
loading plugin /usr/lib/deadbeef/adplug.so
loading plugin /usr/lib/deadbeef/alac.so
loading plugin /usr/lib/deadbeef/alsa.so
loading plugin /usr/lib/deadbeef/artwork.so
loading plugin /usr/lib/deadbeef/cdda.so
loading plugin /usr/lib/deadbeef/converter.so
loading plugin /usr/lib/deadbeef/converter_gtk2.so
loading plugin /usr/lib/deadbeef/converter_gtk3.so
loading plugin /usr/lib/deadbeef/dca.so
loading plugin /usr/lib/deadbeef/ddb_dumb.so
loading plugin /usr/lib/deadbeef/ddb_mono2stereo.so
loading plugin /usr/lib/deadbeef/ddb_shn.so
loading plugin /usr/lib/deadbeef/ddb_soundtouch.so
loading plugin /usr/lib/deadbeef/dsp_libsrc.so
loading plugin /usr/lib/deadbeef/ffap.so
loading plugin /usr/lib/deadbeef/ffmpeg.so
loading plugin /usr/lib/deadbeef/flac.so
loading plugin /usr/lib/deadbeef/gme.so
loading plugin /usr/lib/deadbeef/hotkeys.so
loading plugin /usr/lib/deadbeef/in_sc68.so
loading plugin /usr/lib/deadbeef/lastfm.so
loading plugin /usr/lib/deadbeef/m3u.so
loading plugin /usr/lib/deadbeef/mms.so
loading plugin /usr/lib/deadbeef/mp3.so
loading plugin /usr/lib/deadbeef/musepack.so
loading plugin /usr/lib/deadbeef/notify.so
loading plugin /usr/lib/deadbeef/nullout.so
loading plugin /usr/lib/deadbeef/opus.so
loading plugin /usr/lib/deadbeef/oss.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk2.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk3.so
loading plugin /usr/lib/deadbeef/psf.so
loading plugin /usr/lib/deadbeef/pulse.so
loading plugin /usr/lib/deadbeef/rg_scanner.so
loading plugin /usr/lib/deadbeef/shellexec.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk2.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk3.so
loading plugin /usr/lib/deadbeef/sid.so
loading plugin /usr/lib/deadbeef/sndfile.so
loading plugin /usr/lib/deadbeef/supereq.so
loading plugin /usr/lib/deadbeef/tta.so
loading plugin /usr/lib/deadbeef/vfs_curl.so
loading plugin /usr/lib/deadbeef/vfs_zip.so
loading plugin /usr/lib/deadbeef/vorbis.so
loading plugin /usr/lib/deadbeef/vtx.so
loading plugin /usr/lib/deadbeef/wavpack.so
loading plugin /usr/lib/deadbeef/wildmidi.so
loading plugin /usr/lib/deadbeef/wma.so
starting plugin GTK2 user interface
starting plugin AAC player
starting plugin Adplug player
starting plugin ALAC player
starting plugin ALSA output plugin
starting plugin Album Artwork
starting plugin Audio CD player
starting plugin Converter
starting plugin Converter UI
starting plugin Converter UI
starting plugin dts decoder
starting plugin DUMB module player
starting plugin Mono to stereo
starting plugin Shorten player
starting plugin Soundtouch
starting plugin Resampler (Secret Rabbit Code)
starting plugin Monkey's Audio (APE) decoder
starting plugin FLAC decoder
starting plugin Game-Music-Emu player
starting plugin Hotkey manager
starting plugin SC68 player (Atari ST SNDH YM2149)
starting plugin last.fm scrobbler
starting plugin M3U and PLS support
starting plugin mms vfs
starting plugin MP3 player
starting plugin MusePack decoder
starting plugin OSD Notify
starting plugin Null output plugin
starting plugin Opus player
starting plugin OSS output plugin
starting plugin Playlist Browser
starting plugin Playlist Browser
starting plugin PSF player using Audio Overload SDK
starting plugin PulseAudio output plugin
starting plugin ReplayGain Scanner
starting plugin Shell commands
starting plugin Shellexec UI
starting plugin Shellexec UI
starting plugin SID player
starting plugin WAV/PCM player
starting plugin SuperEQ
starting plugin tta decoder
starting plugin cURL vfs
starting plugin ZIP vfs
starting plugin Ogg Vorbis decoder
starting plugin VTX player
starting plugin WavPack decoder
starting plugin WildMidi player
starting plugin WMA player
starting plugin stdio vfs
starting plugin FFMPEG audio player
selected output plugin: ALSA output plugin
INFO: from file /home/me/.config/deadbeef/playlists/0.dbpl
convgui: gtkui plugin not found
shellexecui: can't find gtkui plugin
resume: track -1 pos -1.000000 playlist -1
gtkui plugin compiled for gtk version: 2.24.33

(deadbeef:524437): Gdk-CRITICAL **: 20:50:43.632: IA__gdk_window_get_position: assertion 'GDK_IS_WINDOW (window)' failed

(deadbeef:524437): Gdk-CRITICAL **: 20:50:43.633: IA__gdk_window_get_position: assertion 'GDK_IS_WINDOW (window)' failed

(deadbeef:524437): Gdk-CRITICAL **: 20:50:43.633: gdk_window_invalidate_maybe_recurse_full: assertion 'GDK_IS_WINDOW (window)' failed
connecting button tray signals
Segmentation Fault
backtrace() returned 14 addresses
deadbeef(+0x510e2) [0x561b71d6d0e2]
/usr/lib/libc.so.6(+0x38a00) [0x7f41b9e94a00]
deadbeef(+0x40651) [0x561b71d5c651]
deadbeef(+0x36ea8) [0x561b71d52ea8]
deadbeef(+0x36254) [0x561b71d52254]
deadbeef(+0x3ae78) [0x561b71d56e78]
deadbeef(+0x3afea) [0x561b71d56fea]
deadbeef(+0x402ec) [0x561b71d5c2ec]
/usr/lib/deadbeef/ddb_gui_GTK2.so(+0x8aa51) [0x7f41b9dc4a51]
/usr/lib/libglib-2.0.so.0(g_slist_foreach+0x30) [0x7f41b8dd7c90]
/usr/lib/deadbeef/ddb_gui_GTK2.so(gtkpl_add_dirs+0x138) [0x7f41b9dc49b8]
/usr/lib/deadbeef/ddb_gui_GTK2.so(+0x8ab96) [0x7f41b9dc4b96]
/usr/lib/libc.so.6(+0x868fd) [0x7f41b9ee28fd]
/usr/lib/libc.so.6(+0x108a60) [0x7f41b9f64a60]
Oleksiy-Yakovenko commented 2 years ago

Does it crash as well if you select some smaller folders / individual albums?

ghost commented 2 years ago

Does it crash as well if you select some smaller folders / individual albums?

It's not a big folder, I had 5 albums in it.. with 5 folders and a handful of subfolders. They are FLAC files that I ripped myself from CD with rubyripper.

I just figured out what caused it... deadbeef didn't like one of my .cue files. Audacious complained about the same file, but it gave me an error instead of crashing, so I was able to identify and remove the problematic file. Unfortunately, since I removed the offending .cue file, I can't provide it as a test sample

Nonetheless, deadbeef should gracefully handle corrupt (I assume??) cue files instead of crashing.. that's definitely what caused the issue. If you manually corrupt a cue file, I assume you will experience the same crash.

Oleksiy-Yakovenko commented 2 years ago

Can you perhaps share the cue file in question? This would help to reproduce the crash, to know what is happening. Or describe a way to corrupt the cue file, to make the problem occur?

ghost commented 2 years ago

I edited my post a couple times so maybe you didn't see, but unfortunately I already removed the cue file. You should be able to repro with a manually corrupted cue file. Regardless, there should be blanket exception handling for unreadable cue files so deadbeef doesn't crash if it finds one

Sorry that I can't provide the file!

ghost commented 2 years ago

Wait! I might still have a copy...... I rip these CDs from an old laptop with a DVD drive, and I usually don't delete the rips. Stay tuned, I'll see if I still have it

💻 🏃‍♂️

ghost commented 2 years ago

Got it!! 👏

Here you go.. this is a 100% reproducible crash on my end. I had to tar it, github won't allow cue files

deadbeef-crashy-cue-file.tar.gz

Oleksiy-Yakovenko commented 2 years ago

oh great, I'll try it as soon as I can! thanks!

Oleksiy-Yakovenko commented 2 years ago

Should work now (I mean, it will ignore this cuesheet with an error message).

ghost commented 2 years ago

Recompiled and working great. Thank you for the quick fix.