obsproject / obsproject/obs-browser
Crash while exiting just after switching to a profile with service browser dock(s) visible
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 904
- Forks
- 267
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 2
Description
Operating System Info
Other
Other OS
Arch Linux
OBS Studio Version
Other
OBS Studio Version (Other)
27.1.3 (harder to trigger), 27.2 RC4 with CEF 87, 95 MediaHandler, 97 and 98
OBS Studio Log URL
https://cdn.discordapp.com/attachments/925915897368043570/942029869829726278/Valgrind.txt
https://cdn.discordapp.com/attachments/925915897368043570/942029870135922720/GDB.txt
OBS Studio Crash Log URL
No response
Expected Behavior
No crash at all.
Current Behavior
Crash can happen because of CrashOnFdOwnershipViolation().
Steps to Reproduce
Firstly, you need an OBS with two profile, one "empty" and one with a service integration connected and at least one service browser dock visible.
- Run OBS under the "empty" profile
- Switch to the profile with service integration
- Exit while service browser dock(s) are loading
- Your OBS has potentially crashed while CEF was shutting down because of a fd ownership violation.
Anything else we should know?
-
I didn't try to make the crash happen with custom browser docks since dock state is global except with profile with service integrations connected.
-
GDB alone didn't gave a readable stacktrace but Valgrind did so I put the Valgrind output as a log.
-
For CEF 95 MediaHandler I used the one from the Google Drive, hoping to have debug symbols.
-
I didn't try to reproduce it on Windows and macOS, I don't have machine under those OSes.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked Valgrind and GDB logs, focusing on CrashOnFdOwnershipViolation() during CEF shutdown. Reproduce the sequence with an empty profile and a service-integration profile containing visible service browser docks, then exit while the docks load. Done means switching profiles and exiting no longer causes the fd ownership violation or crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100