Closed LoosGuccreen closed 3 years ago
I have almost as many songs and I've never seen the database getting locked. And I think a lot of users have even more. We have special mutex locking to avoid hitting limitations in sqlite to prevent locking the db.
The DB is in ~/.local/share/strawberry/strawberry/strawberry.db
Check what is locking the database with:
fuser ~/.local/share/strawberry/strawberry/strawberry.db
Maybe this was just one rare scenario, check if anything is still accessing the file, if any strawberry processes are stuck, etc, and try again.
You might also want to do an integrity check of the database, see: https://github.com/strawberrymusicplayer/strawberry/wiki/Database-integrity-check If you don't care about having to set up the collection and playlists again you can just delete the db file and start over.
Closing this because of no answer. Let us know if there are still issues.
I am having the same issue I think.
Strawberry suddenly crashes every time I edit something, in this case a comment on a song. The first few hours it ran fine. Looking at the output it actually seemed to have crashed while downloading a cover art.
Releasing ID 204 (finished)
12:03:49.479 DEBUG _MessageReplyBase:32 Acquired ID 204
12:03:53.119 DEBUG MusixmatchLyricsProvider:88 MusixmatchLyrics: Sending request for "crookers" "we-love-animals-ft-soulwax-and-mixhell" QUrl("https://www.musixmatch.com/lyrics/crookers/we-love-animals-ft-soulwax-and-mixhell")
12:03:53.270 DEBUG Player:589 Playing song "We Love Animals Ft. Soulwax And Mixhell" QUrl("file:///media/external/musica/neuneueneu/Crookers - Tons Of Friends -2010/01-crookers-we_love_animals_ft._soulwax_and_mixhell.mp3")
12:03:53.334 ERROR logging:72(GLib) Source ID 12 was not found when attempting to remove it
12:03:53.369 DEBUG LoloLyricsProvider:148 LoloLyrics: No lyrics for "Crookers" "We Love Animals Ft. Soulwax And Mixhell" "Error transferring http://api.lololyrics.com/0.5/getLyric?artist=Crookers&track=We Love Animals Ft. Soulwax And Mixhell - server replied: Not Found (203)"
12:03:53.369 ERROR MusixmatchLyricsProvider:223 MusixmatchLyrics: "Error transferring https://www.musixmatch.com/lyrics/crookers/we-love-animals-ft-soulwax-and-mixhell - server replied: Not Found (203)"
12:03:53.427 ERROR AuddLyricsProvider:189 AudDLyrics: "No lyrics for Crookers We Love Animals Ft. Soulwax And Mixhell"
12:03:53.567 INFO GstEnginePipeline:1289 Got stream info for "file:///media/external/musica/neuneueneu/Crookers%20-%20Tons%20Of%20Friends%20-2010/01-crookers-we_love_animals_ft._soulwax_and_mixhell.mp3:" "MPEG-1 Layer 3 (MP3)"
12:03:53.706 DEBUG OVHLyricsProvider:105 OVHLyrics: Got lyrics for "Crookers" "We Love Animals Ft. Soulwax And Mixhell"
12:03:53.707 DEBUG LyricsFetcherSearch:123 Using lyrics from "Lyrics.ovh" for "Crookers" "We Love Animals Ft. Soulwax And Mixhell" with score -1.5
12:03:55.456 INFO Database:147 Creating initial database schema
12:03:55.507 DEBUG AlbumCoverFetcherSearch:271 Loading "Crookers" "Tons of Friends" QUrl("https://cdns-images.dzcdn.net/images/cover/3c4621b9900da09db361bb75ba968bb9/1000x1000-000000-80-0-0.jpg") from "Deezer" with current score 5
12:03:55.508 DEBUG AlbumCoverFetcherSearch:271 Loading "Crookers" "Tons of Friends" QUrl("https://s.mxmcdn.net/images-storage/albums/9/0/1/9/2/4/26429109_800_800.jpg") from "Musixmatch" with current score 4.6
12:03:55.508 DEBUG AlbumCoverFetcherSearch:271 Loading "Crookers" "Tons of Friends" QUrl("https://cdns-images.dzcdn.net/images/cover/3c4621b9900da09db361bb75ba968bb9/500x500-000000-80-0-0.jpg") from "Deezer" with current score 4
12:03:55.790 DEBUG AlbumCoverFetcherSearch:328 QUrl("https://cdns-images.dzcdn.net/images/cover/3c4621b9900da09db361bb75ba968bb9/1000x1000-000000-80-0-0.jpg") from "Deezer" scored 5
12:03:55.871 DEBUG AlbumCoverFetcherSearch:328 QUrl("https://s.mxmcdn.net/images-storage/albums/9/0/1/9/2/4/26429109_800_800.jpg") from "Musixmatch" scored 4.6
12:03:55.904 DEBUG AlbumCoverFetcherSearch:328 QUrl("https://cdns-images.dzcdn.net/images/cover/3c4621b9900da09db361bb75ba968bb9/500x500-000000-80-0-0.jpg") from "Deezer" scored 4
12:03:55.904 DEBUG AlbumCoverFetcherSearch:345 Best image so far has a score of 5
12:03:55.904 INFO AlbumCoverFetcherSearch:382 Using QUrl("https://cdns-images.dzcdn.net/images/cover/3c4621b9900da09db361bb75ba968bb9/1000x1000-000000-80-0-0.jpg") from "Deezer" with score 5
12:04:00.464 ERROR Database:474 db error: QSqlError("5", "Unable to execute statement", "database is locked")
12:04:00.465 ERROR Database:475 faulty query: "CREATE TABLE IF NOT EXISTS schema_version (\n version INTEGER NOT NULL\n)"
12:04:00.465 ERROR Database:476 bound values: QMap()
12:04:00.465 ERROR unknown Unable to update music collection database
[1] 84022 abort (core dumped) strawberry
When I wanted to do the suggested command fuser ~/.local/share/strawberry/strawberry/strawberry.db
I noticed that my DB was in a different location because this is an Ubuntu machine and this was installed with Snap or something like this (I am used to Arch and do not know what it really is). So I uninstalled and added the strawberry repository to apt and the database is now doing the first scan. I will comment if the problems persists.
So I tried it with the version from the repositories and the problem did not occur again. But I noticed that every time I change something, for example in-line editing a comment, at the bottom of the window I see that an update of the database is being done and it takes quite some time and during that Strawberry often becomes completely unresponsive but does not crash anymore. The playlist I was working on was quite big and the music folder was mounted over NFS. Can I provide more information that would be useful?
Sounds like the NFS is too slow for Strawberry to function properly. What version of sqlite do you have? and what type of disk and filesystem do you have for the home directory where strawberry.db is stored? Most access to the database is done in different threads than the GUI thread so it should not normally block the GUI while doing intensive disk operations. The saving and reading back files itself when editing tag metadata is done in different threads (asynchronous). So I'm not sure why it becomes unresponsive.
The NFS is mounted over a wired connection on a local network so the network speed should not be the problem. Is there a better/faster way than NFS to access music connections over network I could try?
The version of the sqlite3 package is 3.31.1-4. The home directory is on an SSD disk and the filesystem is ext4.
Maybe it is because of the very big playlist? I will try with a smaller one and see what happens.
On my end I was able to "solve" the issue simply by waiting (thank you for the database integrity check suggestion though). After a while, Strawberry was able to finish updating the database (I indeed had the text on the bottom saying the database was updating).
So my input would be that the issue isn't much that strawberry is not capable to handle things while its database is being updated (even though it could be a way to enhance the software but that sounds like a lot of work), but more that we need a proper error message displayed when this happen instead of the app crashing.
Something like "The database is currently being updated and this action is not possible, sorry. It can take a while depending on the number of songs you have, please be patient!".
I don't know how easy/feasible this would be to implement (and if it doesn't collide with situations where the database update is not creating app crashes).
Thanks, that's very useful. I will do some testing with large playlists before the next release, we might need to address this.
Did you have the "live scanning" option on or off?
So I just wanted to try with a shorter playlist, I closed the long one and dragged a folder of an album into an empty playlist. For a quite long while it was saying "Loading tracks..." than Strawberry crashed.
The crash report is very long (almost 40MB) so I only copy the last lines:
Thread 10 (Thread 0x7f45adffb700 (LWP 3538)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x561c2f85de98) at ../sysdeps/nptl/futex-internal.h:183
__ret = -512
oldtype = 0
err = <optimized out>
oldtype = <optimized out>
err = <optimized out>
__ret = <optimized out>
resultvar = <optimized out>
__arg4 = <optimized out>
__arg3 = <optimized out>
__arg2 = <optimized out>
__arg1 = <optimized out>
_a4 = <optimized out>
_a3 = <optimized out>
_a2 = <optimized out>
_a1 = <optimized out>
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x561c2f85de48, cond=0x561c2f85de70) at pthread_cond_wait.c:508
spin = 0
buffer = {__routine = 0x7f461dad7050 <__condvar_cleanup_waiting>, __arg = 0x7f45adffa4a0, __canceltype = 640, __prev = 0x0}
cbuffer = {wseq = 0, cond = 0x561c2f85de70, mutex = 0x561c2f85de48, private = 0}
err = <optimized out>
g = 0
flags = <optimized out>
g1_start = <optimized out>
signals = <optimized out>
result = 0
wseq = 0
seq = 0
private = <optimized out>
maxspin = <optimized out>
err = <optimized out>
result = <optimized out>
wseq = <optimized out>
g = <optimized out>
seq = <optimized out>
flags = <optimized out>
private = <optimized out>
signals = <optimized out>
g1_start = <optimized out>
spin = <optimized out>
buffer = <optimized out>
cbuffer = <optimized out>
s = <optimized out>
#2 __pthread_cond_wait (cond=0x561c2f85de70, mutex=0x561c2f85de48) at pthread_cond_wait.c:638
No locals.
#3 0x00007f45bd089ad3 in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
No symbol table info available.
#4 0x00007f45bd08993b in ?? () from /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
No symbol table info available.
#5 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139937248687872, 7707903729180724600, 140726933171966, 140726933171967, 140726933171968, 139937248683584, -7747138703373775496, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#6 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 9 (Thread 0x7f45d6ffd700 (LWP 3526)):
#0 0x00007f461be91aff in __GI___poll (fds=0x7f45cc006420, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461d1c3565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461d16a4db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cfa2785 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139937936561920, 7707903729180724600, 140726933175902, 140726933175903, 140726933176096, 139937936557632, -7747224462059516552, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#8 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 8 (Thread 0x7f460a599700 (LWP 3509)):
#0 0x00007f461be91aff in __GI___poll (fds=0x7f45e00021e0, nfds=1, timeout=9991) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461d1c3565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461d16a4db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cfa2785 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938798081792, 7707903729180724600, 140726933177134, 140726933177135, 140726933177328, 139938798077504, -7747337971602698888, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#8 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 7 (Thread 0x7f45d67fc700 (LWP 3527)):
#0 0x00007f461be91aff in __GI___poll (fds=0x7f45c003dfc0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461d1c3565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461d16a4db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cfa2785 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139937928169216, 7707903729180724600, 140726933175902, 140726933175903, 140726933176096, 139937928164928, -7747223366305985160, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#8 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 6 (Thread 0x7f4610919700 (LWP 3504)):
#0 0x00007f461be91aff in __GI___poll (fds=0x561c2e2e1bb0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461c1bc331 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#4 0x00007f461c1e5931 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938902415104, 7707903729180724600, 140726933172414, 140726933172415, 140726933172560, 139938902410816, -7747360442871591560, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#6 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 5 (Thread 0x7f460ae7b700 (LWP 3508)):
#0 0x00007f461be91aff in __GI___poll (fds=0x7f45e80021e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461d1c3565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461d16a4db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cfa2785 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938807396096, 7707903729180724600, 140726933177678, 140726933177679, 140726933177872, 139938807391808, -7747338883209507464, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#8 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 4 (Thread 0x7f460b67c700 (LWP 3506)):
#0 0x00007f461be91aff in __GI___poll (fds=0x561c2f81c810, nfds=10, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc2e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461d1c3565 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461d16a4db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cfa2785 in QThread::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x00007f461e7acefa in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
No symbol table info available.
#7 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#8 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938815788800, 7707903729180724600, 140726933176558, 140726933176559, 140726933176752, 139938815784512, -7747335585211495048, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#9 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 3 (Thread 0x7f460bfff700 (LWP 3505)):
#0 0x00007f461be91aff in __GI___poll (fds=0x561c2e2f1240, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f461c1bc1ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007f461c1bc533 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#3 0x00007f461cac7eda in ?? () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#4 0x00007f461c1e5931 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#5 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938825762560, 7707903729180724600, 140726933172846, 140726933172847, 140726933172992, 139938825758272, -7747336613319291528, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#6 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 2 (Thread 0x7f4611e0c700 (LWP 3503)):
#0 0x00007f461be91aff in __GI___poll (fds=0x7f4611e0b3e8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
resultvar = 18446744073709551100
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007f46199bbc1a in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#2 0x00007f46199bd90a in xcb_wait_for_event () from /lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#3 0x00007f4612385298 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
No symbol table info available.
#4 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139938924381952, 7707903729180724600, 140726933176702, 140726933176703, 140726933176896, 139938924377664, -7747358649185874568, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#6 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
.
Thread 1 (Thread 0x7f45be7fc700 (LWP 3532)):
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
set = {__val = {0, 139939110655699, 96, 139937525508752, 139937525508752, 139937148058048, 139937148515328, 139939111562500, 24, 139937148191408, 139937525508752, 139939110655505, 139937525508752, 139939110654820, 139937525508808, 67505327990426368}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
#1 0x00007f461bda1859 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x7f461d422880 <QIODevice::staticMetaObject>, sa_sigaction = 0x7f461d422880 <QIODevice::staticMetaObject>}, sa_mask = {__val = {34, 94679055869344, 94679055869296, 94679055869344, 67505327990426368, 139937148515328, 139937525509232, 139937148695904, 67505327990426368, 139937148199952, 67505327990426368, 139937148264624, 139939122351024, 139937525509232, 139937525509264, 139937148199952}}, sa_flags = -1475879160, sa_restorer = 0x7f45be7fac48}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x0000561c2c750f2f in ?? ()
No symbol table info available.
#3 0x00007f461cf9b1f8 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4 0x00007f461cf9b319 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5 0x00007f461cf6aa94 in QMessageLogger::fatal(char const*, ...) const () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6 0x0000561c2c709302 in ?? ()
No symbol table info available.
#7 0x0000561c2c7974a6 in Database::ExecSchemaCommands(QSqlDatabase&, QString const&, int, bool) ()
No symbol table info available.
#8 0x0000561c2c798e7e in Database::ExecSchemaCommandsFromFile(QSqlDatabase&, QString const&, int, bool) ()
No symbol table info available.
#9 0x0000561c2c799057 in Database::UpdateDatabaseSchema(int, QSqlDatabase&) ()
No symbol table info available.
#10 0x0000561c2c79a3fe in Database::Connect() ()
No symbol table info available.
#11 0x0000561c2c8204ac in CollectionBackend::GetSongByUrl(QUrl const&, long long) ()
No symbol table info available.
#12 0x0000561c2cb43b94 in SongLoader::EffectiveSongLoad(Song*) ()
No symbol table info available.
#13 0x0000561c2cb45ed3 in SongLoader::LoadLocalDirectory(QString const&) ()
No symbol table info available.
#14 0x0000561c2cb478c6 in SongLoader::LoadLocalAsync(QString const&) ()
No symbol table info available.
#15 0x0000561c2cb44e3d in SongLoader::LoadFilenamesBlocking() ()
No symbol table info available.
#16 0x0000561c2c8ac8e7 in SongLoaderInserter::AsyncLoad() ()
No symbol table info available.
#17 0x0000561c2c863105 in non-virtual thunk to QtConcurrent::RunFunctionTask<void>::run() ()
No symbol table info available.
#18 0x00007f461cfa6f82 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#19 0x00007f461cfa39d2 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#20 0x00007f461dad0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139937525516032, 7707903729180724600, 140726933175438, 140726933175439, 140726933175632, 139937525511744, -7747170589747851912, -7747384602060403336}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#21 0x00007f461be9e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
Title: strawberry crashed with SIGABRT in QMessageLogger::fatal()
UnreportableReason:
You have some obsolete package versions installed. Please upgrade the following packages and check if the problem still occurs:
alsa-ucm-conf
UpgradeStatus: No upgrade log present (probably fresh install)
_MarkForUpload: True
separator:
So it says something about alsa-ucm-conf but I doubted that it had something to do with it but I did an apt upgrade
and actually that package was outdated. After updating I restarted Strawberry and for now it is working fine even on the big playlist. So it still says "Updating database..." after every comment edit but the program does not get blocked anymore.
I am not sure if this coincidental but we will see if it continues to work fine.
As for your question the "live scanning" option is off. By the way what is the difference between "monitor the collection for changes" and "live scanning"?
I am sorry just after writing the last comment Strawberry got blocked again because of inline editing a comment on the big playlist so the problem is still occurring. I suspect that it has something to do with writing back the comment to the file and that it waits for a response and gets blocked so maybe it is not the database which is local update but the file operation?
When it blocks the whole GUI gets blocked/stuck completely, the music keeps playing but the database updating animations stops, the timers on the currently playing song stops, etc and it does not respond to any input.
The "live scanning" will update the collection while scanning, without it you won't see any songs before it's finished the entire scan. But the problem with the live scanning is that the GUI might block while updating. I decided to just remove it.
This is what is happening to me with live scanning off. Could it be because of writing the tags into the file (and not the DB operation)?
Maybe increasing the busy timeout could be a solution to this, the default is only 5 seconds. https://www.sqlite.org/pragma.html#pragma_busy_timeout Strawberry only updates tables from the same database thread, so it should not be any case where it tries to update the same table at the same time. But If the songs table is updating and takes time and it tries to run a select query on the same table it might be the reason.
AppImages are available again on https://builds.strawberrymusicplayer.org/ that can be used to test if this is fixed. I'll reopen the issue if this is still a problem.
For technical issues, questions and feature requests please use the forum on https://forum.strawberrymusicplayer.org/
Describe the bug I have a quite large big database (around 35k files). And apparently Strawberry has some trouble to perform some actions when you have a database this size, it crashes every time
I see that the app crashes because the DB is apparently locked, maybe the AppImage doesn't have sufficient rights? Where is this DB located?
To Reproduce Well I'm not 100% sure it's because of the DB size (see logs below) but if so I guess you just need to have a big database, then try to create a new playlist or perform a search in the database.
Note : I'm running the app through .AppImage file
Expected behavior Well the app should not crash :p
System Information:
Additional context I tried to launch the app through terminal to get a better understanding, here is the logs when it crashes: