Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing 7z archive (with multiple roms) results in: EXDEV: cross-device link not permitted #1479

Open
JosVerheij opened this issue Mar 10, 2025 · 0 comments
Labels
potential-bug A potential issue that needs confirmation and/or triage

Comments

@JosVerheij
Copy link

Paste the command

igir move extract test --dat "Atari - Atari Lynx (LNX) (Parent-Clone) (20241112-103004).dat" --input "./test7z/" "./lynx/" --output "./lynx/" --dir-dat-name -vvv

Describe the bug

extract on 7z file (either with move or copy) results in EXDEV: cross-device link not permitted:

 EXDEV: cross-device link not permitted, rename '/tmp/igir/20250310-110529/7z/6GygSw/Atari Lynx/4 Homebrew/SiIas Adventure (PD) KK & Altair         
2019.lnx' -> 'lynx/Atari - Atari Lynx (LNX)/Silas Adventure (World) (Aftermarket) (Unl).lnx.1cr9k1j'              

Error applies to apparently all matched roms.

After completing the igir command, no files are present in the output directory.

Expected behavior

Files within 7z archive should be extracted (to cache dir) and (after that) moved (or copied) to the output directory.

Debug logs

[11:05:30.052] TRACE: Parsing CLI arguments: move extract test --dat "Atari - Atari Lynx (LNX) (Parent-Clone) (20241112-103004).dat" --input ./test7z/ ./lynx/ 
--output ./lynx/ --dir-dat-name -vvv                                                                                                                           
[11:05:30.054] TRACE: Parsed CLI options: {"_":["move","extract","test"],"input":["./test7z/","./lynx/"],"inputExclude":[],"inputChecksumQuick":false,"inputChe
cksumMin":"CRC32","inputChecksumArchives":"auto","dat":["Atari - Atari Lynx (LNX) (Parent-Clone) (20241112-103004).dat"],"datExclude":[],"datNameRegex":"","dat
NameRegexExclude":"","datDescriptionRegex":"","datDescriptionRegexExclude":"","datCombine":false,"datIgnoreParentClone":false,"patch":[],"patchExclude":[],"out
put":"./lynx/","dirMirror":false,"dirDatName":true,"dirDatDescription":false,"dirLetter":false,"dirLetterCount":1,"dirLetterLimit":0,"dirLetterGroup":false,"di
rGameSubdir":"multiple","fixExtension":"auto","overwrite":false,"overwriteInvalid":false,"cleanExclude":[],"cleanDryRun":false,"zipExclude":"","zipDatName":fal
se,"symlink":false,"symlinkRelative":false,"header":"","mergeRoms":"fullnonmerged","excludeDisks":false,"allowExcessSets":false,"allowIncompleteSets":false,"fi
lterRegex":"","filterRegexExclude":"","filterLanguage":[],"filterRegion":[],"noBios":false,"onlyBios":false,"noDevice":false,"onlyDevice":false,"noUnlicensed":false,"onlyUnlicensed":false,"onlyRetail":false,"noDebug":false,"onlyDebug":false,"noDemo":false,"onlyDemo":false,"noBeta":false,"onlyBeta":false,"noSample":false,"onlySample":false,"noPrototype":false,"onlyPrototype":false,"noProgram":false,"onlyProgram":false,"noAftermarket":false,"onlyAftermarket":false,"noHomebrew":false,"onlyHomebrew":false,"noUnverified":false,"onlyUnverified":false,"noBad":false,"onlyBad":false,"single":false,"preferGameRegex":"","preferRomRegex":"","preferVerified":false,"preferGood":false,"preferLanguage":[],"preferRegion":[],"preferRetail":false,"preferParent":false,"reportOutput":"./igir_%YYYY-%MM-%DD
T%HH:%mm:%ss.csv","datThreads":3,"readerThreads":8,"writerThreads":4,"writeRetry":2,"tempDir":"/tmp/igir/20250310-110529","disableCache":false,"verbose":3,"hel
p":false,"d":["Atari - Atari Lynx (LNX) (Parent-Clone) (20241112-103004).dat"],"i":["./test7z/","./lynx/"],"o":"./lynx/","dir-dat-name":true,"D":true,"v":3,"in
put-checksum-min":"CRC32","input-checksum-archives":"auto","dir-letter-count":1,"dir-game-subdir":"multiple","fix-extension":"auto","merge-roms":"fullnonmerged
","report-output":"./igir_%YYYY-%MM-%DDT%HH:%mm:%ss.csv","dat-threads":3,"reader-threads":8,"writer-threads":4,"write-retry":2,"$0":"igir"}
...
[11:09:53.806] ERROR: CandidateWriter: Atari - Atari Lynx (LNX): Silas Adventure (World) (Aftermarket) (Unl): failed to extract file 'test7z/@Atari Lynx       
2021-03-17.7z|Atari Lynx/4 Homebrew/SiIas Adventure (PD) KK & Altair 2019.lnx' → 'lynx/Atari - Atari Lynx (LNX)/Silas Adventure (World) (Aftermarket)          
(Unl).lnx': EXDEV: cross-device link not permitted, rename '/tmp/igir/20250310-110529/7z/6GygSw/Atari Lynx/4 Homebrew/SiIas Adventure (PD) KK & Altair         
2019.lnx' -> 'lynx/Atari - Atari Lynx (LNX)/Silas Adventure (World) (Aftermarket) (Unl).lnx.1cr9k1j'                                                           
[11:09:53.806] INFO:  CandidateWriter: Atari - Atari Lynx (LNX): Silly Blaster (World) (Aftermarket) (Unl): extracting file 'test7z/@Atari Lynx                
2021-03-17.7z|Atari Lynx/4 Homebrew/Silly Blaster (PD) Fadest 2019.lnx' (256.1KB) → 'lynx/Atari - Atari Lynx (LNX)/Silly Blaster (World) (Aftermarket)         
(Unl).lnx'                                                                                                                                                     
[11:09:53.810] TRACE: CandidateWriter: Atari - Atari Lynx (LNX): Silas Adventure (World) (Aftermarket) (Unl) (parent): done writing 1 candidate
...

DAT(s) used

No-Intro Atari Lynx (LNX)

igir version

v3.1.0

Node.js version

v22.13.1

Operating system

Almalinux 9.5

Additional context

Trace logs do not provide much helpful info to me. It appears the extracted file is renamed to another directory, which does not work when the output dir is on another file system. My /tmp and output directory are indeed not on the same filesystem.

I'd expect that igir expects /tmp to be on another file system, so unless this is a new bug, it might have something to do with my system configuration. If so, I'm not sure what's happening under the hood to debug this further.

@JosVerheij JosVerheij added the potential-bug A potential issue that needs confirmation and/or triage label Mar 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
potential-bug A potential issue that needs confirmation and/or triage
Projects
None yet
Development

No branches or pull requests

1 participant