<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hello everybody. There seems to be a file descriptor leak in the device monitor API on ARM; using this sample program:<div><br></div><div><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">#include <unistd.h></span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">#include <gst/gst.h></span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77); min-height: 14px;"><span style="font-variant-ligatures: no-common-ligatures"></span><br></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">int main(int argc, char *argv[]) {</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">  gst_init(&argc, &argv);</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77); min-height: 14px;"><span style="font-variant-ligatures: no-common-ligatures"></span><br></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">  while (1) {</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">    GstDeviceMonitor* monitor = gst_device_monitor_new();</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">    if (!gst_device_monitor_start(monitor))</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">      return 1;</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">    gst_device_monitor_stop(monitor);</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">    gst_object_unref(monitor);</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77); min-height: 14px;"><span style="font-variant-ligatures: no-common-ligatures"></span><br></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">    sleep(1);</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">  }</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77); min-height: 14px;"><span style="font-variant-ligatures: no-common-ligatures"></span><br></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">  return 0;</span></p>
<p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-stretch: normal; line-height: normal; font-family: "Andale Mono"; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal; color: rgb(47, 255, 18); background-color: rgba(0, 0, 0, 0.77);"><span style="font-variant-ligatures: no-common-ligatures">}</span></p></div><div><span style="font-variant-ligatures: no-common-ligatures"><br></span></div><div><span style="font-variant-ligatures: no-common-ligatures">and monitoring /proc/[pid]/fd, there’s one new file descriptor every second created by eventfd2. Funny thing this only happens on a Raspberry Pi 4B (Raspbian). Versions tested:</span></div><div><span style="font-variant-ligatures: no-common-ligatures"><br></span></div><div><span style="font-variant-ligatures: no-common-ligatures">  * GStreamer 1.14.4 RPi: leak</span></div><div><span style="font-variant-ligatures: no-common-ligatures">  * GStreamer 1.18.4 RPi: leak</span></div><div><span style="font-variant-ligatures: no-common-ligatures">  * GStreamer 1.18.4 Intel: no leak</span></div><div><span style="font-variant-ligatures: no-common-ligatures">  * GStreamer 1.16.3 Intel: no leak</span></div><div><span style="font-variant-ligatures: no-common-ligatures"><br></span></div><div><span style="font-variant-ligatures: no-common-ligatures">The only device provider is v4l2, with gudev enabled. I can provide more logs and test more recent versions if necessary, though it will take some time. A quick search in the issues didn’t turn out anything but I wanted to make sure before opening a new one: is this known ?</span></div><div><span style="font-variant-ligatures: no-common-ligatures"><br></span></div><div><span style="font-variant-ligatures: no-common-ligatures">Best regards</span></div><div><span style="font-variant-ligatures: no-common-ligatures">Jérôme Laheurte</span></div><div><span style="font-variant-ligatures: no-common-ligatures"><br></span></div></body></html>