ludusavi icon indicating copy to clipboard operation
ludusavi copied to clipboard

Stuck at Games: 47427/48178

Open jamyzswitch opened this issue 1 year ago • 11 comments

Ludusavi version

v0.26.0

Operating system

Windows

Installation method

Standalone

Description

When i launch with task backup --force. The windows stuck at Games : 47427/48178 and and time runnning. The task never finish

Logs

[2024-11-19T11:03:21.581Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.582Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.688Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.688Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.688Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.688Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.689Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.690Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.690Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.690Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.690Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.691Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.691Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.691Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.691Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.692Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.692Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.692Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.693Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.693Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.693Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.693Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.694Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.694Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:21.694Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 2, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }
[2024-11-19T11:03:22.431Z] WARN [ludusavi::prelude] failed to walk: None | Error { depth: 1, inner: Io { path: None, err: Os { code: 5, kind: PermissionDenied, message: "Accès refusé." } } }

jamyzswitch avatar Nov 19 '24 10:11 jamyzswitch

Hi! I can't reproduce this on my system, so there may be an issue with the data for a specific game that I don't have. Some questions for you:

  • Re: "The task never finish" - how long have you tried waiting for it? (10 minutes, 1 hour, etc)
  • Could you please share your configuration file? %APPDATA%/ludusavi/config.yaml
  • Have you played Microsoft Flight Simulator? I know some users have reported it taking quite a while to scan that one: https://github.com/mtkennerly/ludusavi/issues/375 , https://github.com/mtkennerly/ludusavi/issues/243

mtkennerly avatar Nov 19 '24 13:11 mtkennerly

Thanks @mtkennerly Now i have various errors. when i try : ludusavi.exe backup --force I have this on ludusavi_rCURRENT.log [2024-11-19T13:31:16.355Z] ERROR [ludusavi::scan] Failed to prepare backup target: StrictPath { raw: "Z:\\PC\\Saves\\Ludusavi", basis: None } | Error { kind: Uncategorized, message: "failed to create whole tree" } And close the cmd terminal. ludusavi_rCURRENT.log config.zip And yes my son play sometimes Microsoft Flight Simulator but i desactivated. I convert config.yaml to zip file because i cant upload it Z:\ is a network path (\192.168.1.111\Games)

jamyzswitch avatar Nov 19 '24 13:11 jamyzswitch

I edit the path with \\192.168.1.111\Games\PC\Saves\Ludusavi and task works again. Now i wait how many times i have the window terminal......

jamyzswitch avatar Nov 19 '24 13:11 jamyzswitch

@mtkennerly 10 minutes and the window still running Games: 47427/48178. I try waiting 10 minutes more.

jamyzswitch avatar Nov 19 '24 13:11 jamyzswitch

@mtkennerly 10 minutes and the window still running Games: 47427/48178. I close terminal windows.

jamyzswitch avatar Nov 19 '24 14:11 jamyzswitch

Thanks for the extra detail :) Could you please try this test?

  • Open Command Prompt
  • Run: set RUST_LOG=ludusavi=trace
  • Run: ludusavi.exe backup --force
  • When it gets stuck, go ahead and close the terminal
  • Send me a copy of any .log files in %APPDATA%/ludusavi

The trace log level will generate a lot of logging, which may slow down the scan. But whenever it gets stuck, the log file should indicate which specific game it was in the middle of scanning.

mtkennerly avatar Nov 19 '24 16:11 mtkennerly

Thanks!

You have a custom game with no name that's set to back up the entire D:\ drive and E:\Games. That's the one it's taking a long time to process.

What's the total file size and file count of those two paths? I imagine it's quite large 😅

mtkennerly avatar Nov 19 '24 19:11 mtkennerly

Thanks!

You have a custom game with no name that's set to back up the entire D:\ drive and E:\Games. That's the one it's taking a long time to process.

What's the total file size and file count of those two paths? I imagine it's quite large 😅

The D drive is 2TB, exclusively for games. And E:\Games is also on a 2TB drive that contains games. I need to wait more 20 minutes ?

jamyzswitch avatar Nov 19 '24 19:11 jamyzswitch

Right now, Ludusavi can't handle a single game entry being so large. It's optimized for scanning many smaller game entries in parallel, rather than a single extremely large entry. If you could make separate entries for each of the games, it would perform better, but I understand that may be a hassle to set up. For wholesale "back up this entire drive, including any game installations, not just the save data", I'd recommend using a different backup program for now.

Also, it's not directly related to this issue, but you should give the custom entry a name that's not blank. Even if it finished scanning quickly, I think the reporting would not work correctly. I'll add some better error handling in the next release when the name is blank.

mtkennerly avatar Nov 19 '24 19:11 mtkennerly

Ok. I wait for another release to test. Thanks you !

jamyzswitch avatar Nov 19 '24 20:11 jamyzswitch