#994124 cinnamon: Quick consumption of memory after a disk unmount

Package:
cinnamon
Source:
cinnamon
Description:
Innovative and comfortable desktop
Submitter:
Tomáš Szaniszlo
Date:
2021-09-12 11:03:03 UTC
Severity:
important
#994124#5
Date:
2021-09-12 10:58:35 UTC
From:
To:
I have observed (at least since the beginning of the August, therefore this
should not relate to the release of Bookworm) that sometimes my Cinnamon
session crashes.

Now I have found that it happens quite reproducibly when I unmount an SD card
(which was mounted automatically) through the bottom panel menu. No other
such mounts need to be present.

After the unmount, the CPU usage of the `cinnamon --replace` process severely
grows and it slowly starts eating memory, until it gets killed by earlyoom.
Restarting it with Ctrl-Alt-Esc brings the Cinnamon back and remedies the
problem.

It seems that .xsession-errors may contain important hints to the cause as it
gets spammed with loads of occurrences of this messages (with nothing of
merit preceeding it):

    (cinnamon:210223): Cjs-CRITICAL **: 12:48:57.797: JS ERROR: Error: second argument to Lang.bind() must be a function, not undefined
    bind@resource:///org/gnome/gjs/modules/script/lang.js:75:15
    _sendNotification@/usr/share/cinnamon/js/ui/placesManager.js:169:61
    _removeFinish@/usr/share/cinnamon/js/ui/placesManager.js:293:14

I have also tried to get a backtrace, but not sure if it is useful (at another
attempt I got a quite different one):

    (gdb) bt
    #0  0x00007fd3cf5de3ff in __GI___poll (fds=fds@entry=0x7fff80037b18, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007fd3cdd36d02 in poll (__timeout=-1, __nfds=1, __fds=0x7fff80037b18) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
    #2  _xcb_conn_wait (c=c@entry=0x5589cb2d57b0, cond=cond@entry=0x5589cb2d68e0, vector=vector@entry=0x7fff80037c10, count=count@entry=0x7fff80037c0c) at ../../src/xcb_conn.c:480
    #3  0x00007fd3cdd37381 in _xcb_out_send (count=<optimized out>, vector=<optimized out>, c=0x5589cb2d57b0) at ../../src/xcb_out.c:464
    #4  xcb_writev (c=c@entry=0x5589cb2d57b0, vector=vector@entry=0x7fff80037c70, count=-2147255284, count@entry=3, requests=requests@entry=43) at ../../src/xcb_out.c:412
    #5  0x00007fd3cf804eae in _XSend (dpy=0x5589cb2d4540, data=0x7fff80037ca0 "\367\271\005\200\377\177", data@entry=0x0, size=size@entry=0) at ../../src/xcb_io.c:578
    #6  0x00007fd3cf804fc9 in _XEventsQueued (dpy=dpy@entry=0x5589cb2d4540, mode=mode@entry=2) at ../../src/xcb_io.c:423
    #7  0x00007fd3cf7f6931 in XPending (dpy=0x5589cb2d4540) at ../../src/Pending.c:55
    #8  0x00007fd3cf0ad3bf in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
    #9  0x00007fd3cfab5f6f in g_main_context_prepare (context=context@entry=0x5589cb2cd1f0, priority=priority@entry=0x7fff80037df0) at ../../../glib/gmain.c:3657
    #10 0x00007fd3cfab69cb in g_main_context_iterate (context=0x5589cb2cd1f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4111
    #11 0x00007fd3cfab6dfb in g_main_loop_run (loop=0x5589cb2cee20) at ../../../glib/gmain.c:4329
    #12 0x00007fd3cf70b8fa in meta_run () at core/main.c:619
    #13 0x00005589c9e4a7d8 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:381

Strace running on the cinnamon process does not seem too revealing, but the
brk() calls there are obvious sign of the increasing memory consumption.

Best regards
TomaS