This bug is fixed in Ubuntu 18.10, but beware 18.10 also brings a new separate leak: bug 1800165.
This bug is not yet fixed in Ubuntu 18.04 because the fix for this one also causes a performance regression in 18.10 that we don't want to repeat in 18.04: https://gitlab.gnome.org/GNOME/gjs/merge_requests/236 We will need to backport that fix as part of the fix here so the performance regression is never seen in 18.04. However, technically we are required to get the performance fix into 18.10 before we can proceed with 18.04 here. :S -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gjs in Ubuntu. https://bugs.launchpad.net/bugs/1672297 Title: gnome-shell uses lots of memory, and grows over time Status in GNOME Shell: Confirmed Status in gjs package in Ubuntu: Fix Released Status in gjs source package in Bionic: Triaged Bug description: Upstream: https://gitlab.gnome.org/GNOME/gnome-shell/issues/64 --- gnome-shell's RSS is growing by 1 MiB every few minutes, and is now at almost 2 GiB. user 3039 1.8 16.1 4302340 1968476 tty2 Sl+ Mar09 120:17 /usr/bin/gnome-shell strace output is voluminous; here is a representative sample: poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}]) writev(5, [{"\231\n\10\0\n\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0", 32}], 1) = 32 poll([{fd=5, events=POLLIN}], 1, -1) = 1 ([{fd=5, revents=POLLIN}]) recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0{\224\0\0\0\0H\0\0\0\0\23\266\32\0\0\0\0\201\242\204\0\0\0\0\0\261.\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(5, 0x7fff60efac90, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(5, 0x7fff60efac90, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}]) writev(5, [{"\212\5\4\0a\2228\0y\3\5\0%\3\27\4\231\6\5\0\n\0 \0a\2228\0\0\0\0\0"..., 36}, {NULL, 0}, {"", 0}], 3) = 36 poll([{fd=5, events=POLLIN}], 1, -1) = 1 ([{fd=5, revents=POLLIN}]) recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0}\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(5, 0x7fff60efac90, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=5, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=5, revents=POLLOUT}]) writev(5, [{"\212\n\2\0a\2228\0", 8}, {NULL, 0}, {"", 0}], 3) = 8 recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 (Timeout) recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 (Timeout) recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) open("/proc/self/stat", O_RDONLY) = 36 fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 fcntl(36, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(36, "3039 (gnome-shell) R 2930 2917 2"..., 4096) = 354 read(36, "", 3072) = 0 close(36) = 0 recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 117885) = 1 ([{fd=4, revents=POLLIN}]) read(4, "\1\0\0\0\0\0\0\0", 16) = 8 recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"[\2\327&h\0@\0i\0@\0(nu\22\n\0I\0\336\2\232\1\265\0038\2\362\2\355\1", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 0 (Timeout) recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) write(4, "\1\0\0\0\0\0\0\0", 8) = 8 recvmsg(12, 0x7fff60efaed0, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 0) = 1 ([{fd=4, revents=POLLIN}]) read(4, "\1\0\0\0\0\0\0\0", 16) = 8 recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) open("/proc/self/stat", O_RDONLY) = 36 fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 fcntl(36, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fstat(36, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(36, "3039 (gnome-shell) R 2930 2917 2"..., 4096) = 354 read(36, "", 3072) = 0 close(36) = 0 recvmsg(5, 0x7fff60efb020, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efb000, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=12, events=POLLIN}, {fd=14, events=POLLIN}, {fd=16, events=POLLIN}, {fd=26, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=34, events=POLLIN}, {fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=40, events=POLLIN}, {fd=42, events=POLLIN}, {fd=43, events=POLLIN}], 15, 1) = 0 (Timeout) recvmsg(5, 0x7fff60efb040, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=12, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=12, revents=POLLOUT}]) writev(12, [{"\217\3\4\0i\0@\0\0\0\0\0\0\0\0\0+\0\1\0", 20}, {NULL, 0}, {"", 0}], 3) = 20 poll([{fd=12, events=POLLIN}], 1, -1) = 1 ([{fd=12, revents=POLLIN}]) recvmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"\1\2\331&\0\0\0\0\250\0`\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(12, 0x7fff60efaf60, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(12, 0x7fff60efaf60, 0) = -1 EAGAIN (Resource temporarily unavailable) ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efa960) = 0 ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efa910) = 0 ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efa900) = 0 ioctl(6, DRM_IOCTL_I915_GEM_PWRITE, 0x7fff60efa9b0) = 0 ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efac50) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efaba0) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SW_FINISH, 0x7fff60efad30) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SW_FINISH, 0x7fff60efae30) = 0 ioctl(6, _IOC(_IOC_READ|_IOC_WRITE, 0x64, 0x69, 0x40), 0x7fff60efadb0) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efae30) = 0 ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efadb0) = 0 ioctl(6, DRM_IOCTL_I915_GEM_BUSY, 0x7fff60efad80) = 0 ioctl(6, DRM_IOCTL_I915_GEM_MADVISE, 0x7fff60efad70) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efad90) = 0 ioctl(6, DRM_IOCTL_I915_GEM_SET_DOMAIN, 0x7fff60efae90) = 0 ProblemType: Bug DistroRelease: Ubuntu 17.04 Package: gnome-shell 3.23.91-0ubuntu4 ProcVersionSignature: Ubuntu 4.10.0-11.13-generic 4.10.1 Uname: Linux 4.10.0-11-generic x86_64 ApportVersion: 2.20.4-0ubuntu2 Architecture: amd64 Date: Mon Mar 13 19:17:51 2017 DisplayManager: gdm3 InstallationDate: Installed on 2016-12-02 (100 days ago) InstallationMedia: Ubuntu-GNOME 16.10 "Yakkety Yak" - Release amd64 (20161012.1) ProcEnviron: LANGUAGE=en_AU:en TERM=xterm-256color PATH=(custom, no user) LANG=en_AU.UTF-8 SHELL=/bin/bash SourcePackage: gnome-shell UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/gnome-shell/+bug/1672297/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp