Compare with DB when loading library cache (fixes #256)

This commit is contained in:
Alex Ling
2022-01-24 14:18:52 +00:00
parent 750fbbb8fe
commit 77df418390
3 changed files with 33 additions and 8 deletions

View File

@@ -25,20 +25,22 @@ class Library
begin
Compress::Gzip::Reader.open path do |content|
loaded = Library.from_yaml content
# We will have to do a full restart in these cases. Otherwise having
# two instances of the library will cause some weirdness.
if loaded.dir != Config.current.library_path
# We will have to do a full restart in this case. Otherwise having
# two instances of the library will cause some weirdness.
Logger.fatal "Cached library dir #{loaded.dir} does not match " \
"current library dir #{Config.current.library_path}. " \
"Deleting cache"
File.delete path
Logger.fatal "Invalid library cache deleted. Mango needs to " \
"perform a full reset to recover from this. " \
"Pleae restart Mango."
Logger.fatal "Exiting"
exit 1
delete_cache_and_exit path
end
if loaded.title_ids.size > 0 &&
Storage.default.count_titles == 0
Logger.fatal "The library cache is inconsistent with the DB. " \
"Deleting cache"
delete_cache_and_exit path
end
@@default = loaded
Logger.debug "Library cache loaded"
end
Library.default.register_jobs
rescue e