NavCache: only remove if the file exists.
Otherwise we block trying to re-create the cache, which is dumb. This showed up as Sentry issue: https://sentry.io/organizations/flightgear/issues/1875854826 Will back-port to 2020.2 once verified.
This commit is contained in:
parent
1fd5502e9b
commit
4402d7b81d
1 changed files with 5 additions and 6 deletions
|
@ -1212,14 +1212,13 @@ NavDataCache::NavDataCache()
|
||||||
os << "navdata_" << versionParts[0] << "_" << versionParts[1] << ".cache";
|
os << "navdata_" << versionParts[0] << "_" << versionParts[1] << ".cache";
|
||||||
}
|
}
|
||||||
|
|
||||||
homePath.append(os.str());
|
|
||||||
|
|
||||||
// permit additional DB connections from the same process
|
// permit additional DB connections from the same process
|
||||||
sqlite3_config(SQLITE_CONFIG_MULTITHREAD);
|
sqlite3_config(SQLITE_CONFIG_MULTITHREAD);
|
||||||
|
|
||||||
for (int t=0; t < MAX_TRIES; ++t) {
|
for (int t=0; t < MAX_TRIES; ++t) {
|
||||||
|
SGPath cachePath = homePath / os.str();
|
||||||
try {
|
try {
|
||||||
d.reset(new NavDataCachePrivate(homePath, this));
|
d.reset(new NavDataCachePrivate(cachePath, this));
|
||||||
d->init();
|
d->init();
|
||||||
//d->checkCacheFile();
|
//d->checkCacheFile();
|
||||||
// reached this point with no exception, success
|
// reached this point with no exception, success
|
||||||
|
@ -1239,14 +1238,14 @@ NavDataCache::NavDataCache()
|
||||||
d.reset();
|
d.reset();
|
||||||
|
|
||||||
// only wipe the existing if not readonly
|
// only wipe the existing if not readonly
|
||||||
if (!fgGetBool("/sim/fghome-readonly", false)) {
|
if (cachePath.exists() && !fgGetBool("/sim/fghome-readonly", false)) {
|
||||||
bool ok = homePath.remove();
|
bool ok = cachePath.remove();
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
SG_LOG(SG_NAVCACHE, SG_ALERT, "NavCache: failed to remove previous cache file");
|
SG_LOG(SG_NAVCACHE, SG_ALERT, "NavCache: failed to remove previous cache file");
|
||||||
flightgear::fatalMessageBoxThenExit(
|
flightgear::fatalMessageBoxThenExit(
|
||||||
"Unable to re-create navigation cache",
|
"Unable to re-create navigation cache",
|
||||||
"Attempting to remove the old cache failed.",
|
"Attempting to remove the old cache failed.",
|
||||||
"Location: " + homePath.utf8Str());
|
"Location: " + cachePath.utf8Str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue