Skip to content

infinite loop caused by video input device change notifications (starting in Supermium 132) #1644

@stoneledge

Description

@stoneledge

After days of continuous use, Supermium 132 gets stuck in an infinite loop responding to device change notifications for video input devices (such as webcams). The problem has occured spontaneously on multiple occasions for no apparent reason.

From log messages, the code in question appears to be in the following source file
content\browser\renderer_host\media\media_devices_manager.cc

This code receives endless device change notifications via method HandleDevicesChanged, which then causes it to try to enumerate the machine's devices. As the notifications never end, the browser process is stuck at ~80% cpu continuously handling them. It is not clear who is causing the notifications.

This problem can be force reproduced by:

  1. opening the dev console of any tab.
  2. pasting code: navigator.mediaDevices.enumerateDevices()
  3. plugging a video input device (such as a webcam) into a usb port
  4. unplugging that same device
  5. seeing the browser process's cpu usage spike endlessly

This was tested on Windows 7 x64 SP1 running as a VirtualBox VM guest.

The problem can also be reproduced on the same Windows 7 machine using Supermium 138.

The problem cannot be reproduced on
Supermium 126 on the same Windows 7 machine
Supermium 132 on a Windows 11 VM
Chromium 143 on the same Windows 7 machine (coerced via vxkex)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Critical bugA bug that does break the browser, as in causing crashes or making it impossible to perform a task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions