Skip to content
This repository has been archived by the owner on Mar 15, 2021. It is now read-only.

Crashes in Chrome caused by obs-virtual-cam #141

Open
randomascii opened this issue Jan 13, 2021 · 1 comment
Open

Crashes in Chrome caused by obs-virtual-cam #141

randomascii opened this issue Jan 13, 2021 · 1 comment

Comments

@randomascii
Copy link

We are hitting a significant number of Crashes in Chrome that are 100% correlated with obs-virtualcam-model64.dll. The crash call stack looks like this:

0x00007ffd4de4c1b2 (chrome.dll -video_capture_device_client.cc:616)   media::VideoCaptureDeviceClient::OnIncomingCapturedBufferExt(media::VideoCaptureDevice::Client::Buffer,media::VideoCaptureFormat const &,gfx::ColorSpace const &,base::TimeTicks,base::TimeDelta,gfx::Rect,media::VideoFrameMetadata const &)
  0x00007ffd4de4af7d (chrome.dll -video_capture_device_client.cc:390)  
  0x00007ffd4ea291bc (chrome.dll -video_capture_device_win.cc:871)  
  0x00007ffd4bdd917d (chrome.dll -sink_input_pin_win.cc:235)  
  0x00007ffd3d6886df (obs-virtualcam-module64.dll + 0x000086df)  
  0x00007ffd3d68a120 (obs-virtualcam-module64.dll + 0x0000a120)  
  0x00007ffd3d68a077 (obs-virtualcam-module64.dll + 0x0000a077)  
  0x00007ffd3d68a21e (obs-virtualcam-module64.dll + 0x0000a21e)  
  0x00007ffd3d689830 (obs-virtualcam-module64.dll + 0x00009830)  
  0x00007ffd3d6f575f (obs-virtualcam-module64.dll + 0x0007575f)  
  0x00007ffda69e7c23 (KERNEL32.DLL + 0x00017c23)  
  0x00007ffda898d4d0 (ntdll.dll + 0x0006d4d0)  

The actual crash is a read from location 0.

Note that the call stack is speculative once it gets into obs-virtualcam-module64.dll since 64-bit stack walking relies on metadata from the DLL or PDB. I tried to find obs-virtualcam-module64.dll in the latest release but it is not there, and I'd really need the symbols to be able to file an entirely accurate bug report.

Roughly 67% of the crashes are happening with the 26.0.0.0 version of the DLL, and 15% of the crashes are with the 26.1.0.0 version. That is, it appears that the bug has not been fixed in 26.1.0.0. The call stack above is from the 26.1.0.0 version, Timestamp: Mon Dec 14 09:57:59 2020 (5FD7C3C7).

If you can share a DLL and PDB for that version (or for 26.0.0.0) then I can give a more complete call stack. From our side, the actual crashing line is this one:

https://source.chromium.org/chromium/chromium/src/+/master:media/capture/video/video_capture_device_client.cc;l=616?q=VideoCaptureDeviceClient::OnIncomingCapturedBufferExt

From analysis of the source, machine code, and debug information it appears that receiver_ is NULL, which suggests that the Receive method was called incorrectly.

It is possible that this is a bug in Chrome, but since the crash is 100% correlated with obs-virtual-cam we are assuming that it is not.

Thoughts?

@randomascii
Copy link
Author

For our reference, this correlates to crbug.com/1137308. Unfortunately that bug has restricted access so you won't be able to see it although we could probably CC a team member to give them access to it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant