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
60.58k stars 8.01k forks source link

[BUG] Segfault when adding syphon source #2666

Closed rherban closed 4 years ago

rherban commented 4 years ago

Platform

Operating system and version: OSX Catalina 10.15.4 OBS Studio version: 25.0.4 (straight from git clone) QT: 5.14.1 (if helpful)

Expected Behavior

Add syphon source successfully

Current Behavior

If a previous obs-studio directory exists in ~/Library/Application\ Support\obs-studio, it will immediately segfault. If I remove that directory and ./obs, I can load the UI and interact successfully. Once I add a syphon client and hit ok after naming it, it segfaults again.

Steps to Reproduce

  1. git clone --recursive https://github.com/obsproject/obs-studio.git
  2. mkdir build && cd build && export QTDIR=/usr/local/opt/qt && cmake .. && make (consolidated here for brevity)
  3. cd rundir/RelWithDebInfo/bin
  4. ./obs

Additional information

Abbreviated segfault:

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [14959]

VM Regions Near 0:
-->
    Kernel Alloc Once      000000000d415000-000000000d417000 [    8K] rw-/rwx SM=PRV  

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   mac-syphon.so                   0x000000002724b689 objc_release + 9 (syphon.m:46)
1   mac-syphon.so                   0x000000002724aee0 load_syphon_settings + 288 (syphon.m:278)
2   mac-syphon.so                   0x0000000027249235 syphon_create + 549 (syphon.m:531)
3   libobs.0.dylib                  0x000000010f8ae04b obs_source_create_internal + 2219 (obs-source.c:385)
4   obs                             0x000000010d4edade AddNew(QWidget*, char const*, char const*, bool, OBSRef<obs_source*, &(obs_source_addref), &(obs_source_release)>&) + 190 (window-basic-source-select.cpp:190)
5   obs                             0x000000010d4ede53 OBSBasicSourceSelect::on_buttonBox_accepted() + 371
6   obs                             0x000000010d412a2e OBSBasicSourceSelect::qt_metacall(QMetaObject::Call, int, void**) + 62
7   org.qt-project.QtCore           0x00000001101786bd 0x10ff58000 + 2229949
8   org.qt-project.QtWidgets        0x000000010f45b082 0x10f2b7000 + 1720450
9   org.qt-project.QtCore           0x000000011017882c 0x10ff58000 + 2230316
10  org.qt-project.QtWidgets        0x000000010f3afe0f 0x10f2b7000 + 1019407
11  org.qt-project.QtWidgets        0x000000010f3afca9 0x10f2b7000 + 1019049
12  org.qt-project.QtWidgets        0x000000010f3b0ddc QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 268
13  org.qt-project.QtWidgets        0x000000010f301757 QWidget::event(QEvent*) + 439
14  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
15  org.qt-project.QtWidgets        0x000000010f2cac07 QApplication::notify(QObject*, QEvent*) + 7671
16  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
17  org.qt-project.QtWidgets        0x000000010f2c8547 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 903
18  org.qt-project.QtWidgets        0x000000010f320abc 0x10f2b7000 + 432828
19  org.qt-project.QtWidgets        0x000000010f31f31a 0x10f2b7000 + 426778
20  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
21  org.qt-project.QtWidgets        0x000000010f2c9055 QApplication::notify(QObject*, QEvent*) + 581
22  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
23  org.qt-project.QtGui            0x000000010f998cd1 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3441
24  org.qt-project.QtGui            0x000000010f97eadb QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 219
25  libqcocoa.dylib                 0x0000000010cf9778 0x10cc1000 + 231288
26  com.apple.CoreFoundation        0x00007fff39713f12 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
27  com.apple.CoreFoundation        0x00007fff39713eb1 __CFRunLoopDoSource0 + 103
28  com.apple.CoreFoundation        0x00007fff39713ccb __CFRunLoopDoSources0 + 209
29  com.apple.CoreFoundation        0x00007fff397129fa __CFRunLoopRun + 927
30  com.apple.CoreFoundation        0x00007fff39711ffe CFRunLoopRunSpecific + 462
31  com.apple.HIToolbox             0x00007fff38345abd RunCurrentEventLoopInMode + 292
32  com.apple.HIToolbox             0x00007fff383456f4 ReceiveNextEventCommon + 359
33  com.apple.HIToolbox             0x00007fff38345579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
34  com.apple.AppKit                0x00007fff36990c99 _DPSNextEvent + 883
35  com.apple.AppKit                0x00007fff3698f4e0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
36  com.apple.AppKit                0x00007fff369811ee -[NSApplication run] + 658
37  libqcocoa.dylib                 0x0000000010cf85e8 0x10cc1000 + 226792
38  org.qt-project.QtCore           0x0000000110142b0f QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
39  org.qt-project.QtWidgets        0x000000010f4c595e QDialog::exec() + 510
40  obs                             0x000000010d45a0df OBSBasic::AddSource(char const*) + 63 (window-basic-main.cpp:4776)
41  obs                             0x000000010d45a623 OBSBasic::AddSourceFromAction() + 99 (window-basic-main.cpp:4873)
42  org.qt-project.QtCore           0x000000011017882c 0x10ff58000 + 2230316
43  org.qt-project.QtWidgets        0x000000010f2be6a6 QAction::activate(QAction::ActionEvent) + 310
44  org.qt-project.QtWidgets        0x000000010f441e1d 0x10f2b7000 + 1617437
45  org.qt-project.QtWidgets        0x000000010f43f548 0x10f2b7000 + 1606984
46  org.qt-project.QtWidgets        0x000000010f446d92 QMenu::mouseReleaseEvent(QMouseEvent*) + 690
47  org.qt-project.QtWidgets        0x000000010f301757 QWidget::event(QEvent*) + 439
48  org.qt-project.QtWidgets        0x000000010f447417 QMenu::event(QEvent*) + 1127
49  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
50  org.qt-project.QtWidgets        0x000000010f2cac07 QApplication::notify(QObject*, QEvent*) + 7671
51  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
52  org.qt-project.QtWidgets        0x000000010f2c8547 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 903
53  org.qt-project.QtWidgets        0x000000010f3207e1 0x10f2b7000 + 432097
54  org.qt-project.QtWidgets        0x000000010f31f31a 0x10f2b7000 + 426778
55  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
56  org.qt-project.QtWidgets        0x000000010f2c9055 QApplication::notify(QObject*, QEvent*) + 581
57  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
58  org.qt-project.QtGui            0x000000010f998cd1 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3441
59  org.qt-project.QtGui            0x000000010f97eadb QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 219
60  libqcocoa.dylib                 0x0000000010cf9778 0x10cc1000 + 231288
61  com.apple.CoreFoundation        0x00007fff39713f12 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
62  com.apple.CoreFoundation        0x00007fff39713eb1 __CFRunLoopDoSource0 + 103
63  com.apple.CoreFoundation        0x00007fff39713ccb __CFRunLoopDoSources0 + 209
64  com.apple.CoreFoundation        0x00007fff397129fa __CFRunLoopRun + 927
65  com.apple.CoreFoundation        0x00007fff39711ffe CFRunLoopRunSpecific + 462
66  com.apple.HIToolbox             0x00007fff38345abd RunCurrentEventLoopInMode + 292
67  com.apple.HIToolbox             0x00007fff383456f4 ReceiveNextEventCommon + 359
68  com.apple.HIToolbox             0x00007fff38345579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
69  com.apple.AppKit                0x00007fff36990c99 _DPSNextEvent + 883
70  com.apple.AppKit                0x00007fff3698f4e0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
71  com.apple.AppKit                0x00007fff369811ee -[NSApplication run] + 658
72  libqcocoa.dylib                 0x0000000010cf85e8 0x10cc1000 + 226792
73  org.qt-project.QtCore           0x0000000110142b0f QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
74  org.qt-project.QtWidgets        0x000000010f44547b QMenu::exec(QPoint const&, QAction*) + 107
75  obs                             0x000000010d45a79a OBSBasic::AddSourcePopupMenu(QPoint const&) + 154 (window-basic-main.cpp:4889)
76  obs                             0x000000010d45a94e OBSBasic::on_actionAddSource_triggered() + 30 (window-basic-main.cpp:4894)
77  obs                             0x000000010d411bd2 OBSBasic::qt_metacall(QMetaObject::Call, int, void**) + 130
78  org.qt-project.QtCore           0x00000001101786bd 0x10ff58000 + 2229949
79  org.qt-project.QtWidgets        0x000000010f2be6a6 QAction::activate(QAction::ActionEvent) + 310
80  org.qt-project.QtWidgets        0x000000010f3afc50 0x10f2b7000 + 1018960
81  org.qt-project.QtWidgets        0x000000010f3b0ddc QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 268
82  org.qt-project.QtWidgets        0x000000010f4aaabf QToolButton::mouseReleaseEvent(QMouseEvent*) + 15
83  org.qt-project.QtWidgets        0x000000010f301757 QWidget::event(QEvent*) + 439
84  org.qt-project.QtWidgets        0x000000010f4ab04f QToolButton::event(QEvent*) + 319
85  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
86  org.qt-project.QtWidgets        0x000000010f2cac07 QApplication::notify(QObject*, QEvent*) + 7671
87  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
88  org.qt-project.QtWidgets        0x000000010f2c8547 QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 903
89  org.qt-project.QtWidgets        0x000000010f320abc 0x10f2b7000 + 432828
90  org.qt-project.QtWidgets        0x000000010f31f31a 0x10f2b7000 + 426778
91  org.qt-project.QtWidgets        0x000000010f2c7c1d QApplicationPrivate::notify_helper(QObject*, QEvent*) + 269
92  org.qt-project.QtWidgets        0x000000010f2c9055 QApplication::notify(QObject*, QEvent*) + 581
93  org.qt-project.QtCore           0x0000000110146994 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212
94  org.qt-project.QtGui            0x000000010f998cd1 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 3441
95  org.qt-project.QtGui            0x000000010f97eadb QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 219
96  libqcocoa.dylib                 0x0000000010cf9778 0x10cc1000 + 231288
97  com.apple.CoreFoundation        0x00007fff39713f12 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
98  com.apple.CoreFoundation        0x00007fff39713eb1 __CFRunLoopDoSource0 + 103
99  com.apple.CoreFoundation        0x00007fff39713ccb __CFRunLoopDoSources0 + 209
100 com.apple.CoreFoundation        0x00007fff397129fa __CFRunLoopRun + 927
101 com.apple.CoreFoundation        0x00007fff39711ffe CFRunLoopRunSpecific + 462
102 com.apple.HIToolbox             0x00007fff38345abd RunCurrentEventLoopInMode + 292
103 com.apple.HIToolbox             0x00007fff383456f4 ReceiveNextEventCommon + 359
104 com.apple.HIToolbox             0x00007fff38345579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
105 com.apple.AppKit                0x00007fff36990c99 _DPSNextEvent + 883
106 com.apple.AppKit                0x00007fff3698f4e0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
107 com.apple.AppKit                0x00007fff369811ee -[NSApplication run] + 658
108 libqcocoa.dylib                 0x0000000010cf85e8 0x10cc1000 + 226792
109 org.qt-project.QtCore           0x0000000110142b0f QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
110 org.qt-project.QtCore           0x0000000110146fe2 QCoreApplication::exec() + 130
111 obs                             0x000000010d427cbe main + 5198 (obs-app.cpp:2472)
112 libdyld.dylib                   0x00007fff7365bcc9 start + 1

Full segfault: https://pastebin.com/SwqVTXj1

I have unchecked obs from Input Monitoring within the Security panel per #2292 , but this doesn't seem related.

DDRBoxman commented 4 years ago

This should be fixed in 25.0.6, let me know if it isn't.

rherban commented 4 years ago

Confirmed, I'm able to build and run OBS successfully now!