[Webkit-unassigned] [Bug 275165] New: REGRESSION(278498 at main) [GStreamer][Skia] getUserMedia(deviceID) frequently freezing in media stream tests under debug

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 5 09:01:31 PDT 2024


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

            Bug ID: 275165
           Summary: REGRESSION(278498 at main) [GStreamer][Skia]
                    getUserMedia(deviceID) frequently freezing in media
                    stream tests under debug
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Media
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: lmoura at igalia.com

Created attachment 471594

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

GST_DEBUG=2 output of running the test

Affects multiple MediaStream-related tests, leading to early exits on both GTK and WPE debug bots since early May 2024.

Bisecting with fast/mediastream/get-user-media-device-id.html led to 278498 at main, the commit enabling Skia by default in place of Cairo. And indeed building WebKit with `--cmakeargs=-DUSE_SKIA=0` makes the test pass even in that commit.

Further investigation of the test shows it's getting stuck in the last test case of this file, "Ideal deviceId constraints":

```
await navigator.mediaDevices.getUserMedia({video: true});
const devices  = await navigator.mediaDevices.enumerateDevices();
for (let device of devices) {
    if (device.kind === "audioinput") {
        const stream = await navigator.mediaDevices.getUserMedia({audio: {deviceId: device.deviceId}});
        assert_equals(stream.getAudioTracks()[0].getSettings().deviceId, device.deviceId, "Matching audio device id");
    } else if (device.kind === "videoinput") {
        const stream = await navigator.mediaDevices.getUserMedia({video: {deviceId: device.deviceId}});
        assert_equals(stream.getVideoTracks()[0].getSettings().deviceId, device.deviceId, "Matching video device id");
    }
}
```

The test is getting stuck in one of the `await navigator.mediaDevices.getUserMedia(...)` inside the loop, trying to access a specific deviceID, sometimes a video device, sometimes an audio device.

Running with `GST_DEBUG=2` showed these lines among others, not sure if related (full log attached)

```
0:00:01.009301531    47 0x588f78236650 ERROR                  pulse pulsedeviceprovider.c:466:gst_pulse_device_provider_probe:<pulsedeviceprovider0> Failed to connect: Invalid argument
Audio capture was requested but no device was found amongst 3 devices
BooleanConstraint 9, exact -1, ideal 1
MediaConstraint 10 of type 3
Audio capture was requested but no device was found amongst 3 devices
BooleanConstraint 9, exact -1, ideal 1
MediaConstraint 10 of type 3
```

-- 
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/20240605/8c007ab5/attachment-0001.htm>


More information about the webkit-unassigned mailing list