RESOLVED DUPLICATE of bug 260723 Bug 264674
[GLib] Something is leaking FDs
https://bugs.webkit.org/show_bug.cgi?id=264674
Summary [GLib] Something is leaking FDs
Philippe Normand
Reported 2023-11-11 07:06:24 PST
Several webgl and media tests are consistently crashing on WPE-WK2-Tests-EWS, due to lack of GPU maybe? For instance: Thread 1 (Thread 0x7f9e5ccb7640 (LWP 61172)): #0 g_log_structured_array (log_level=<optimized out>, fields=0x7f9e5ccb5cf0, n_fields=4) at ../glib/gmessages.c:555 #1 0x00007fa1383506bc in g_log_default_handler (log_domain=log_domain@entry=0x7fa1383ab0be "GLib", log_level=log_level@entry=6, message=message@entry=0x7f9c500040c0 "Creating pipes for GWakeup: Too many open files", unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3284 #2 0x00007fa138350959 in g_logv (log_domain=0x7fa1383ab0be "GLib", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1391 #3 0x00007fa138350c53 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1460 #4 0x00007fa1383a279a in g_wakeup_new () at ../glib/gwakeup.c:164 #5 0x00007fa13834a44f in g_main_context_new_with_flags (flags=flags@entry=G_MAIN_CONTEXT_FLAGS_NONE) at ../glib/gmain.c:770 #6 0x00007fa13834a4eb in g_main_context_new () at ../glib/gmain.c:713 #7 0x00007fa134eb16ec in gst_gl_window_init (window=0x7f9e0c038770) at ../gst-libs/gst/gl/gstglwindow.c:187 #8 0x00007fa134df386b in g_type_create_instance (type=<optimized out>) at ../gobject/gtype.c:1977 #9 0x00007fa134dda268 in g_object_new_internal (class=class@entry=0x7f9e1c026390, params=params@entry=0x0, n_params=n_params@entry=0) at ../gobject/gobject.c:2246 #10 0x00007fa134ddb848 in g_object_new_with_properties (object_type=Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str , n_properties=<optimized out>, names=names@entry=0x0, values=values@entry=0x0) at ../gobject/gobject.c:2409 #11 0x00007fa134ddc6a1 in g_object_new (object_type=<optimized out>, first_property_name=first_property_name@entry=0x0) at ../gobject/gobject.c:2055 #12 0x00007fa134eb836a in gst_gl_dummy_window_new () at ../gst-libs/gst/gl/gstglwindow.c:1198 #13 gst_gl_window_new (display=0x55f33289c960 [GstGLDisplay|gldisplayegl959]) at ../gst-libs/gst/gl/gstglwindow.c:343 #14 0x00007fa134e94797 in gst_gl_display_create_window (display=0x55f33289c960 [GstGLDisplay|gldisplayegl959]) at ../gst-libs/gst/gl/gstgldisplay.c:686 #15 0x00007fa134e94a61 in _ensure_window (context=0x7f9e0c053120 [GstGLContext|glcontextegl1065]) at ../gst-libs/gst/gl/gstglcontext.c:279 #16 _ensure_window (context=0x7f9e0c053120 [GstGLContext|glcontextegl1065]) at ../gst-libs/gst/gl/gstglcontext.c:272 #17 gst_gl_context_create (context=0x7f9e0c053120 [GstGLContext|glcontextegl1065], other_context=other_context@entry=0x0 [GstGLContext], error=error@entry=0x7f9e5ccb6340) at ../gst-libs/gst/gl/gstglcontext.c:1060 #18 0x00007fa134e94c5c in gst_gl_display_create_context (display=0x55f33289c960 [GstGLDisplay|gldisplayegl959], other_context=0x0 [GstGLContext], p_context=0x55f32fdeafd8, error=0x7f9e5ccb6340) at ../gst-libs/gst/gl/gstgldisplay.c:657 #19 0x00007fa134e885ae in gst_gl_base_filter_find_gl_context_unlocked (filter=filter@entry=0x55f32fdead90 [GstGLBaseFilter|gldownloadelement958]) at ../gst-libs/gst/gl/gstglbasefilter.c:568 #20 0x00007fa134e88873 in gst_gl_base_filter_decide_allocation (trans=0x55f32fdead90 [GstBaseTransform|gldownloadelement958], query=0x7f9e0c03c180 [None]) at ../gst-libs/gst/gl/gstglbasefilter.c:428 #21 0x00007fa135484675 in gst_base_transform_do_bufferpool (outcaps=0x7f9e0c0114f0 [None], trans=0x55f32fdead90 [GstBaseTransform|gldownloadelement958]) at ../libs/gst/base/gstbasetransform.c:957 #22 gst_base_transform_setcaps (trans=trans@entry=0x55f32fdead90 [GstBaseTransform|gldownloadelement958], pad=<optimized out>, incaps=<optimized out>) at ../libs/gst/base/gstbasetransform.c:1351 #23 0x00007fa135484e4b in gst_base_transform_sink_eventfunc (trans=0x55f32fdead90 [GstBaseTransform|gldownloadelement958], event=0x7f9e0c00be20 [None]) at ../libs/gst/base/gstbasetransform.c:1951 #24 0x00007fa138140ed5 in gst_pad_send_event_unchecked (pad=pad@entry=0x55f32fb09aa0 [GstPad|sink], event=event@entry=0x7f9e0c00be20 [None], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5939 #25 0x00007fa1381416a0 in gst_pad_push_event_unchecked (pad=pad@entry=0x55f32fb3c340 [GstPad|src], event=0x7f9e0c00be20 [None], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5572 #26 0x00007fa138141c50 in push_sticky (pad=pad@entry=0x55f32fb3c340 [GstPad|src], ev=ev@entry=0x7f9e5ccb66f0, user_data=user_data@entry=0x7f9e5ccb6760) at ../gst/gstpad.c:4057 #27 0x00007fa1381327a3 in events_foreach (pad=0x55f32fb3c340 [GstPad|src], func=0x7fa138141b50 <push_sticky>, user_data=0x7f9e5ccb6760) at ../gst/gstpad.c:613 #28 0x00007fa138145237 in check_sticky (event=0x7f9e0c00be20 [None], pad=0x55f32fb3c340 [GstPad|src]) at ../gst/gstpad.c:4116 #29 gst_pad_push_event (pad=0x55f32fb3c340 [GstPad|src], event=0x7f9e0c00be20 [None]) at ../gst/gstpad.c:5705 #30 0x00007fa13547ddcf in gst_base_src_set_caps (src=src@entry=0x55f33554f560 [GstBaseSrc|appsrc962], caps=caps@entry=0x55f335553000 [None]) at ../libs/gst/base/gstbasesrc.c:1011 #31 0x00007fa137719936 in gst_app_src_do_negotiate (basesrc=basesrc@entry=0x55f33554f560 [GstBaseSrc|appsrc962]) at ../gst-libs/gst/app/gstappsrc.c:1343 #32 0x00007fa13771a9cb in gst_app_src_create (bsrc=0x55f33554f560 [GstBaseSrc|appsrc962], offset=<optimized out>, size=<optimized out>, buf=<optimized out>) at ../gst-libs/gst/app/gstappsrc.c:1644 #33 0x00007fa135477f38 in gst_base_src_get_range (src=src@entry=0x55f33554f560 [GstBaseSrc|appsrc962], offset=offset@entry=0, length=<optimized out>, buf=buf@entry=0x7f9e5ccb6ab0) at ../libs/gst/base/gstbasesrc.c:2592 #34 0x00007fa13547bc71 in gst_base_src_loop (pad=0x55f32fb3c340 [GstPad|src]) at ../libs/gst/base/gstbasesrc.c:2916 #35 0x00007fa138177911 in gst_task_func (task=0x55f33289ac70 [GstTask|appsrc962:src]) at ../gst/gsttask.c:384 #36 0x00007fa13837efb2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:350 #37 0x00007fa138379c02 in g_thread_proxy (data=0x7fa0c40012c0) at ../glib/gthread.c:831 #38 0x00007fa137a8f25a in start_thread (arg=<optimized out>) at pthread_create.c:442 #39 0x00007fa137b17fc4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100 STDERR: (WPEWebProcess:28680): GLib-ERROR **: 05:35:10.276: Creating pipes for GWakeup: Too many open files
Attachments
Michael Catanzaro
Comment 1 2023-11-14 10:36:24 PST
I just hit this crash in Epiphany Tech Preview. I have no clue where we are leaking file descriptors. If I had to guess I would say GStreamer, as the web process that crashed for me was using GStreamer on several threads. But this guess may be completely wrong. Checking my web processes that are still alive, they are all using only a small quantity of fds. The process that crashed must have had an extremely large number. Too bad there's no way to check what fds were open for a process at the time of the crash.
Michael Catanzaro
Comment 2 2023-11-15 07:59:26 PST
Michael Catanzaro
Comment 3 2024-03-01 06:25:22 PST
*** Bug 266577 has been marked as a duplicate of this bug. ***
Michael Catanzaro
Comment 4 2024-03-01 06:27:34 PST
*** This bug has been marked as a duplicate of bug 260723 ***
Note You need to log in before you can comment on or make changes to this bug.