[Webkit-unassigned] [Bug 280180] New: [GTK] WebKitWebProcess left running when WebView is freed

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Sep 23 05:22:24 PDT 2024


https://bugs.webkit.org/show_bug.cgi?id=280180

            Bug ID: 280180
           Summary: [GTK] WebKitWebProcess left running when WebView is
                    freed
           Product: WebKit
           Version: Other
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKitGTK
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: mcrha at redhat.com
                CC: bugs-noreply at webkitgtk.org

Created attachment 472638

  --> https://bugs.webkit.org/attachment.cgi?id=472638&action=review

reproducer (wk2.c)

Moving this from a downstream bug report:
https://gitlab.gnome.org/GNOME/evolution/-/issues/2855

In short, when a user moves between mails in Evolution, each newly showed mail adds a new WebKitWebProcess and leaves behind running "the previous" WebKitWebProcess. This is new in the WebKitGTK 2.46.0 release.

While it's much easier to reproduce under Evolution, I managed to reproduce something similar in an outside application (attached here). The first line contains how to compile and run it.

Steps:
1. run `./wk2` - one WebKitWebProcess (with *two* of its bwrap-s) are running
2. click on the "Add Web View" button - two  WebKitWebProcess-es (with *two* of its bwrap-s for each) are running
3. click on the "Reload" button near the bottom of the window - three  WebKitWebProcess-es (with *two* of its bwrap-s for each) are running
4. click the "X" button beside the "Reload" button - two  WebKitWebProcess-es (with *two* of its bwrap-s for each) are running

The test app shows which WebKitWebView-s had been created and when they are freed, confirming they do not leak.

I ran `ps ax | grep WebKitWebP` after each step and it shows this:

$ ps ax | grep WebKitWebP   (after step 1.)
   7192 pts/0    S+     0:00 /usr/bin/bwrap --args 129 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7193 pts/0    S+     0:00 /usr/bin/bwrap --args 129 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7194 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7228 pts/1    S+     0:00 grep --color=auto WebKitWebP
$ ps ax | grep WebKitWebP   (after step 2.)
   7192 pts/0    S+     0:00 /usr/bin/bwrap --args 129 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7193 pts/0    S+     0:00 /usr/bin/bwrap --args 129 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7194 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 16 121 120
   7231 pts/0    S+     0:00 /usr/bin/bwrap --args 139 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7232 pts/0    S+     0:00 /usr/bin/bwrap --args 139 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7233 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7250 pts/1    S+     0:00 grep --color=auto WebKitWebP
$ ps ax | grep WebKitWebP   (after step 3.)
   7231 pts/0    S+     0:00 /usr/bin/bwrap --args 139 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7232 pts/0    S+     0:00 /usr/bin/bwrap --args 139 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7233 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 26 131 133
   7253 pts/0    S+     0:00 /usr/bin/bwrap --args 142 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7254 pts/0    S+     0:00 /usr/bin/bwrap --args 142 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7255 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7273 pts/0    S+     0:00 /usr/bin/bwrap --args 146 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7274 pts/0    S+     0:00 /usr/bin/bwrap --args 146 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7277 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7289 pts/1    S+     0:00 grep --color=auto WebKitWebP
$ ps ax | grep WebKitWebP   (after step 4.)
   7253 pts/0    S+     0:00 /usr/bin/bwrap --args 142 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7254 pts/0    S+     0:00 /usr/bin/bwrap --args 142 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7255 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 33 133 136
   7273 pts/0    S+     0:00 /usr/bin/bwrap --args 146 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7274 pts/0    S+     0:00 /usr/bin/bwrap --args 146 -- /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7277 pts/0    SLl+   0:00 /usr/libexec/webkit2gtk-4.1/WebKitWebProcess 38 137 139
   7294 pts/1    S+     0:00 grep --color=auto WebKitWebP

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240923/8d659f50/attachment-0001.htm>


More information about the webkit-unassigned mailing list