Add debug check to NavCache
reporting suspicious filesystem timestamp changes.
This commit is contained in:
parent
1c6643d7ac
commit
a74c99ec51
1 changed files with 10 additions and 3 deletions
|
@ -1271,16 +1271,23 @@ bool NavDataCache::isCachedFileModified(const SGPath& path) const
|
||||||
sqlite_bind_temp_stdstring(d->statCacheCheck, 1, path.str());
|
sqlite_bind_temp_stdstring(d->statCacheCheck, 1, path.str());
|
||||||
if (d->execSelect(d->statCacheCheck)) {
|
if (d->execSelect(d->statCacheCheck)) {
|
||||||
time_t modtime = sqlite3_column_int64(d->statCacheCheck, 0);
|
time_t modtime = sqlite3_column_int64(d->statCacheCheck, 0);
|
||||||
bool modified = (modtime != path.modTime());
|
time_t delta = std::labs(modtime - path.modTime());
|
||||||
if (modified)
|
if (delta != 0)
|
||||||
{
|
{
|
||||||
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: rebuild required for " << path << ". Timestamps: " << modtime << " != " << path.modTime());
|
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: rebuild required for " << path << ". Timestamps: " << modtime << " != " << path.modTime());
|
||||||
|
if (delta < 30)
|
||||||
|
{
|
||||||
|
// File system time stamp has slightly changed. It's unlikely that the user has managed to change a file, start fgfs,
|
||||||
|
// and then changed file again within x seconds - so it's suspicious...
|
||||||
|
SG_LOG(SG_NAVCACHE, SG_ALERT, "NavCache: suspicious file timestamp change. Please report this to FlightGear. "
|
||||||
|
<< "Delta: " << delta << ", Timestamps: " << modtime << ", " << path.modTime() << ", path: " << path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: no rebuild required for " << path);
|
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: no rebuild required for " << path);
|
||||||
}
|
}
|
||||||
return (modtime != path.modTime());
|
return (delta != 0);
|
||||||
} else {
|
} else {
|
||||||
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: initial build required for " << path);
|
SG_LOG(SG_NAVCACHE, SG_DEBUG, "NavCache: initial build required for " << path);
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Add table
Reference in a new issue