libretro / libretro/RetroArch

No warning/error when updating a core that is currently loaded

Open
#14,336 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

core downloader networking user interface
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

If a core is currently loaded, trying to update it will display a notification saying "✔️ Core installed", just like if it worked properly.

I know I know "why would you update a core if it's currently loaded?", well some cores are glitchy and are still loaded in the background after closing content (Citra, Dolphin and PCSX2 for example), so even if it looks like the core is note loaded anymore the update will silently fail.

Here's an example with Dolphin:

https://user-images.githubusercontent.com/33353403/185895739-ae8873bc-cfc5-4acf-80cf-adf033ed7aa2.mp4

You can see the notification saying that it updated correctly while in reality the .zip is still there because the .dll couldn't be overwritten since the core is still loaded in the background.

Note that atm I only tested this on Windows 10, I will try later on my Linux Mint VM.

Expected behavior

Notification should say that the update failed.

Actual behavior

Notification seems to indicate that everything went fine.

Steps to reproduce the bug
  1. Load a game with any core.
  2. Do not close content and update the core.

or

  1. Load a game with a core that doesn't close properly like Citra, Dolphin or PCSX2.
  2. Close content.
  3. Update the core you were using.
Bisect Results

-

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.10.3 / a96d12e
Environment information
  • OS: Windows 10

Contributor guide

Open the contributing guide

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 reproducing the issue through the core update flow while a core remains loaded, following the steps in the report on Windows 10. Trace where the updater reports success after the core file cannot be overwritten, and make completion distinguish a failed update from a successful one. Verify the notification reports failure when the loaded core blocks replacement.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
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.