Vector35 / Vector35/binaryninja-api

"Close and Reopen" results in Multiple Open Windows on Same BNDB, Preventing Saving

Open
#3,884 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Database Component: UI Effort: Low Impact: Low
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 3.3.4048-dev
  • OS: Windows
  • OS Version: 10
  • CPU Architecture: x64

Bug Description:
When "Close and Reopen" or "Update" cause BN to reopen active windows spawned from the same view (e.g. 'Split View' -> Drag into new Window), each window is reopened in a separate, unrelated process. This causes file contention when trying to save, and unless the user is aware of the underlying issue, it causes confusion around things like 'Sync Groups' not being synchronized even though both windows show themselves being sync'd.

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Open a file for analysis
  2. Cause a view to split
  3. Drag one view into a new Window
  4. Execute Close and Reopen
  5. Once respawned, make a change in one of the windows
  6. Attempt to save and observe the file contention

Expected Behavior:
Multiple views spawned from the same BN instance would reopen under the same process, maintaining cross-view synchronizations, and changes from one would reflect in the other. Alternatively, just reopen one instance and lose extraneous views.

Screenshots:
If applicable, please add screenshots here to help explain your problem.

Additional Information:
Not a particular nuisance, since the resolution is to just close one process without saving, but if the user didn't catch on soon enough and worked in both views they might end up losing some volume of work.

https://binaryninja.slack.com/archives/C0CV88A83/p1675892840609979

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

Reproduce on Windows 10 with Binary Ninja 3.3.4048-dev using the listed split-view, new-window, and Close and Reopen steps. Inspect how reopened windows are assigned to processes; done means related views share a process and no longer cause save contention or lose synchronization.

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.