obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.51k stars 7.81k forks source link

Mac mystery crash: variety of routes #10946

Open BarryCarlyon opened 1 month ago

BarryCarlyon commented 1 month ago

Operating System Info

macOS 14

Other OS

No response

OBS Studio Version

30.1.2

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/jXG3oBflx2TT2VNY

OBS Studio Crash Log URL

No response

Expected Behavior

Not to crash with a Problem Report when invoking various functions not from the UI (Streamdeck/Websocket being not from the UI)

Including but not limited to:

Current Behavior

Crashes with a problem report

Steps to Reproduce

Method 1:

  1. Using the streamdeck and it's plugin switch between profiles a number of times (it's not directly tied to speed of switching aka spamming switching), not sure what mechanism is used under the hood there.

Method 2:

  1. Using the websocket switch between profiles a number of times

Method 3:

  1. Using the websocket under the currently selected profle
  2. Call GetProfileList
  3. Then it crashes

Some of these methods are inconsistent/not 100% reliable to trigger, but I also did a full nuke of OBS from my mac and did a fresh grab of latest release and same issue presents: IE no extra plugins installed beyond activating the WebSocket.

Sometimes Mac OBS will also crash the moment I connect a websocket. At identify I'll call "GetProfileList" as the first call.

In the last round of testing I have no sources in the only source collection either.

It also behaves similar on the RC1 of 30.2.0 And I have a report that it occurs on another users machine with release and OBS Blade (a seperate controller), granted blade also uses the websocket socket, it just rules out my code being at fault)

Doing the same "dumb shit" (if you pardon the expression) on windows cannot replicate the fault, so it seems localised to the mac version of OBS

Anything else we should know?

Mac Problem report for OBS Studio, The problem report is longer than 65536 chats so I've uploaded it to my pastebin https://pastebin.com/PFB1Rqmy

A second problem report https://pastebin.com/gzZRBmVc It's OBS Log file https://obsproject.com/logs/kAjQ3olT5TOkyNmY After doing a few profile changes via a WebSocket control

Yes it's a not normal aspect ratio here but I can cause the problem from just switching between a bunch of normal aspect ratio profiles, the profile I'm working with primarilly is for a vertical streaming platform, but I don't think that matters here

DDRBoxman commented 1 month ago

Same crash in both reports, putting it here to save someone a few seconds later:

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000811
Exception Codes:       0x0000000000000001, 0x0000000000000811

Thread 13 Crashed:: Thread (pooled)
0   libobs                                 0x10575652c video_output_get_width + 8
1   obs-websocket                          0x12a6cc590 0x12a668000 + 411024
2   libobs                                 0x1057ad6e0 obs_enum_outputs + 64
3   obs-websocket                          0x12a6cae34 0x12a668000 + 405044
4   obs-websocket                          0x12a6ae5ec 0x12a668000 + 288236
5   obs-websocket                          0x12a72e75c 0x12a668000 + 812892
6   obs-websocket                          0x12a71f36c 0x12a668000 + 750444
7   QtCore                                 0x105d293e4 0x105b34000 + 2053092
8   QtCore                                 0x105d257d0 0x105b34000 + 2037712
9   libsystem_pthread.dylib                0x19a182f94 _pthread_start + 136
10  libsystem_pthread.dylib                0x19a17dd34 thread_start + 8
BarryCarlyon commented 1 month ago

And heres the "top" from the same crash caused via streamdeck if that helps

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000035
Exception Codes:       0x0000000000000001, 0x0000000000000035

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [11881]

VM Region Info: 0x35 is not in any region.  Bytes before following region: 4342759371
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                      102d94000-103158000    [ 3856K] r-x/r-x SM=COW  /Applications/OBS.app/Contents/MacOS/OBS

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0   OBS                                    0x102db01e0 0x102d94000 + 115168
1   OBS                                    0x102e94ff4 0x102d94000 + 1052660
2   QtCore                                 0x1059caeec 0x105900000 + 831212
3   QtGui                                  0x105135f5c QAction::activate(QAction::ActionEvent) + 368
4   OBS                                    0x102da6e6c 0x102d94000 + 77420
5   StreamDeckPluginASIO1-28-0             0x15686fd80 streamdeck::handlers::obs_frontend::profile(std::__1::weak_ptr<void>, std::__1::shared_ptr<streamdeck::jsonrpc::request>)::$_5::__invoke(void*) + 620
6   OBS                                    0x102fd1aec 0x102d94000 + 2349804
7   QtCore                                 0x1059c3e24 QObject::event(QEvent*) + 612
8   QtGui                                  0x104e35658 QGuiApplication::event(QEvent*) + 712
9   QtWidgets                              0x105e77dec QApplication::event(QEvent*) + 644
10  QtWidgets                              0x105e793ac QApplicationPrivate::notify_helper(QObject*, QEvent*) + 272
11  QtWidgets                              0x105e7a23c QApplication::notify(QObject*, QEvent*) + 464
12  QtCore                                 0x105980580 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 292
13  QtCore                                 0x105981470 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 500
BarryCarlyon commented 1 month ago

I wonder if it relates to #10532 since the hiccup occurs around Getting Current Profiles and profiles/scenes share a similar fault. (found this when looking for a different bug)