libretro / libretro/RetroArch

load content keeps 2 files open when playing a networked rom

Open
#19,276 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Is there an existing issue for this?
  • This is a bug in RetroArch frontend
  • I have searched the existing issues
Description

This is a bug that makes using a network filesystem like webdav over android and rsaf much much slower.

Apparently either because of the server, or rsaf or just the nature of open() over a network, keeping two files open at the same time destroys performance

I know this because rsaf says how many files it has open. If I load a game from a playlist, its "1" (or one at a time for cue/bins I suppose) for "load content" of a single file it's "2" and performance is much worse

I think what's happening is that the filebrowser never closes the directory it reads even as the game starts so the game plays in the load content case (which uses the filebrowser) with two files open.

Expected behavior

Rsaf only reporting 1 file open just like it does when a game is loaded from playlists/when you stop using the filebrowser resources used like open files get freed.

Steps to reproduce the bug

Pretty difficult. Have a webdav server in the same WiFi network as a android phone, install rsaf and configure a webdav entry there, load up retroarch and load that directory as a authorized SAF uri, then scan 1 game there in a playlist and compare the performance of loading from load content or the playlist and notice rsaf saying playlist has 1 file open and load content has 2.

Version/Commit

1.22.2 (nightly)

Bisect Results

No response

Present in the nightly version

Yes, this is reproduced in the nightly build

Platform & operating system

android

Affected Cores

all

Environment information

No response

Relevant log output

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

No file or test is named. Start by comparing the playlist and Load Content paths on Android with the described WebDAV/SAF setup, then trace which resources remain open while playback begins. Done means both paths release the filebrowser resources and report one open file during playback.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, c
Domain
frontend, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.