obsproject / obsproject/obs-browser

Crash while exiting just after switching to a profile with service browser dock(s) visible

Open
#353 4 comments 0 reactions 0 assignees View on GitHub

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.

  1. Run OBS under the "empty" profile
  2. Switch to the profile with service integration
  3. Exit while service browser dock(s) are loading
  4. 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.