Strawberry crashes on song change
-
Hello,
I am running the flatpak version 1.0.23 of Strawbery on Pop!_OS 22.04 jammy (Ubuntu)
I feel like I am having this exact problem mentioned here:
https://forum.strawberrymusicplayer.org/topic/195/strawberry-crashing-since-last-updateThe program will go into a buffering state when trying to load a next song (can happen on second song or later) and when I click on anything while it is "buffering", strawberry freezes completely. Killing the process and restarting the program works, but the problem always re-occurs.
I thought it was caused by my collection being stored on HDD, but I moved it to SSD and it still occurs.
Let me know if it is a known problem with the flatpak version.
-
@azino
What GStreamer version do you have in flatpak?
GStreamer versions 1.22.9 and 1.22.10 are buggy, so if it's one of those it could be related to this issue: https://github.com/strawberrymusicplayer/strawberry/issues/1376 -
@jonas I have GStreamer 1.22.11 installed in the flatpak. I'll look into installing the working 1.22.8, but for now I'm using VLC as the Engine and it seems to have fixed the problem. Thank you for the fast response!
Edit:
I looked into it. the flatpak's last commit is this:
ID: org.strawberrymusicplayer.strawberry Ref: app/org.strawberrymusicplayer.strawberry/x86_64/stable Arch: x86_64 Branch: stable Collection: org.flathub.Stable Download: 84.2Â MB Installed: 248.4Â MB Runtime: org.kde.Platform/x86_64/6.6 Sdk: org.kde.Sdk/x86_64/6.6 Commit: 7b5e244fc2f038aa0d865e303683a19538da1898bdaf6deee45a802093cb6532 Parent: 92eab1ea728f2b1379727fddf7d20fe2c06b4b43a93495c395d9b0462af048e1 Subject: Update strawberry-1.0.22.tar.xz to 1.0.23 (74b13794) Date: 2024-01-12 06:55:07 +0000
which is before version 1.22.9 came out according to GStreamer's website
https://gstreamer.freedesktop.org/releases/1.22/I also see no version specification in the flatpak's manifest
{ "id" : "org.strawberrymusicplayer.strawberry", "runtime" : "org.kde.Platform", "runtime-version" : "6.6", "runtime-commit" : "23107550082daf3b2892a4a0db2543838578ca882340a756b988bc5c1614540c", "sdk" : "org.kde.Sdk", "sdk-commit" : "9a11133e9e3c4eace8edb4c930e8c69264d4dc50e0df43b4a941a845e36baaf0", "command" : "start-strawberry", "modules" : [ { "name" : "boost", "buildsystem" : "simple", "sources" : [ { "url" : "https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.gz", "sha256" : "a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724", "x-checker-data" : { "type" : "anitya", "project-id" : 6845, "url-template" : "https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_${version0}_${version1}_$version2.tar.gz" }, "type" : "archive" } ], "build-commands" : [ "./bootstrap.sh --prefix=\"${FLATPAK_DEST}\"", "./b2 --without-mpi --without-graph_parallel -j ${FLATPAK_BUILDER_N_JOBS}", "./b2 --without-mpi --without-graph_parallel -j ${FLATPAK_BUILDER_N_JOBS} headers", "./b2 --without-mpi --without-graph_parallel install" ] }, { "name" : "chromaprint", "buildsystem" : "cmake-ninja", "config-opts" : [ "-DCMAKE_BUILD_TYPE=Release" ], "sources" : [ { "url" : "https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz", "sha256" : "a1aad8fa3b8b18b78d3755b3767faff9abb67242e01b478ec9a64e190f335e1c", "x-checker-data" : { "type" : "anitya", "project-id" : 286, "url-template" : "https://github.com/acoustid/chromaprint/releases/download/v$version/chromaprint-$version.tar.gz" }, "type" : "archive" } ] }, { "name" : "protobuf", "sources" : [ { "url" : "https://github.com/protocolbuffers/protobuf/releases/download/v21.8/protobuf-cpp-3.21.8.tar.gz", "sha256" : "f6251f2d00aad41b34c1dfa3d752713cb1bb1b7020108168a4deaa206ba8ed42", "type" : "archive" } ], "cleanup" : [ "/bin/protoc" ] }, { "name" : "taglib", "buildsystem" : "cmake-ninja", "config-opts" : [ "-DCMAKE_BUILD_TYPE=Release", "-DBUILD_SHARED_LIBS=ON", "-DCMAKE_POSITION_INDEPENDENT_CODE=ON", "-DWITH_MP4=ON", "-DWITH_ASF=ON" ], "sources" : [ { "url" : "https://github.com/taglib/taglib/releases/download/v1.12/taglib-1.12.tar.gz", "sha256" : "7fccd07669a523b07a15bd24c8da1bbb92206cb19e9366c3692af3d79253b703", "type" : "archive" } ], "cleanup" : [ "/bin" ] }, { "name" : "libebur128", "buildsystem" : "cmake-ninja", "config-opts" : [ "-DCMAKE_BUILD_TYPE=Release" ], "sources" : [ { "url" : "https://github.com/jiixyj/libebur128.git", "commit" : "67b33abe1558160ed76ada1322329b0e9e058b02", "x-checker-data" : { "type" : "git", "tag-pattern" : "v([\\d]\\.[\\d]\\.[\\d])" }, "type" : "git" } ] }, { "name" : "libcdio", "config-opts" : [ "--without-cd-drive", "--without-cd-info", "--without-cdda-player", "--without-cd-read", "--without-iso-info", "--without-iso-read", "--with-pic", "--disable-static" ], "sources" : [ { "url" : "https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2", "sha256" : "8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b", "x-checker-data" : { "type" : "anitya", "project-id" : 1573, "stable-only" : true, "url-template" : "https://ftp.gnu.org/gnu/libcdio/libcdio-$version.tar.bz2" }, "type" : "archive" } ], "cleanup" : [ "/bin" ] }, { "name" : "libusb", "config-opts" : [ "--disable-static" ], "sources" : [ { "url" : "https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2", "sha256" : "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5", "type" : "archive" } ], "cleanup" : [ "/lib/*.la", "/lib/pkgconfig", "/include" ], "post-install" : [ "install -Dm644 COPYING ${FLATPAK_DEST}/share/licenses/libusb/COPYING" ] }, { "name" : "libmtp", "config-opts" : [ "--disable-static", "--with-udev=/app/lib/udev" ], "sources" : [ { "url" : "https://github.com/libmtp/libmtp/releases/download/v1.1.21/libmtp-1.1.21.tar.gz", "sha256" : "f4c1ceb3df020a6cb851110f620c14fe399518c494ed252039cbfb4e34335135", "x-checker-data" : { "type" : "anitya", "project-id" : 10017, "url-template" : "https://github.com/libmtp/libmtp/releases/download/v$version/libmtp-$version.tar.gz" }, "type" : "archive" } ], "cleanup" : [ "/bin", "/share" ] }, { "name" : "vlc", "config-opts" : [ "BUILDCC=/usr/bin/gcc -std=gnu99", "--disable-debug", "--disable-ncurses", "--disable-a52", "--disable-qt", "--disable-lua", "--disable-vlc", "--prefix=/app" ], "sources" : [ { "url" : "https://download.videolan.org/videolan/vlc/3.0.20/vlc-3.0.20.tar.xz", "sha256" : "adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5", "x-checker-data" : { "type" : "anitya", "project-id" : 6504, "versions" : { ">=" : "3", "<" : "4" }, "url-template" : "https://download.videolan.org/videolan/vlc/$version/vlc-$version.tar.xz" }, "type" : "archive" } ], "cleanup" : [ "/share", "/bin" ] }, { "name" : "strawberry", "buildsystem" : "cmake-ninja", "config-opts" : [ "-DCMAKE_BUILD_TYPE=Release" ], "sources" : [ { "url" : "https://github.com/strawberrymusicplayer/strawberry/releases/download/1.0.23/strawberry-1.0.23.tar.xz", "sha256" : "24f63064caf62c72330e9fa0808a1ca938339831d0a4e8385986280601a54f10", "x-checker-data" : { "type" : "json", "url" : "https://api.github.com/repos/strawberrymusicplayer/strawberry/releases/latest", "version-query" : ".tag_name", "url-query" : ".assets[] | select(.name==\"strawberry-\"+ $version +\".tar.xz\") | .browser_download_url" }, "type" : "archive" }, { "commands" : [ "export TMPDIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID", "/app/bin/strawberry \"$@\"" ], "dest-filename" : "start-strawberry.sh", "type" : "script" } ], "post-install" : [ "install -Dm755 start-strawberry.sh /app/bin/start-strawberry" ] } ], "cleanup" : [ "/include", "/lib/cmake", "/lib/pkgconfig", "/share/info", "/share/man", "/share/tagparser", "/share/c++utilities", "/bin/mmc-tool" ], "finish-args" : [ "--share=ipc", "--socket=fallback-x11", "--socket=wayland", "--socket=pulseaudio", "--device=all", "--share=network", "--filesystem=xdg-music", "--filesystem=/mnt", "--filesystem=/media", "--filesystem=/run/media", "--system-talk-name=org.freedesktop.Avahi", "--talk-name=org.freedesktop.Notifications", "--system-talk-name=org.freedesktop.UDisks2", "--talk-name=org.gnome.SettingsDaemon.MediaKeys", "--talk-name=org.wiimotedev.deviceEvents", "--talk-name=org.mpris.MediaPlayer2.Player", "--own-name=org.mpris.MediaPlayer2.strawberry", "--talk-name=org.kde.StatusNotifierWatcher", "--talk-name=org.kde.kglobalaccel" ], "rename-icon" : "strawberry", "source-date-epoch" : 1705041004 }
I don't know enough about flatpak myself, but I guess it must be possible to manually add an entry for GStreamer's version though.
-
1.22.11 is not affected by that bug so then I guess the issue is something else.
Are you using pulseaudio, pipewire or alsa directly?
What output is set in the backend settings of strawberry, and have you specifically selected the device? -
@jonas I'm using the default pipewire that comes with Ubuntu based Pop!_OS, but I think pulseaudio controls the sources because the OS runs an older version of GNOME. Not familiar with how it works though.
I often change the output, so I had it set to "Wrapper audio sink for automatically detected audio sink" when using GStreamer. I will test now with "Plays audio to a PulseAudio server" selected, I just noticed that there was a subsequent source selection afterwards.
-
Same situation here: I have a new Fedora 40 installation. GStreamer version is 1.22.12.
Sometimes 20 songs can be played and then the crash occurs, sometimes after only three songs. -
Just to add - I ran strawberry now with
GST_DEBUG=5 strawberry
And got this output (last 5 lines) before the crash:
0:00:19.293589446 3814 0x5575328a0b50 INFO GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad pipeline-2-audioqueueconverter:src
0:00:19.293605247 3814 0x5575328a0b50 DEBUG GST_PADS gstpad.c:1379:cleanup_hook:pipeline-2-audioqueueconverter:src cleaning up hook 2 with flags 00030101
0:00:19.293622700 3814 0x5575328a0b50 DEBUG GST_BUS gstelement.c:3543:gst_element_get_bus:<pipeline-2-pipeline> got bus <bus15>
0:00:19.293645470 3814 0x5575328a0b50 DEBUG GST_BUS gstbus.c:846:gst_bus_source_dispose:<bus15> disposing source 0x55753543f950
0:00:19.293663901 3814 0x5575328a0b50 DEBUG GST_STATES gstelement.c:2967:gst_element_set_state_func:<pipeline-2-pipeline> set_state to NULL -
Are any of the fading features enabled in the backend settings? What's the buffer setting set to?
Please run strawberry with GST_DEBUG_FILE too, compress and attach the entire log.
GST_DEBUG=5 GST_DEBUG_FILE=/tmp/strawberry-gst-debug.log strawberry
-
@jonas the Strawberry default values have not been changed. The error occurs on two different PC's one Lenovo laptop with an internal Intel sound card and one Thinkcentre with an USB 7.1 soundcard (Logilink). On both PC's is Fedora 40 with Strawberry 1.0.23 running.
Question: how can I upload the file? There's no option to attach a file. Or alternatively: where can I upload the file and add a link to it here?
-
@lamusica80
You can use any file sharing service such as dropbox and paste the link here. -
I think this might be related to the same bug as https://forum.strawberrymusicplayer.org/topic/1506/buffering-forever/24
If you have GStreamer 1.22, and GStreamer 1.24 is not available, try a development build of strawberry from https://builds.strawberrymusicplayer.org/ from today's date which switches back to playbin2 if GStreamer 1.22 or lower is in use.
-
@jonas
Good news: today gstreamer1-1.24.4-1 was rolled out by the Fedora Team and everything works fine now on my good old Lenovo M58
So you were right: the error was in gstreamer and not in Strawberry!
Thank you for your excellent work!