View Issue Details

IDProjectCategoryView StatusLast Update
0003462Spring engineGeneralpublic2017-04-26 12:25
Reporteruser744Assigned ToKloot  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionunable to reproduce 
Product Version92.0 
Summary0003462: ArchiveCache.lua not updated when mod dependencies are changed
DescriptionWhen a dependency is removed from modinfo.lua, spring still wants to use it.
If that file was deleted, Spring complains about " Incorrect/Missing content"
Steps To ReproduceMake mod that depends on blabla file:
modinfo.lua:
depend = {
"cursors.sdz",
"blabla",
}
Delete blabla file: Spring correctly complains about missing content.

Remove the "blabla" line: Spring will still not load the mod.
Additional InformationDeleting ArchiveCache.lua fixes it and afterwards the entry in ArchiveCache.lua is correctly recreated.
Still potentially annoying for users of modding tools like ToolBox, FeaturePlacer,...

example:
{
            name = "SpringBrickcraft.sdd",
            path = [[C:\Spiele\springcontent\games\]],
            modified = "1357224124",
            checksum = "2784258217",
            archivedata = {
                description = "Brick-Craft FUCK YEAH",
                game = "BrickCraft",
                modtype = 1,
                name = "BrickCraft Brick-Craft S D D dev",
                shortgame = "BC",
                shortname = "BC",
                version = "Brick-Craft S D D dev",
                depend = {
                    "cursors.sdz",
xxx "Spring Features",
                },
            },
        },


xxx = if that line is not in modinfo.lua anymore, it should also not be in ArchiveCache.lua anymore
TagsNo tags attached.
Checked infolog.txt for Errors

Relationships

duplicate of 0005537 resolvedgajop Changing modinfo.lua dependencies doesn't reset cache 

Activities

Kloot

2013-02-13 16:31

developer   ~0009784

Sounds like a Windows filesystem issue.

ArchiveScanner always compares an archive's (for example an .sdd dir) last modification time to the timestamp value in ArchiveCache (if it exists), and if they don't match the archive and its dependency list from mod/mapinfo are read from the archive (instead of from the cache) and the cache will be rewritten --> dead dependencies get cleaned up automatically. Therefore this can only happen if the OS does not update a directory's modification time when a file inside it changes.

Kloot

2013-02-13 16:32

developer   ~0009785

not reproducable on Linux, so blame MS

Issue History

Date Modified Username Field Change
2013-02-13 04:43 user744 New Issue
2013-02-13 16:31 Kloot Note Added: 0009784
2013-02-13 16:32 Kloot Note Added: 0009785
2013-02-13 16:32 Kloot Status new => closed
2013-02-13 16:32 Kloot Assigned To => Kloot
2013-02-13 16:32 Kloot Resolution open => unable to reproduce
2017-04-26 12:25 Kloot Relationship added duplicate of 0005537