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.11k stars 7.96k forks source link

OBS crashes when I deselect/re-select a Display Capture source #3673

Closed cowboy closed 3 years ago

cowboy commented 4 years ago

Platform

Operating system and version: Windows 10 Pro, version 1909, build 18363.1139 OBS Studio version: 26.0.2 64-bit

Expected Behavior

I should be able to select a Display Capture source without OBS crashing

Current Behavior

When I repeatedly select and deselect the Display Capture source, OBS crashes. Sometimes, it happens the first time. Sometimes, it takes a few iterations of deselecting and re-selecting.

After restarting OBS, here's the current log file: https://obsproject.com/logs/he_kuhY7JyPfeuGY

And the last log file: https://obsproject.com/logs/olsJGFJ65DV4TGLN

Steps to Reproduce

This bug only seems to happen when I capture a display that has another display to the left of it or above it in Windows Display Preferences. I have been unable to reproduce this crash when the other display is below or to the right of it.

  1. Create a scene
  2. Add a Display Capture source. In this case, I'm using Display 1: 3440x1440 @ 0,0 with "Capture Cursor" enabled
  3. Move the source in the Preview area so it can be deselected by clicking empty space
  4. Deselect the source, and then re-select the source
  5. Repeat step 4 until OBS crashes
  6. Restart OBS
  7. Re-select the scene, if OBS saved it before crashing
  8. Repeat step 4 until OBS crashes

Additional information

Fenrirthviti commented 4 years ago

Can you please provide the crash report as well? Should be right next to the normal log file uploads.

cowboy commented 4 years ago

@Fenrirthviti Here's the latest crash log uploaded via OBS, but I doubt it will be helpful. It's from a crash a few days ago, before I was trying to do anything with Display Capture. I don't see any current crash logs in %APPDATA%\obs-studio\crashes

https://obsproject.com/logs/zPO9rzzWAOsS30HD

Fenrirthviti commented 4 years ago
000000A60A9FF778 0000000000000000 000001B9D5B9E598 000001BA92221E00 000001BA92221E00 000001BA92223E00 <unknown>!0x0
000000A60A9FF780 00007FFD3AFB3A0A 000001BA725C6900 000000A60A9FF8D0 000000000000001F 00007FFD4D721F02 coreaudio-encoder.dll!aac_encode+0xba

You're correct, this crash looks to be something externally in the coreaudio encoder that crashed, not OBS itself. Can you explain exactly what happens? Is it a silent crash to desktop? Does OBS hang? Can you check the event viewer to see if there are any messages there related to the crash?

cowboy commented 4 years ago

The Display Capture crash results in the OBS screen going white and an "OBS Studio is not responding" dialog opening. After I dismiss the dialog, I see this in Event Viewer -> Windows Logs -> Application

Log Name:      Application
Source:        Windows Error Reporting
Date:          10/31/2020 4:56:13 PM
Event ID:      1001
Task Category: None
Level:         Information
Keywords:      Classic
User:          N/A
Computer:      COWBEAST
Description:
Fault bucket 2009449271139669774, type 5
Event Name: AppHangB1
Response: Not available
Cab Id: 0

Problem signature:
P1: obs64.exe
P2: 26.0.2.0
P3: 5f7ca479
P4: 59fe
P5: 134217728
P6: 
P7: 
P8: 
P9: 
P10: 

Attached files:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA00F.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA02F.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA02E.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA05E.tmp.txt
\\?\C:\Users\Cowboy\AppData\Local\Temp\WERA745.tmp.appcompat.txt

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppHang_obs64.exe_a44d284b90f85a3d8e71da4f898aa5abebf3f82_506c46f6_6dd494c2-5bda-476f-8421-ab3002e6af83

Analysis symbol: 
Rechecking for solution: 0
Report Id: a9739bba-4edd-4101-892e-8eb36627d638
Report Status: 268435456
Hashed bucket: 057a47eefbf7ca3debe2ff773072970e
Cab Guid: 0
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Level>4</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2020-10-31T20:56:13.011299900Z" />
    <EventRecordID>234606</EventRecordID>
    <Channel>Application</Channel>
    <Computer>COWBEAST</Computer>
    <Security />
  </System>
  <EventData>
    <Data>2009449271139669774</Data>
    <Data>5</Data>
    <Data>AppHangB1</Data>
    <Data>Not available</Data>
    <Data>0</Data>
    <Data>obs64.exe</Data>
    <Data>26.0.2.0</Data>
    <Data>5f7ca479</Data>
    <Data>59fe</Data>
    <Data>134217728</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA00F.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA02F.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA02E.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA05E.tmp.txt
\\?\C:\Users\Cowboy\AppData\Local\Temp\WERA745.tmp.appcompat.txt</Data>
    <Data>\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppHang_obs64.exe_a44d284b90f85a3d8e71da4f898aa5abebf3f82_506c46f6_6dd494c2-5bda-476f-8421-ab3002e6af83</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>a9739bba-4edd-4101-892e-8eb36627d638</Data>
    <Data>268435456</Data>
    <Data>057a47eefbf7ca3debe2ff773072970e</Data>
    <Data>0</Data>
  </EventData>
</Event>

And here's the Report.wer file:

Version=1
EventType=AppHangB1
EventTime=132486513703901906
ReportType=3
Consent=1
UploadTime=132486513723741404
ReportStatus=268435456
ReportIdentifier=6dd494c2-5bda-476f-8421-ab3002e6af83
IntegratorReportIdentifier=a9739bba-4edd-4101-892e-8eb36627d638
Wow64Host=34404
NsAppName=obs64.exe
OriginalFilename=obs
AppSessionGuid=00006de0-0001-0016-2821-a7f3c7afd601
TargetAppId=W:0006ada14c8240b294b1a86c10e367bd6d1e00000904!000055d3f9d49fb87727ab40ebab4549f8b61e5bc386!obs64.exe
TargetAppVer=2020//10//06:17:08:09!2e84c2!obs64.exe
BootId=4294967295
TargetAsId=9228
UserImpactVector=286265616
IsFatal=1
EtwNonCollectReason=1
Response.BucketId=057a47eefbf7ca3debe2ff773072970e
Response.BucketTable=5
Response.LegacyBucketId=2009449271139669774
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=obs64.exe
Sig[1].Name=Application Version
Sig[1].Value=26.0.2.0
Sig[2].Name=Application Timestamp
Sig[2].Value=5f7ca479
Sig[3].Name=Hang Signature
Sig[3].Value=59fe
Sig[4].Name=Hang Type
Sig[4].Value=134217728
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=10.0.18363.2.0.0.256.48
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
DynamicSig[22].Name=Additional Hang Signature 1
DynamicSig[22].Value=59fe7fdc9047bfc5f2347a400e289cfb
DynamicSig[23].Name=Additional Hang Signature 2
DynamicSig[23].Value=e677
DynamicSig[24].Name=Additional Hang Signature 3
DynamicSig[24].Value=e67742dbc41edaa454f6b2d8c6dd74fa
DynamicSig[25].Name=Additional Hang Signature 4
DynamicSig[25].Value=59fe
DynamicSig[26].Name=Additional Hang Signature 5
DynamicSig[26].Value=59fe7fdc9047bfc5f2347a400e289cfb
DynamicSig[27].Name=Additional Hang Signature 6
DynamicSig[27].Value=e677
DynamicSig[28].Name=Additional Hang Signature 7
DynamicSig[28].Value=e67742dbc41edaa454f6b2d8c6dd74fa
UI[3]=OBS Studio is not responding
UI[4]=If you close the program, you might lose information.
UI[5]=Close the program
UI[6]=Close the program
UI[7]=Close the program
LoadedModule[0]=C:\Program Files\obs-studio\bin\64bit\obs64.exe
LoadedModule[1]=C:\WINDOWS\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\WINDOWS\System32\KERNEL32.DLL
LoadedModule[3]=C:\WINDOWS\System32\KERNELBASE.dll
LoadedModule[4]=C:\WINDOWS\System32\CRYPT32.dll
LoadedModule[5]=C:\WINDOWS\System32\ucrtbase.dll
LoadedModule[6]=C:\Program Files\obs-studio\bin\64bit\Qt5Svg.dll
LoadedModule[7]=C:\WINDOWS\System32\MSASN1.dll
LoadedModule[8]=C:\Program Files\obs-studio\bin\64bit\Qt5Xml.dll
LoadedModule[9]=C:\Program Files\obs-studio\bin\64bit\obs-frontend-api.dll
LoadedModule[10]=C:\WINDOWS\System32\USER32.dll
LoadedModule[11]=C:\WINDOWS\System32\win32u.dll
LoadedModule[12]=C:\WINDOWS\System32\GDI32.dll
LoadedModule[13]=C:\WINDOWS\System32\gdi32full.dll
LoadedModule[14]=C:\WINDOWS\System32\msvcp_win.dll
LoadedModule[15]=C:\WINDOWS\System32\SHELL32.dll
LoadedModule[16]=C:\WINDOWS\System32\cfgmgr32.dll
LoadedModule[17]=C:\Program Files\obs-studio\bin\64bit\avutil-56.dll
LoadedModule[18]=C:\Program Files\obs-studio\bin\64bit\avformat-58.dll
LoadedModule[19]=C:\WINDOWS\System32\shcore.dll
LoadedModule[20]=C:\WINDOWS\System32\bcrypt.dll
LoadedModule[21]=C:\Program Files\obs-studio\bin\64bit\avcodec-58.dll
LoadedModule[22]=C:\WINDOWS\System32\msvcrt.dll
LoadedModule[23]=C:\WINDOWS\System32\ole32.dll
LoadedModule[24]=C:\WINDOWS\System32\RPCRT4.dll
LoadedModule[25]=C:\WINDOWS\System32\WS2_32.dll
LoadedModule[26]=C:\WINDOWS\System32\combase.dll
LoadedModule[27]=C:\Program Files\obs-studio\bin\64bit\libcurl.dll
LoadedModule[28]=C:\WINDOWS\System32\windows.storage.dll
LoadedModule[29]=C:\WINDOWS\System32\bcryptPrimitives.dll
LoadedModule[30]=C:\WINDOWS\System32\advapi32.dll
LoadedModule[31]=C:\WINDOWS\System32\WLDAP32.dll
LoadedModule[32]=C:\WINDOWS\System32\sechost.dll
LoadedModule[33]=C:\WINDOWS\System32\profapi.dll
LoadedModule[34]=C:\WINDOWS\System32\powrprof.dll
LoadedModule[35]=C:\Program Files\obs-studio\bin\64bit\Qt5Widgets.dll
LoadedModule[36]=C:\WINDOWS\System32\UMPDC.dll
LoadedModule[37]=C:\Program Files\obs-studio\bin\64bit\Qt5Gui.dll
LoadedModule[38]=C:\Program Files\obs-studio\bin\64bit\Qt5Core.dll
LoadedModule[39]=C:\WINDOWS\System32\shlwapi.dll
LoadedModule[40]=C:\WINDOWS\System32\kernel.appcore.dll
LoadedModule[41]=C:\WINDOWS\System32\cryptsp.dll
LoadedModule[42]=C:\Program Files\obs-studio\bin\64bit\obs.dll
LoadedModule[43]=C:\WINDOWS\SYSTEM32\MSVCP140.dll
LoadedModule[44]=C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll
LoadedModule[45]=C:\WINDOWS\System32\PSAPI.DLL
LoadedModule[46]=C:\WINDOWS\System32\OLEAUT32.dll
LoadedModule[47]=C:\WINDOWS\SYSTEM32\Secur32.dll
LoadedModule[48]=C:\Program Files\obs-studio\bin\64bit\libsrt.dll
LoadedModule[49]=C:\Program Files\obs-studio\bin\64bit\zlib.dll
LoadedModule[50]=C:\Program Files\obs-studio\bin\64bit\libopus-0.dll
LoadedModule[51]=C:\Program Files\obs-studio\bin\64bit\libvorbisenc-2.dll
LoadedModule[52]=C:\Program Files\obs-studio\bin\64bit\libvorbis-0.dll
LoadedModule[53]=C:\Program Files\obs-studio\bin\64bit\libvpx-1.dll
LoadedModule[54]=C:\Program Files\obs-studio\bin\64bit\swresample-3.dll
LoadedModule[55]=C:\Program Files\obs-studio\bin\64bit\libx264-157.dll
LoadedModule[56]=C:\WINDOWS\SYSTEM32\UxTheme.dll
LoadedModule[57]=C:\WINDOWS\SYSTEM32\dwmapi.dll
LoadedModule[58]=C:\Program Files\obs-studio\bin\64bit\libGLESv2.dll
LoadedModule[59]=C:\WINDOWS\SYSTEM32\MPR.dll
LoadedModule[60]=C:\WINDOWS\SYSTEM32\NETAPI32.dll
LoadedModule[61]=C:\WINDOWS\SYSTEM32\USERENV.dll
LoadedModule[62]=C:\WINDOWS\SYSTEM32\VERSION.dll
LoadedModule[63]=C:\WINDOWS\SYSTEM32\WINMM.dll
LoadedModule[64]=C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll
LoadedModule[65]=C:\Program Files\obs-studio\bin\64bit\w32-pthreads.dll
LoadedModule[66]=C:\Program Files\obs-studio\bin\64bit\swscale-5.dll
LoadedModule[67]=C:\Program Files\obs-studio\bin\64bit\libmbedcrypto.dll
LoadedModule[68]=C:\WINDOWS\SYSTEM32\WSOCK32.dll
LoadedModule[69]=C:\Program Files\obs-studio\bin\64bit\libogg-0.dll
LoadedModule[70]=C:\WINDOWS\SYSTEM32\d3d9.dll
LoadedModule[71]=C:\WINDOWS\SYSTEM32\winmmbase.dll
LoadedModule[72]=C:\WINDOWS\SYSTEM32\NETUTILS.DLL
LoadedModule[73]=C:\WINDOWS\SYSTEM32\SSPICLI.DLL
LoadedModule[74]=C:\WINDOWS\SYSTEM32\dxcore.dll
LoadedModule[75]=C:\WINDOWS\SYSTEM32\SRVCLI.DLL
LoadedModule[76]=C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
LoadedModule[77]=C:\WINDOWS\System32\IMM32.DLL
LoadedModule[78]=C:\WINDOWS\system32\rsaenh.dll
LoadedModule[79]=C:\WINDOWS\system32\mswsock.dll
LoadedModule[80]=C:\Program Files\obs-studio\bin\64bit\platforms\qwindows.dll
LoadedModule[81]=C:\Program Files\obs-studio\bin\64bit\styles\qwindowsvistastyle.dll
LoadedModule[82]=C:\Program Files\obs-studio\bin\64bit\imageformats\qsvg.dll
LoadedModule[83]=C:\WINDOWS\System32\clbcatq.dll
LoadedModule[84]=C:\WINDOWS\System32\MMDevApi.dll
LoadedModule[85]=C:\WINDOWS\System32\DEVOBJ.dll
LoadedModule[86]=C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
LoadedModule[87]=C:\WINDOWS\SYSTEM32\wintypes.dll
LoadedModule[88]=C:\Windows\System32\Windows.UI.dll
LoadedModule[89]=C:\Windows\System32\InputHost.dll
LoadedModule[90]=C:\Windows\System32\TextInputFramework.dll
LoadedModule[91]=C:\Windows\System32\CoreMessaging.dll
LoadedModule[92]=C:\Windows\System32\CoreUIComponents.dll
LoadedModule[93]=C:\Windows\System32\PROPSYS.dll
LoadedModule[94]=C:\WINDOWS\SYSTEM32\ntmarta.dll
LoadedModule[95]=C:\WINDOWS\SYSTEM32\wscapi.dll
LoadedModule[96]=C:\WINDOWS\SYSTEM32\urlmon.dll
LoadedModule[97]=C:\WINDOWS\SYSTEM32\iertutil.dll
LoadedModule[98]=C:\Program Files\obs-studio\bin\64bit\iconengines\qsvgicon.dll
LoadedModule[99]=C:\WINDOWS\system32\dwrite.dll
LoadedModule[100]=C:\Program Files\obs-studio\bin\64bit\libobs-d3d11.dll
LoadedModule[101]=C:\WINDOWS\SYSTEM32\dxgi.dll
LoadedModule[102]=C:\WINDOWS\SYSTEM32\d3d11.dll
LoadedModule[103]=C:\WINDOWS\SYSTEM32\D3DCompiler_47.dll
LoadedModule[104]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispwi.inf_amd64_831f16429d598544\nvldumdx.dll
LoadedModule[105]=C:\WINDOWS\SYSTEM32\cryptnet.dll
LoadedModule[106]=C:\WINDOWS\System32\WINTRUST.DLL
LoadedModule[107]=C:\WINDOWS\System32\imagehlp.dll
LoadedModule[108]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispwi.inf_amd64_831f16429d598544\nvwgf2umx.dll
LoadedModule[109]=C:\Program Files\obs-studio\bin\64bit\libobs-winrt.dll
LoadedModule[110]=C:\Program Files\obs-studio\obs-plugins\64bit\chrome_elf.dll
LoadedModule[111]=C:\Program Files\obs-studio\obs-plugins\64bit\coreaudio-encoder.dll
LoadedModule[112]=C:\Program Files\Common Files\Apple\Apple Application Support\CoreAudioToolbox.dll
LoadedModule[113]=C:\Program Files\Common Files\Apple\Apple Application Support\CoreFoundation.dll
LoadedModule[114]=C:\Program Files\Common Files\Apple\Apple Application Support\libdispatch.dll
LoadedModule[115]=C:\WINDOWS\SYSTEM32\DSOUND.dll
LoadedModule[116]=C:\Program Files\Common Files\Apple\Apple Application Support\ASL.dll
LoadedModule[117]=C:\Program Files\Common Files\Apple\Apple Application Support\objc.dll
LoadedModule[118]=C:\WINDOWS\SYSTEM32\MSVCR100.dll
LoadedModule[119]=C:\Program Files\Common Files\Apple\Apple Application Support\libicuin.dll
LoadedModule[120]=C:\Program Files\Common Files\Apple\Apple Application Support\libicuuc.dll
LoadedModule[121]=C:\WINDOWS\SYSTEM32\MSVCP100.dll
LoadedModule[122]=C:\Program Files\Common Files\Apple\Apple Application Support\icudt55.dll
LoadedModule[123]=C:\Program Files\obs-studio\obs-plugins\64bit\decklink-ouput-ui.dll
LoadedModule[124]=C:\Program Files\obs-studio\obs-plugins\64bit\dvd-screensaver.dll
LoadedModule[125]=C:\Program Files\obs-studio\obs-plugins\64bit\enc-amf.dll
LoadedModule[126]=C:\Program Files\obs-studio\obs-plugins\64bit\frontend-tools.dll
LoadedModule[127]=C:\Program Files\obs-studio\bin\64bit\obs-scripting.dll
LoadedModule[128]=C:\Program Files\obs-studio\bin\64bit\lua51.dll
LoadedModule[129]=C:\Program Files\obs-studio\obs-plugins\64bit\image-source.dll
LoadedModule[130]=C:\Program Files\obs-studio\obs-plugins\64bit\libcef.dll
LoadedModule[131]=C:\WINDOWS\System32\COMDLG32.dll
LoadedModule[132]=C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.18362.1139_none_73b3ffb6d815397f\COMCTL32.dll
LoadedModule[133]=C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
LoadedModule[134]=C:\WINDOWS\SYSTEM32\OLEACC.dll
LoadedModule[135]=C:\WINDOWS\SYSTEM32\WTSAPI32.dll
LoadedModule[136]=C:\WINDOWS\SYSTEM32\UIAutomationCore.DLL
LoadedModule[137]=C:\WINDOWS\SYSTEM32\HID.DLL
LoadedModule[138]=C:\WINDOWS\SYSTEM32\CRYPTUI.dll
LoadedModule[139]=C:\WINDOWS\SYSTEM32\dbghelp.dll
LoadedModule[140]=C:\WINDOWS\SYSTEM32\credui.dll
LoadedModule[141]=C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
LoadedModule[142]=C:\WINDOWS\SYSTEM32\USP10.dll
LoadedModule[143]=C:\WINDOWS\SYSTEM32\WINHTTP.dll
LoadedModule[144]=C:\WINDOWS\SYSTEM32\dxva2.dll
LoadedModule[145]=C:\WINDOWS\SYSTEM32\ncrypt.dll
LoadedModule[146]=C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
LoadedModule[147]=C:\WINDOWS\System32\NSI.dll
LoadedModule[148]=C:\WINDOWS\SYSTEM32\NTASN1.dll
LoadedModule[149]=C:\WINDOWS\SYSTEM32\WKSCLI.DLL
LoadedModule[150]=C:\WINDOWS\SYSTEM32\SAMCLI.DLL
LoadedModule[151]=C:\Program Files\obs-studio\obs-plugins\64bit\libEGL.dll
LoadedModule[152]=C:\Program Files\obs-studio\obs-plugins\64bit\libGLESv2.dll
LoadedModule[153]=C:\WINDOWS\System32\SETUPAPI.dll
LoadedModule[154]=C:\Program Files\obs-studio\obs-plugins\64bit\logi_obs_plugin_x64.dll
LoadedModule[155]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-browser.dll
LoadedModule[156]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-ffmpeg.dll
LoadedModule[157]=C:\Program Files\obs-studio\bin\64bit\avdevice-58.dll
LoadedModule[158]=C:\WINDOWS\SYSTEM32\AVICAP32.dll
LoadedModule[159]=C:\Program Files\obs-studio\bin\64bit\avfilter-7.dll
LoadedModule[160]=C:\WINDOWS\SYSTEM32\MSVFW32.dll
LoadedModule[161]=C:\WINDOWS\SYSTEM32\nvEncodeAPI64.dll
LoadedModule[162]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-filters.dll
LoadedModule[163]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-ndi.dll
LoadedModule[164]=C:\Program Files\NewTek\NewTek NDI 3.8 Runtime\v3\Processing.NDI.Lib.x64.dll
LoadedModule[165]=C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
LoadedModule[166]=C:\WINDOWS\SYSTEM32\DNSAPI.dll
LoadedModule[167]=C:\Program Files\NewTek\NewTek NDI 3.8 Tools\HX Driver\x64\Processing.NDI.Plugins.IPCam.x64.dll
LoadedModule[168]=C:\Program Files\NewTek\NewTek NDI 3.8 Tools\HX Driver\x64\avutil-ndi-56.dll
LoadedModule[169]=C:\Program Files\NewTek\NewTek NDI 3.8 Tools\HX Driver\x64\avformat-ndi-58.dll
LoadedModule[170]=C:\Program Files\NewTek\NewTek NDI 3.8 Tools\HX Driver\x64\avcodec-ndi-58.dll
LoadedModule[171]=C:\Program Files\NewTek\NewTek NDI 3.8 Tools\HX Driver\x64\swresample-ndi-3.dll
LoadedModule[172]=C:\WINDOWS\SYSTEM32\MSVCR120.dll
LoadedModule[173]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-outputs.dll
LoadedModule[174]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-qsv11.dll
LoadedModule[175]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispwi.inf_amd64_831f16429d598544\nvd3dumx.dll
LoadedModule[176]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-shaderfilter.dll
LoadedModule[177]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-text.dll
LoadedModule[178]=C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.18362.1139_none_cf66e5b93ef2d494\gdiplus.dll
LoadedModule[179]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-transitions.dll
LoadedModule[180]=C:\WINDOWS\System32\MSCTF.dll
LoadedModule[181]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-virtualoutput.dll
LoadedModule[182]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-vst.dll
LoadedModule[183]=C:\Program Files\obs-studio\obs-plugins\64bit\obs-x264.dll
LoadedModule[184]=C:\Program Files\obs-studio\obs-plugins\64bit\obs_shaderfilter_plus_windows_x64.dll
LoadedModule[185]=C:\Program Files\obs-studio\obs-plugins\64bit\rtmp-services.dll
LoadedModule[186]=C:\Program Files\obs-studio\obs-plugins\64bit\StreamFX.dll
LoadedModule[187]=C:\Windows\System32\rasadhlp.dll
LoadedModule[188]=C:\WINDOWS\SYSTEM32\nvcuda.dll
LoadedModule[189]=C:\WINDOWS\System32\fwpuclnt.dll
LoadedModule[190]=C:\WINDOWS\system32\DriverStore\FileRepository\nv_dispwi.inf_amd64_831f16429d598544\nvcuda64.dll
LoadedModule[191]=C:\WINDOWS\SYSTEM32\nvapi64.dll
LoadedModule[192]=C:\WINDOWS\system32\schannel.DLL
LoadedModule[193]=C:\Program Files\obs-studio\obs-plugins\64bit\text-freetype2.dll
LoadedModule[194]=C:\Program Files\obs-studio\obs-plugins\64bit\vlc-video.dll
LoadedModule[195]=C:\Program Files\VideoLAN\VLC\libvlc.dll
LoadedModule[196]=C:\Program Files\VideoLAN\VLC\libvlccore.dll
LoadedModule[197]=C:\Program Files\obs-studio\obs-plugins\64bit\win-capture.dll
LoadedModule[198]=C:\Program Files\obs-studio\obs-plugins\64bit\win-decklink.dll
LoadedModule[199]=C:\Program Files\Blackmagic Design\Desktop Video\DeckLinkAPI64.dll
LoadedModule[200]=C:\WINDOWS\SYSTEM32\OPENGL32.dll
LoadedModule[201]=C:\WINDOWS\SYSTEM32\GLU32.dll
LoadedModule[202]=C:\WINDOWS\SYSTEM32\atlthunk.dll
LoadedModule[203]=C:\Program Files\obs-studio\obs-plugins\64bit\win-dshow.dll
LoadedModule[204]=C:\Windows\System32\devenum.dll
LoadedModule[205]=C:\WINDOWS\SYSTEM32\msdmo.dll
LoadedModule[206]=C:\Program Files\obs-studio\obs-plugins\64bit\win-mf.dll
LoadedModule[207]=C:\Program Files\obs-studio\obs-plugins\64bit\win-wasapi.dll
LoadedModule[208]=C:\WINDOWS\SYSTEM32\mskeyprotect.dll
LoadedModule[209]=C:\WINDOWS\system32\ncryptsslp.dll
LoadedModule[210]=C:\Program Files\obs-studio\data\obs-scripting\64bit\obslua.dll
LoadedModule[211]=C:\WINDOWS\system32\NLAapi.dll
LoadedModule[212]=C:\WINDOWS\SYSTEM32\gpapi.dll
LoadedModule[213]=C:\WINDOWS\SYSTEM32\WINSTA.dll
LoadedModule[214]=C:\WINDOWS\SYSTEM32\mscms.dll
LoadedModule[215]=C:\WINDOWS\SYSTEM32\ColorAdapterClient.dll
LoadedModule[216]=C:\Windows\System32\twinapi.appcore.dll
LoadedModule[217]=C:\Windows\System32\RMCLIENT.dll
LoadedModule[218]=C:\WINDOWS\system32\twinapi.dll
LoadedModule[219]=C:\Windows\System32\quartz.dll
LoadedModule[220]=C:\Windows\System32\qcap.dll
LoadedModule[221]=C:\Windows\System32\mfksproxy.dll
LoadedModule[222]=C:\Windows\System32\ATL.DLL
LoadedModule[223]=C:\WINDOWS\SYSTEM32\resourcepolicyclient.dll
LoadedModule[224]=C:\Windows\System32\MFPlat.DLL
LoadedModule[225]=C:\Windows\System32\RTWorkQ.DLL
LoadedModule[226]=C:\Windows\System32\MFSENSORGROUP.dll
LoadedModule[227]=C:\Windows\System32\ksproxy.ax
LoadedModule[228]=C:\Windows\System32\ksuser.dll
LoadedModule[229]=C:\WINDOWS\SYSTEM32\policymanager.dll
LoadedModule[230]=C:\Windows\System32\msvcp110_win.dll
LoadedModule[231]=C:\Windows\System32\vidcap.ax
LoadedModule[232]=C:\Windows\System32\kswdmcap.ax
LoadedModule[233]=C:\Windows\System32\MFC42.dll
LoadedModule[234]=C:\Program Files\Blackmagic Design\Desktop Video\DeckLinkAvStreamPlugIn64.ax
LoadedModule[235]=C:\Program Files\Blackmagic Design\Desktop Video\DeckLink64.dll
LoadedModule[236]=C:\Program Files\obs-studio\bin\64bit\obs-virtualsource.dll
LoadedModule[237]=C:\Program Files\obs-studio\data\obs-plugins\win-dshow\obs-virtualcam-module64.dll
LoadedModule[238]=C:\WINDOWS\SYSTEM32\WindowsCodecs.dll
LoadedModule[239]=C:\Windows\System32\CapabilityAccessManagerClient.dll
LoadedModule[240]=C:\WINDOWS\system32\dataexchange.dll
LoadedModule[241]=C:\WINDOWS\system32\dcomp.dll
LoadedModule[242]=C:\WINDOWS\system32\directmanipulation.dll
State[0].Key=Transport.DoneStage1
State[0].Value=1
OsInfo[0].Key=vermaj
OsInfo[0].Value=10
OsInfo[1].Key=vermin
OsInfo[1].Value=0
OsInfo[2].Key=verbld
OsInfo[2].Value=18363
OsInfo[3].Key=ubr
OsInfo[3].Value=1139
OsInfo[4].Key=versp
OsInfo[4].Value=0
OsInfo[5].Key=arch
OsInfo[5].Value=9
OsInfo[6].Key=lcid
OsInfo[6].Value=1033
OsInfo[7].Key=geoid
OsInfo[7].Value=244
OsInfo[8].Key=sku
OsInfo[8].Value=48
OsInfo[9].Key=domain
OsInfo[9].Value=0
OsInfo[10].Key=prodsuite
OsInfo[10].Value=256
OsInfo[11].Key=ntprodtype
OsInfo[11].Value=1
OsInfo[12].Key=platid
OsInfo[12].Value=10
OsInfo[13].Key=sr
OsInfo[13].Value=0
OsInfo[14].Key=tmsi
OsInfo[14].Value=255213
OsInfo[15].Key=osinsty
OsInfo[15].Value=1
OsInfo[16].Key=iever
OsInfo[16].Value=11.1139.18362.0-11.0.210
OsInfo[17].Key=portos
OsInfo[17].Value=0
OsInfo[18].Key=ram
OsInfo[18].Value=32430
OsInfo[19].Key=svolsz
OsInfo[19].Value=930
OsInfo[20].Key=wimbt
OsInfo[20].Value=0
OsInfo[21].Key=blddt
OsInfo[21].Value=190318
OsInfo[22].Key=bldtm
OsInfo[22].Value=1202
OsInfo[23].Key=bldbrch
OsInfo[23].Value=19h1_release
OsInfo[24].Key=bldchk
OsInfo[24].Value=0
OsInfo[25].Key=wpvermaj
OsInfo[25].Value=0
OsInfo[26].Key=wpvermin
OsInfo[26].Value=0
OsInfo[27].Key=wpbuildmaj
OsInfo[27].Value=0
OsInfo[28].Key=wpbuildmin
OsInfo[28].Value=0
OsInfo[29].Key=osver
OsInfo[29].Value=10.0.18362.1139.amd64fre.19h1_release.190318-1202
OsInfo[30].Key=buildflightid
OsInfo[30].Value=F0D3CCB9-6371-48A0-AE2E-8679485A4EE3.1
OsInfo[31].Key=edition
OsInfo[31].Value=Professional
OsInfo[32].Key=ring
OsInfo[32].Value=Retail
OsInfo[33].Key=expid
OsInfo[33].Value=RS:5E33
OsInfo[34].Key=containerid
OsInfo[35].Key=containertype
OsInfo[36].Key=edu
OsInfo[36].Value=0
FriendlyEventName=Stopped responding and was closed
ConsentKey=AppHangXProcB1
AppName=OBS Studio
AppPath=C:\Program Files\obs-studio\bin\64bit\obs64.exe
ReportDescription=A problem caused this program to stop interacting with Windows.
NsPartner=windows
NsGroup=windows8
ApplicationIdentity=C2BF032ACAA01A33098A9750F7D3E219
MetadataHash=348329564
Fenrirthviti commented 4 years ago

Can you grab a crash dump when the process is hung?

https://obsproject.com/forum/resources/598/

cowboy commented 4 years ago

Ok, sent via discord!

As I mentioned earlier, I've only been able to repro this when there's a display to the left or top of the one I'm capturing. My testing hasn't been exhaustive, but that's one thing that jumped out at me. And nothing crashes when I'm not selecting / deselecting / moving the source. I can run OBS with the scene selected without issues.

So, I created the scene, and got it all set up with my external display moved in display settings, then I moved the display back, and am using the scene without issues. But if I unlock the source and start selecting it, 💥

notr1ch commented 4 years ago

This seems to be a bug triggered by the addition of the source toolbar. When clicking on the preview, OBS locks the scenes mutex to find the selected source, then calls the selected signal on it. The source toolbar has a "selected" handler in order to update the toolbar, which queries the selected source properties. The duplicator source locks the graphics mutex in its properties in order to enumerate displays. Lock order: scenes -> graphics

Meanwhile, the renderer thread is running along, locks the graphics mutex to start processing a new frame, then locks the scenes mutex to enumerate sources to render. Lock order: graphics -> scenes

Result: deadlock. One suggested fix would be to fire the selected signal on the source outside of the scene enumeration loop. Reproducing is made easier by running OBS at high FPS (at 240 FPS I got a deadlock within ~10 clicks).

Stacks:

# RetAddr           : Args to Child                                                           : Call Site
00 00007ffd`4cc31e93 : 000001cc`a7a508d0 00000080`e4cf92a0 00000000`00000001 00007ffc`f27c3b36 : ntdll!NtWaitForSingleObject+0x14
01 00007ffd`4018279f : 000001cc`b7214970 00007ffd`4d6e2596 00000000`00000000 00000000`000006c8 : KERNELBASE!WaitForSingleObjectEx+0x93
02 00007ffd`0fc203c0 : 000001cc`b71fd720 00000080`e4cf94f0 ffffffff`ffffffff 000001cc`a6f5ad40 : w32_pthreads!pthread_mutex_lock+0x9f
03 00007ffd`1d469f49 : 000001cc`a718b720 000001cc`e90302a0 000001cc`a718b720 000001cc`e90302a0 : obs!gs_enter_context+0x80
04 00007ffd`0fc4d9f7 : 000001cc`c10aa4f0 00000080`e4cf94c0 000001cc`92496d00 000001cc`c10aa518 : win_capture!duplicator_capture_properties+0x69
05 00007ff7`4325c320 : 000001cc`c10aa4f0 00000080`e4cf94c0 00000080`e4cf9498 00000080`00000000 : obs!obs_source_properties+0x87
06 00007ff7`4325bb20 : 000001cc`b7027520 000001cc`a6f5ad40 00000080`e4cf9498 00000000`00000020 : obs64!SourceToolbar::SourceToolbar+0x50
07 00007ff7`4325bd28 : 000001cc`c10aa4f0 00007ff7`43291683 00000080`e4cf94c0 000001cc`bb42d840 : obs64!ComboSelectToolbar::ComboSelectToolbar+0x40
08 00007ff7`431390ba : 000001cc`bb42d840 000001cc`c10aa4f0 00000080`e4cf9518 000001cc`b41caf60 : obs64!DisplayCaptureToolbar::DisplayCaptureToolbar+0x48
09 00007ffc`f23933e2 : 00000000`00000001 000001cc`bb42d840 000001cc`e9d8f5e0 000001cc`c10aa4f0 : obs64!OBSBasic::UpdateContextBar+0x43a
0a 00007ffc`f2393ce4 : 000001cd`719501a0 00000000`00000006 00000000`00000006 00000080`e4cf9839 : Qt5Core!QMetaMethod::invoke+0x432
0b 00007ff7`432412a2 : 00000080`e4cf9e2d 000001cc`a6f5ad40 000001cc`a6f5ad40 00007ffd`0fc1db02 : Qt5Core!QMetaObject::invokeMethod+0x594
0c 00007ffd`0fc132b1 : 000001cc`bb24ade0 000001cc`e9d8f5e0 00007ffd`0fc95e50 00000080`e4cf9df8 : obs64!<lambda_83318bb074bba9ae04e9db30a9c28525>::operator()+0x132
0d 00007ffd`0fc79de6 : 000001cc`00000000 00007ffd`0fc95e50 00000080`e4cf9df8 000001cc`bb24ad00 : obs!signal_handler_signal+0xd1
0e 00007ff7`43145e1c : 80000000`00000000 00000000`00000000 000001cc`e9d8f5e0 00007ff7`43145de0 : obs!obs_sceneitem_select+0xa6
0f 00007ffd`0fc7879b : 000001cc`e9d8f5e0 000001cc`bb24ad00 00000000`00000001 00007ff7`43127708 : obs64!select_one+0x3c
10 00007ff7`43222595 : 00000080`e4cfa020 000001cc`b6fde4c0 000001cc`b6fde4c0 000001cc`bb24ad00 : obs!obs_scene_enum_items+0x7b
11 00007ff7`43225071 : 00000000`00000000 000001cc`bb24ad00 000001cc`e9d8f5e0 00000000`00000000 : obs64!OBSBasicPreview::DoSelect+0x65
12 00007ff7`4322648e : 00000080`e4cfae50 443d721e`43c9dcfc 00000000`00000000 0001f33f`f7f802eb : obs64!OBSBasicPreview::ProcessClick+0x31
13 00007ffc`f27ad0c7 : 000001cd`6f1b4b30 00000009`000001d4 443d721e`43c9dcfc 00000000`00000000 : obs64!OBSBasicPreview::mouseReleaseEvent+0x9e
14 00007ffc`f278890d : 000001cc`b41a6810 000001cc`b41a7770 000001cc`b6fde4c0 00000080`e4cfae50 : Qt5Widgets!QWidget::event+0xe7
15 00007ffc`f2786419 : 000001cc`b6fde4c0 00000080`e4cfa490 00000080`e4cfae50 00000000`00000000 : Qt5Widgets!QApplicationPrivate::notify_helper+0x17d
16 00007ffc`f238c2c9 : 000001cc`b6fde4c0 000001cc`b6fde4c0 00000080`e4cfae50 000001cc`b6fdc7a0 : Qt5Widgets!QApplication::notify+0x7f9
17 00007ffc`f2789f53 : 00000000`00000000 00000000`00000000 00007ffc`f2c8a318 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9
18 00007ffc`f27d8689 : 000001cc`b6fde4c0 00000080`e4cfbaf0 00000000`00000001 00000080`e4cfac00 : Qt5Widgets!QApplicationPrivate::sendMouseEvent+0x3f3
19 00007ffc`f27d6348 : 000001cc`b6f91db0 000001cc`b6f91db0 000001cc`b6fde4c0 000001cc`b6fde4c0 : Qt5Widgets!QSizePolicy::QSizePolicy+0x2ee9
1a 00007ffc`f278890d : 000001cc`b41a6810 000001cc`b41a7770 000001cc`b6f91db0 00000080`e4cfbac0 : Qt5Widgets!QSizePolicy::QSizePolicy+0xba8
1b 00007ffc`f2787767 : 000001cc`b41a6810 00000080`e4cfb1f0 00000080`e4cfbac0 000001cc`b41a7770 : Qt5Widgets!QApplicationPrivate::notify_helper+0x17d
1c 00007ffc`f238c2c9 : 00000000`00000000 000001cc`b6f91db0 00000080`e4cfbac0 00007ffc`f2cfef75 : Qt5Widgets!QApplication::notify+0x1b47
1d 00007ffc`f2d20557 : 00000000`00000003 00000000`00000107 00000000`00000003 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9
1e 00007ffc`f2d04d3d : 000001cc`c10aa5d0 00000000`00000000 00000000`00000000 000001cc`00000107 : Qt5Gui!QGuiApplicationPrivate::processMouseEvent+0x6f7
1f 00007ffc`f23d82e6 : 000001cc`b41c7670 00000000`00000000 00007ffc`f3114aa0 00007ffc`f3114aa0 : Qt5Gui!QWindowSystemInterface::sendWindowSystemEvents+0x1cd
20 00007ffd`4e885c1d : 00000000`0028012e 00007ffd`4e892073 00000000`00000001 00000000`00000001 : Qt5Core!QEventDispatcherWin32::processEvents+0xce6
21 00007ffd`4e885612 : 000001cc`b4971040 00007ffc`f23d7ef0 00000000`006708ac 00000080`e4cfc0a8 : user32!UserCallWinProcCheckWow+0x2bd
22 00007ffc`f23d7baf : 00007ffc`f23d7ef0 00000000`00000001 000001cc`b41c7768 000001cc`b41c7700 : user32!DispatchMessageWorker+0x1e2
23 00007ffd`0d5eaa69 : 00007ff7`432ca201 00000000`00000000 000001cc`b41a6800 000001cc`a7a66f00 : Qt5Core!QEventDispatcherWin32::processEvents+0x5af
24 00007ffc`f2387442 : 00000000`00000000 00000080`00000014 000001cc`a7a66f30 000001cc`b419a6c0 : qwindows!qt_plugin_query_metadata+0x1b39
25 00007ffc`f238ab3a : 000001cc`b416d3a0 00000000`00000000 00000080`e4cff7a0 00007ffc`f2487f98 : Qt5Core!QEventLoop::exec+0x1f2
26 00007ff7`4310772a : 00007ff7`43383d74 00000080`e4cff6e0 00000080`e4cff7a0 000001cc`b41a28c0 : Qt5Core!QCoreApplication::exec+0x15a
27 00007ff7`43109855 : 00000000`00000000 000001cc`b41753a0 000001cc`00000000 000001cc`b419eb80 : obs64!run_program+0x7ca
28 00007ff7`432929b4 : 00000000`00000000 00000000`00000000 00000000`00000000 000001cc`b419b450 : obs64!main+0x5e5
29 00007ff7`432921ea : 00000000`00000001 00000000`00000000 00000000`00000000 00000000`00000000 : obs64!WinMain+0x154
2a 00007ffd`4ec67c24 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : obs64!__scrt_common_main_seh+0x106
2b 00007ffd`4faccea1 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
2c 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21

  26  Id: 3a38.2ea0 Suspend: 0 Teb: 00000080`e4b17000 Unfrozen
 # RetAddr           : Args to Child                                                           : Call Site
00 00007ffd`4cc31e93 : 000001cc`bb409ae0 00007ffd`40183aaf 00000000`00000000 00007ffd`4fab35a0 : ntdll!NtWaitForSingleObject+0x14
01 00007ffd`4018282f : 000001cc`bb409ae0 00007ffd`0fc1e1cb 000001cc`00000000 00000000`000093b4 : KERNELBASE!WaitForSingleObjectEx+0x93
02 00007ffd`0fc7875c : 000001cc`b41caf60 000001cc`bb24ad00 3f800000`00000000 00000000`00000000 : w32_pthreads!pthread_mutex_lock+0x12f
03 00007ff7`43222862 : 000001cc`b41caf60 00000080`e574f5a0 000001cc`b41caf60 00007ffd`0fc21b28 : obs!obs_scene_enum_items+0x3c
04 00007ff7`43130df6 : 000001cc`a74239a0 000001cc`a74239a0 000001cc`b41caf60 00000080`e574f6e0 : obs64!OBSBasicPreview::DrawOverflow+0x152
05 00007ffd`0fc75df1 : 000001cc`00000626 00000000`00000626 00000000`00000626 00000000`00000364 : obs64!OBSBasic::RenderMain+0x126
06 00007ffd`0fc7e3eb : 00000000`00000000 00000000`00000000 00000080`e574f7c0 00000080`e574f7c0 : obs!render_display+0x171
07 00007ffd`0fc7e1db : 000001cc`b71db7e0 00000000`00000000 00000000`00000000 00000000`00000000 : obs!obs_graphics_thread_loop+0x1db
08 00007ffd`401858ea : 000001cc`b7516300 000001cc`b7516300 00000000`00000000 00000000`00000000 : obs!obs_graphics_thread+0x11b
09 00007ffd`4d6f10b2 : 00000000`00000000 000001cc`c10c4c80 00000000`00000000 00000000`00000000 : w32_pthreads!ptw32_threadStart+0x8a
0a 00007ffd`4ec67c24 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42
0b 00007ffd`4faccea1 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
0c 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21
cowboy commented 4 years ago

Is there any short-term workaround (other than what I'm already doing, which seems to work), or do I need to wait for a fix? Also, does this affect other things than Display Capture sources?

WizardCM commented 4 years ago

You can hide the Source Toolbar using the View menu.

notr1ch commented 4 years ago

I don't believe any other sources would lock the graphics mutex in their properties callback, so it likely only affects the display capture. There does not appear to be a workaround, even when the source toolbar is hidden, the properties are still updated so that it is up to date if it is made visible again.

cowboy commented 4 years ago

You can hide the Source Toolbar using the View menu.

That was the first thing I tried, and it didn't help.

cowboy commented 4 years ago

I don't believe any other sources would lock the graphics mutex in their properties callback, so it likely only affects the display capture. There does not appear to be a workaround, even when the source toolbar is hidden, the properties are still updated so that it is up to date if it is made visible again.

Ok, thanks for the answer. I just won't touch the source!