REOPENED268477
[GTK] WebKit uses up all memory, fails to flush web process cache under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=268477
Summary [GTK] WebKit uses up all memory, fails to flush web process cache under memor...
Dennis Camera
Reported 2024-01-31 09:24:33 PST
Created attachment 469632 [details] epiphany with one tab open just before getting OOM killed. On my system, when using epiphany to browse the web, WebKit's memory usage continues to grow and use up all memory and available swap until it gets killed by Linux' OOM killer. Attached you find a screenshot of the epiphany browser with just one tab open and almost all memory and swap used up in htop. At this point the system has become laggy already due to memory stress, opening up a fresh tab after this led to the OOM killer killing epiphany. This may be related to bug #262780.
Attachments
epiphany with one tab open just before getting OOM killed. (1.43 MB, image/png)
2024-01-31 09:24 PST, Dennis Camera
no flags
dmesg output after OOM kicking in (14.65 KB, text/x-log)
2024-01-31 09:26 PST, Dennis Camera
no flags
another screenshot with threads not shown in htop (1.46 MB, image/png)
2024-01-31 11:31 PST, Dennis Camera
no flags
Dennis Camera
Comment 1 2024-01-31 09:26:07 PST
Created attachment 469633 [details] dmesg output after OOM kicking in
Michael Catanzaro
Comment 2 2024-01-31 10:11:12 PST
We've been discussing this problem on Matrix in the context of bug #262780 and bug #205806, but based on this screenshot, the problem is you have dozens of Epiphany processes running. That's not normal and also not likely to be a bug in WebKit. This is most likely an Epiphany bug, so I'm going to close this for now. Feel free to report this on the Epiphany issue tracking, leaving a link to this issue there, and a link to the Epiphany issue here for cross-reference purposes. Also, feel free to reopen this issue if you can reproduce this problem with only a single Epiphany process running.
Michael Catanzaro
Comment 3 2024-01-31 10:42:52 PST
OK, after further discussion on Matrix, the problem is htop is displaying threads rather than processes.
Dennis Camera
Comment 4 2024-01-31 10:44:44 PST
Michael Catanzaro, it's displayed in an "unfortunate" way in htop. It's only one epiphany process, but the different threads being shown here. The line where the command line is printed in purple is the process, the green ones are the threads. It can also be seen by all of the lines having exactly the same memory usage. If it were indeed different processes, statistically at least one would differ.
Dennis Camera
Comment 5 2024-01-31 10:44:49 PST
Michael Catanzaro, it's displayed in an "unfortunate" way in htop. It's only one epiphany process, but the different threads being shown here. The line where the command line is printed in purple is the process, the green ones are the threads. It can also be seen by all of the lines having exactly the same memory usage. If it were indeed different processes, statistically at least one would differ.
Dennis Camera
Comment 6 2024-01-31 10:47:05 PST
Reopening again (inadvertently changed the status back to invalid.)
Dennis Camera
Comment 7 2024-01-31 11:31:56 PST
Created attachment 469635 [details] another screenshot with threads not shown in htop Attached another screenshot with the threads not visible in htop.
Michael Catanzaro
Comment 8 2024-01-31 12:57:58 PST
I think that's sufficient evidence that the memory pressure handler is not working as intended. It would be nice to have logs from MemoryPressureHandlerUnix.cpp to show this, but it's not reasonable to request them because that logging can only be enabled in debug builds. The use of debug logging rather than release logging is unfortunate.
Note You need to log in before you can comment on or make changes to this bug.