@JFG reports that he's experiencing a memory leak in Chrome (WebKit?) whenever a Wikipedia page (but only a Wikipedia page) is left open and idle in another tab for a few hours. The process accumulates memory (up to gigabytes) but uses very little CPU while in the background. Clicking on the tab reduces the allocated memory to a more reasonable amount.
JFG noticed this problem shortly after the New Page Patroller user right, which allows access to page curation tool, was added to his account.
He has already tried:
- removing all user scripts
- disabling gadgets in Preferences
- opening pages in ?safemode=1
- disabling all browser extensions
"An article page that has been loaded, minimized, left untouched, and shares its process with no other page, grows to over a gigabyte of memory usage over a couple hours."
He has a snapshot of memory use in debug mode available.
See T205127#4613124 and T205127#4613193 for a recently written summary. What I know is that users of several different communities have reported through various channels over the past 2-3 months about memory leaks, after several years of having virtually heard nothing about the subject. They could be unrelated reports, but so far they had in common:
- Wikipedia (English and German).
- Multiple browsers (Chrome, Opera, possibly others).
- Desktop (any skin).
This task in particular shows:
- There may be multiple sources of memory leaks. As such, let's focus this task only on the issue reported by @JFG.
- The report from @JFG via @Whatamidoing-WMF includes various bits of information as well as a Chrome trace log.
- This trace log shows direct correlation on an otherwise idle page that every mouse event that triggered significant code in Popups, also had a subsequent increase in memory use without a decrease in memory at any point. Specific function names, context and reproduction steps are found in T205127#4613193.
While there maybe other leaks in other places, I suggest to create separate tasks about each finding so that we can triage, understand and resolve each one individually.