obsproject / obs-websocket

Remote-control of OBS Studio through WebSocket
GNU General Public License v2.0
3.84k stars 704 forks source link

Bug: Touch Portal crashes OBS Studio. #1095

Closed tinodo closed 7 months ago

tinodo commented 1 year ago

Operating System Info

Windows 11

Other OS

No response

OBS Studio Version

29.0.x

OBS Studio Version (Other)

No response

obs-websocket Version

5.1.0

OBS Studio Log URL

https://obsproject.com/logs/B4wT9MrocSLwWwm2

OBS Studio Crash Log URL

No response

Expected Behavior

OBS Studio is not expected to crash, whatever a Websockets client does or however a plugin behaves.

Current Behavior

When connecting to OBS Studio over WebSockets, getting the properties from some (plugin) filters, like Exceldro's Audio Monitor, will crash OBS Studio without generating a Crash file. The only thing found is an event in the Event Log:

Faulting application name: obs64.exe, version: 29.0.0.0, time stamp: 0x63b8a37a Faulting module name: ucrtbase.dll, version: 10.0.22621.608, time stamp: 0xf5fc15a3 Exception code: 0xc0000409 Fault offset: 0x000000000007f61e Faulting process id: 0x0x4AFC Faulting application start time: 0x0x1D92F13FE89E4D3 Faulting application path: C:\xxxx\OBS Studio\bin\64bit\obs64.exe Faulting module path: C:\WINDOWS\System32\ucrtbase.dll Report Id: 962a5d4f-e8a2-4c3e-9014-f0c039daaad9 Faulting package full name: Faulting package-relative application ID:

Again, there is NO CRASH Log. The OBS Studio Log just suddenly ends. I have manually issued the last request in the log, and it completes without any problems. I would be so that another request, not in the log, might cause the crash.

Steps to Reproduce

  1. Install OBS 28 or up, create a scene and a source.
  2. Install the Audio Monitor plugin.
  3. Add an Audio Monitor filter to the source.
  4. Enable the WebSocket server in OBS Studio.
  5. Install Touch Portal (latest version).
  6. Enable the OBS plugin in Touch Portal, and connect to OBS Studio.
  7. Witness OBS studio disappearing all of a sudden without an error messages. The process simply dies.

This is cause by getting the properties of the filter.

Anything else we should know?

This can happen for multiple plugins, but I have only seen it happen for this one. Discord might have some more samples.

tt2468 commented 7 months ago

Does this still occur in the latest version of OBS and Touch Portal?

tinodo commented 7 months ago

This issue was caused by a plugin, Audio Monitor, which has since been fixed.

However, I feel that a plugin should not be able to crash OBS Studio.

tt2468 commented 7 months ago

It's not easy to build a plugin system with as much functionality as that of OBS's while also being able to protect from crashes in plugin code. OBS does have a safe mode now, which should hopefully help users track down buggy plugins and uninstall them and/or file a bug report with the maintainer.