Bug 257000

Summary: [GTK[ WebProcess crash when scrolling down https://www.elegantthemes.com/gallery/divi/
Product: WebKit Reporter: Kdwk <kdwkleung>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: bugs-noreply, mcatanzaro
Priority: P2    
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   

Description Kdwk 2023-05-18 18:10:37 PDT
On https://www.elegantthemes.com/gallery/divi/ very quickly, the WebProcess crashes. The site has lots of videos.

(WebKitWebProcess:1140): GStreamer-CRITICAL **: 18:08:10.931: gst_poll_get_read_gpollfd: assertion 'set != NULL' failed
The per-process limit on the number of open file descriptors has been reached.
ERROR: cannot create wakeup pipe

(WebKitWebProcess:1140): GStreamer-WARNING **: 18:08:10.931: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstalsa.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstalsa.so: cannot open shared object file: Too many open files

(WebKitWebProcess:1140): GStreamer-WARNING **: 18:08:10.931: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstoss4.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstoss4.so: cannot open shared object file: Too many open files

(WebKitWebProcess:1140): GStreamer-WARNING **: 18:08:10.931: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenal.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstopenal.so: cannot open shared object file: Too many open files

(WebKitWebProcess:1140): GStreamer-WARNING **: 18:08:10.931: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstossaudio.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstossaudio.so: cannot open shared object file: Too many open files

(WebKitWebProcess:1140): GStreamer-CRITICAL **: 18:08:10.983: gst_poll_write_control: assertion 'set != NULL' failed

(WebKitWebProcess:1140): GStreamer-CRITICAL **: 18:08:10.983: gst_poll_write_control: assertion 'set != NULL' failed

(WebKitWebProcess:1140): GStreamer-CRITICAL **: 18:08:10.983: gst_poll_write_control: assertion 'set != NULL' failed

(WebKitWebProcess:1140): GLib-ERROR **: 18:08:11.006: Creating pipes for GWakeup: Too many open files

** (MiniBrowser:17): WARNING **: 18:08:27.556: WebProcess CRASHED
Comment 1 Michael Catanzaro 2023-05-18 18:59:45 PDT
Hm, this page works fine for me.

We have to raise the file descriptor limit in the Epiphany UI process because the number of fds in use there scales proportionately to the number of browser tabs. We *could* do it in the web process too, but probably shouldn't have to. I wonder if there is an fd leak.

Try this. Have just one Epiphany instance open with only this page running and no other tabs, and close all other apps using WebKit. Open System Monitor, search for WebKitWebProcess (there should hopefully be only one or two!), right click and select Open Files. Normally there should be a few dozen. I'm attaching a screenshot of a typical example. Your web process should have 1028 open, which is absurd for a web process. Scroll to the bottom and take a screenshot, and also screenshot anything else that you think looks suspicious.

We can raise the limit way higher, but should only do this if we're confident that we are not leaking fds.
Comment 2 Michael Catanzaro 2023-05-18 19:00:59 PDT
It uses less than 40 fds for me.

Maybe could this be related to the gst-va hardware acceleration that you have configured?
Comment 3 Kdwk 2023-05-20 02:43:27 PDT
Haven't hit it again after I re-built WebKit so I'll close it for now