2019-08-24 11:15 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003462Spring engineGeneralpublic2017-04-26 12:25
Reporteruser744 
Assigned ToKloot 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionunable to reproduce 
Product Version92.0 
Target VersionFixed in Version 
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 lua Errors
Attached Files

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

-Notes

~0009784

Kloot (developer)

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.

~0009785

Kloot (developer)

not reproducable on Linux, so blame MS
+Notes

-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
+Issue History