It might be more complicated to fix as there are lots and lots of actions that get to memory leaks. There are some crashes, too. Bad programming, probably, and it might need some fundamental changes in the code and architecture. They are creating lists and objects that are larger and larger on each trigger, without killing any when they are not needed or having a limit to recycle resources. And if they got to this, it might be complicated to find solutions with the same team that created it. I kind of doubt we'll see a solution before the next release.
-- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-shell in Ubuntu. https://bugs.launchpad.net/bugs/1672297 Title: gnome-shell uses lots of memory, and grows over time Status in GNOME Shell: Unknown Status in Mutter: Fix Released Status in gnome-shell package in Ubuntu: Triaged Status in mutter package in Ubuntu: Triaged Bug description: 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 : [email protected] Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp

