Bug 1138261 - Clementine crashes. Also eats memory. with "save statistics in file tags when possible" enabled
Summary: Clementine crashes. Also eats memory. with "save statistics in file tags when...
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: Other (show other bugs)
Version: Leap 15.0
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Dave Plater
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-14 09:09 UTC by Carlos Robinson
Modified: 2019-08-31 22:51 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
gdb session (54.31 KB, text/plain)
2019-06-15 17:52 UTC, Carlos Robinson
Details
full screen paste of gdb session (72.90 KB, text/plain)
2019-06-16 12:33 UTC, Carlos Robinson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Robinson 2019-06-14 09:09:55 UTC
I found that Clementine crashes if the setting "Library / save statistics in file tags when possible" is activated. Happened with both the OSS repo and the Multimedia repo version.

Currently using:

cer@Telcontar:~> rpm -q clementine
clementine-1.3.1-lp150.1.6.x86_64
cer@Telcontar:~> 



<3.6> 2019-06-13 10:20:50 Telcontar systemd 1 - -  Started Process Core Dump (PID 23375/UID 0).
<3.6> 2019-06-13 10:20:50 Telcontar systemd-coredump 23376 - -  Resource limits disable core dumping for process 23171 (clementine).
<1.2> 2019-06-13 10:20:50 Telcontar systemd-coredump 23376 - -  Process 23171 (clementine) of user 1000 dumped core.



10:20:10.800 DEBUG MainWindow:1448                  position 40 scrobble point 78 status 0 
10:20:20.800 DEBUG MainWindow:1448                  position 50 scrobble point 78 status 0 
10:20:30.800 DEBUG MainWindow:1448                  position 60 scrobble point 78 status 0 
10:20:40.800 DEBUG MainWindow:1448                  position 70 scrobble point 78 status 0 
10:20:45.076 DEBUG Playlist:1669                    Setting metadata for  QUrl( "file:///home1/cer/mp3.audex/Johannes Brahms/Ungarische Tanze - Hungarian Dances/02 - Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace).mp3" )  to "Johannes Brahms" "Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace)" 
10:20:45.177 DEBUG Playlist:1669                    Setting metadata for  QUrl( "file:///home1/cer/mp3.audex/Johannes Brahms/Ungarische Tanze - Hungarian Dances/02 - Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace).mp3" )  to "Johannes Brahms" "Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace)" 
10:20:48.879 DEBUG TagReader:730                    Saving song statistics tags to "/home1/cer/mp3.audex/Johannes Brahms/Ungarische Tanze - Hungarian Dances/02 - Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace).mp3" 
10:20:48.879 DEBUG TagReader:863                    Setting FMPSFrame: "FMPS_PlayCount" ,  "1" 
10:20:48.879 DEBUG TagReader:863                    Setting FMPSFrame: "FMPS_Rating_Amarok_Score" ,  "0.5" 
10:20:48.879 DEBUG LibraryWatcher:606               Subdir "/home1/cer/mp3.audex/Johannes Brahms/Ungarische Tanze - Hungarian Dances" changed under directory "/home1/cer/mp3.audex" id 1 
10:20:48.879 DEBUG MessageReply<MessageType>:90     Releasing ID 5 (finished) 
10:20:49.921 DEBUG LibraryWatcher:343               "/home1/cer/mp3.audex/Johannes Brahms/Ungarische Tanze - Hungarian Dances/02 - Hungarian Dance No.2 in D Minor (Allegro Non Assai, Vivace).mp3" changed 
10:20:49.921 DEBUG _MessageReplyBase:24             Waiting on ID 6 
10:20:50.800 DEBUG MainWindow:1448                  position 80 scrobble point 78 status 0 
Segmentation fault (core dumped)
cer@Telcontar:~> 

<0.6> 2019-06-13 10:13:04 Telcontar kernel - - - [20824.378283] QThread[22626]: segfault at 10 ip 00007f525d647ea0 sp 00007f523bffe328 error 4 in libpthread-2.26.so[7f525d63e000+19000]
<3.6> 2019-06-13 10:13:05 Telcontar systemd 1 - -  Started Process Core Dump (PID 22941/UID 0).
<3.6> 2019-06-13 10:13:05 Telcontar systemd-coredump 22942 - -  Resource limits disable core dumping for process 22623 (clementine).
<1.2> 2019-06-13 10:13:05 Telcontar systemd-coredump 22942 - -  Process 22623 (clementine) of user 1000 dumped core.

cer@Telcontar:~> rpm -qf /lib/libpthread-2.26.so
glibc-32bit-2.26-lp150.11.17.1.x86_64
cer@Telcontar:~> 



Aside this, related or not I don't know:

top - 20:29:59 up 1 day, 21:19,  5 users,  load average: 0,71, 0,88, 0,76
Tasks: 481 total,   2 running, 478 sleeping,   0 stopped,   1 zombie
%Cpu(s): 11,8 us,  1,7 sy,  0,0 ni, 86,1 id,  0,4 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  8161132 total,  1674284 free,  4929500 used,  1557348 buff/cache
KiB Swap: 25165820 total, 20121708 free,  5044112 used.  2735848 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR   SWAP S  %CPU  %MEM     TIME+ COMMAND              
 4442 cer       20   0 20,001t 847732   7864 241256 R 1,190 10,39   2:52.74 clementine           
 

Look at the virtual memory it uses: 20 terabytes. Not real memory, but still...  real memory is 10% of the machine total memory. A lot for a program that was not "running" that moment.
Comment 1 Dave Plater 2019-06-15 13:03:56 UTC
There's a serious problem with the "save statistics in file tags when possible" feature. I tried clicking the "Synchronize statistics to files now" button as well as enabling save statistics and I had to use "ctrl alt sysreq e" to escape because my system froze.
My Tumbleweed laptop which has the same 4Gig i3 cpu configuration but is much newer is playing under the same circumstances but is visibly slowed down.
I'll look upstream for a fix but it may be that this feature is normally resource hungry it writes a 24 byte hexadecimal value to the comment section of both tag 1 and tag 2.
Can you install clementine, clementine-debugsource and clementine-debuginfo from Leap:15.0 oss and debug repos and try for a gdb backtrace?
Comment 2 Carlos Robinson 2019-06-15 17:41:53 UTC
Sure. Could you remind me of the procedure to do with gdb? I use it so rarely that I have forgotten. Perhaps it is written somewhere in the wiki :-? Ok, found <https://en.opensuse.org/openSUSE:Bugreport_application_crashed>, trying to follow that.

cer@Telcontar:~> rpm -qa | grep clementine
clementine-debuginfo-1.3.1+git20190423-lp150.127.4.x86_64
clementine-debugsource-1.3.1+git20190423-lp150.127.4.x86_64
clementine-1.3.1-lp150.1.6.x86_64
cer@Telcontar:~> 

cer@Telcontar:~> gdb /usr/bin/clementine
GNU gdb (GDB; openSUSE Leap 15.0) 8.2
...

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/clementine...Missing separate debuginfo for /usr/bin/clementine
Try: zypper install -C "debuginfo(build-id)=3b1018be3089921e315492659dd7c7eb5504ebed"
(no debugging symbols found)...done.
(gdb) 

It seems to me that the wrong versions got installed. Trying again.

cer@Telcontar:~> gdb /usr/bin/clementine
...

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/clementine...Reading symbols from /usr/lib/debug/usr/bin/clementine-1.3.1-lp150.1.6.x86_64.debug...done.
done.
(gdb) 
  [enter run]
... (complains of many libraries missing symbols and to possibly install, too many to copy)
...
19:30:16.258 DEBUG MainWindow:1448                  position 110 scrobble point 142 status 0 
19:30:26.258 DEBUG MainWindow:1448                  position 120 scrobble point 142 status 0 
19:30:36.258 DEBUG MainWindow:1448                  position 130 scrobble point 142 status 0 
19:30:46.258 DEBUG MainWindow:1448                  position 140 scrobble point 142 status 0 
19:30:48.359 DEBUG TagReader:730                    Saving song statistics tags to "/home1/cer/mp3.audex/J.S. Bach/J.S. Bach - Brandenburg Concertos (Karajan)/02 - Bach ยท Brandenburg Concerto #1 In F, BWV 1046 - 2. Adagio.mp3" 
19:30:48.359 DEBUG TagReader:863                    Setting FMPSFrame: "FMPS_PlayCount" ,  "1" 
19:30:48.359 DEBUG TagReader:863                    Setting FMPSFrame: "FMPS_Rating_Amarok_Score" ,  "0.5" 
19:30:48.359 DEBUG LibraryWatcher:606               Subdir "/home1/cer/mp3.audex/J.S. Bach/J.S. Bach - Brandenburg Concertos (Karajan)" changed under directory "/home1/cer/mp3.audex" id 1 
19:30:48.359 DEBUG MessageReply<MessageType>:90     Releasing ID 1 (finished) 
19:30:48.360 WARN  unknown                          QWaitCondition::wakeAll(): mutex lock failure: Invalid argument 
19:30:48.360 WARN  unknown                          QWaitCondition::wakeAll(): mutex unlock failure: Invalid argument 

Thread 1 "clementine" received signal SIGSEGV, Segmentation fault.
0x00007ffff0e366a2 in tcache_get () from /lib64/libc.so.6
(gdb) 

The wiki says all that is written to a file gdb.txt on exit gdb. I hope it is true. [...] Nope, nothing written. Ok, I'll paste the entire terminal session into a file and attach that.
Comment 3 Carlos Robinson 2019-06-15 17:52:41 UTC
Created attachment 807683 [details]
gdb session

(firefox crashed twice as I hit enter on the file 'p' to attach. A third time I double clicked on file, but then bugzilla complained there is no file to attach. Trying a fourth time)

gdb window copy paste. I hope this is what you need. If not, just ask and I'll try again, it seems that clementine crashes reliably here with that option enabled.
Comment 4 Carlos Robinson 2019-06-15 17:54:31 UTC
(the third time mentioned above, bugzilla asked me to log in; I did, then it forgot the file to attach and the comments. This time it worked. Pfff!)
Comment 5 Dave Plater 2019-06-16 07:00:28 UTC
(In reply to Carlos Robinson from comment #4)
> (the third time mentioned above, bugzilla asked me to log in; I did, then it
> forgot the file to attach and the comments. This time it worked. Pfff!)

You got everything right except you need to type bt to obtain the backtrace before quitting.
Comment 6 Dave Plater 2019-06-16 12:25:49 UTC
Need back trace ie type bt before quiting gdb
Comment 7 Carlos Robinson 2019-06-16 12:32:02 UTC
Oh! Here goes :-D

Thread 1 "clementine" received signal SIGSEGV, Segmentation fault.
0x00007ffff0e366a2 in tcache_get () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff0e366a2 in tcache_get () at /lib64/libc.so.6
#1  0x00007ffff175a4d8 in operator new(unsigned long) () at /usr/lib64/libstdc++.so.6
#2  0x00007ffff5a53ba2 in  () at /usr/lib64/libQtCore.so.4
#3  0x00007ffff5a51fa3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQtCore.so.4
#4  0x00007ffff5a7ec0e in  () at /usr/lib64/libQtCore.so.4
#5  0x00007ffff4ce5e07 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#6  0x00007ffff4ce61b0 in  () at /usr/lib64/libglib-2.0.so.0
#7  0x00007ffff4ce623c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#8  0x00007ffff5a7ed76 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#9  0x00007ffff27f9b77 in  () at /usr/lib64/libQtGui.so.4
#10 0x00007ffff5a4d2a4 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#11 0x00007ffff5a4d60e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#12 0x00007ffff5a5315c in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#13 0x00005555558015c6 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/clementine-1.3.1-lp150.1.6.x86_64/src/main.cpp:487
(gdb) quit
Comment 8 Carlos Robinson 2019-06-16 12:33:04 UTC
Created attachment 807690 [details]
full screen paste of gdb session

I attach the full screen paste of the gdp session.
Comment 9 Dave Plater 2019-06-16 14:13:18 UTC
Thanks, I'm digesting the information.
Comment 10 Dave Plater 2019-06-18 08:24:04 UTC
I can reproduce this in 15.1 with clementine-1.3.1, I haven't had a problem yet with clementine-1.3.1+git20190423 from my home repo, you might try meanwhile, there are debug packages in the same repo:
https://download.opensuse.org/repositories/home:/plater/Leap_15.0
Comment 11 Dave Plater 2019-07-19 07:46:07 UTC
Clementine in:
https://download.opensuse.org/repositories/home:/plater/Leap_15.0
has had a lot of work done on memory leaks, this may fix this bug. If it does I can send the patch to 15.x updates
Comment 14 Dave Plater 2019-07-21 08:28:56 UTC
Please test clementine-1.3.1 from the repository in Comment 12 it has the patch mentioned in Comment 13 which should fix this issue, I'll check myself as soon as I have a moment.
Comment 15 Dave Plater 2019-07-21 08:40:41 UTC
The repository stated in Comment 12 is broken atm I will notify when it's fixed.
Comment 17 Dave Plater 2019-07-24 12:57:07 UTC
Created mr#718242
Comment 18 Swamp Workflow Management 2019-07-24 13:30:06 UTC
This is an autogenerated message for OBS integration:
This bug (1138261) was mentioned in
https://build.opensuse.org/request/show/718242 15.0+15.1+Backports:SLE-15 / clementine
Comment 19 Swamp Workflow Management 2019-08-24 13:11:09 UTC
openSUSE-RU-2019:1998-1: An update that has two recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1138261,1141444
CVE References: 
Sources used:
openSUSE Leap 15.1 (src):    clementine-1.3.1-lp151.3.6.1
openSUSE Leap 15.0 (src):    clementine-1.3.1-lp150.2.6.1
openSUSE Backports SLE-15 (src):    clementine-1.3.1-bp150.2.6.1
Comment 20 Marcus Meissner 2019-08-27 07:53:54 UTC
wasreleased
Comment 21 Swamp Workflow Management 2019-08-31 16:17:03 UTC
openSUSE-RU-2019:2026-1: An update that has two recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1138261,1141444
CVE References: 
Sources used:
openSUSE Backports SLE-15-SP1 (src):    clementine-1.3.1-bp151.4.6.1