[RELEASE] Texture Cache Maintenance utility
(2014-07-13, 13:10)Milhouse Wrote:
(2014-07-13, 12:48)gargamon Wrote: Interestingly enough, after my last test I decided to clean up the textures db and ran the "Xd" and "R" commands and then the browser icon magically appeared.

Are you sure the code checks if there is an actual file in the cache or only if the db says there is one?

The db is king. The caching code looks only at the db for a few reasons: 1) performance - hitting the filesystem would be very slow (plus, for remote users, there is no JSON API for that), 2) it's basically the same approach used by XBMC, and 3) the db is supposed to be correct!

However we do know from time to time that the db lies, which is when problems start - and that's why the Xd/R options exist to help recover from these problems and synchronise the db (Textures13.db) and filesystem (Thumbnails) once more.

Having a file in the Thumbnails folder that isn't referenced by the db - fixed by R - isn't generally a problem. When XBMC tries to display the artwork and fails to find a row in the db it will create a new db row and then overwrite the existing Thumbnails file. At worst it wastes a little file space but shouldn't ever result in any visual/display issues.

However a row in the db with no underlying Thumbnails file is a different matter entirely. In this case XBMC will find the row in the db, then look in the filesystem but fail to find the file, the net result being that no artwork is displayed (you'll see only the standard placeholders).

In theory XBMC should log an error when it can't find the file but as you've seen that doesn't always happen so it can be a very perplexing problem. The only way for XBMC to create the missing file is for the offending db row to be removed. Fortunately "Xd" will do this automatically.

Anyway, glad you got it sorted.


I was thinking about this again. It seems to me that when you're doing the "C" option, you really want to overwrite whatever is there, whether it's nothing, a corrupted file, or who knows what. Wouldn't that imply that you no longer trust the database and want to rewrite that row anyway? I know it would be slower than now, but the added functionality of being able to do "C tvshows some_show_name" is much more versatile than doing "Xd"on a particular row when you may want to do 20 or more rows. Maybe a new command could handle this.
Reply


Messages In This Thread
Crash on Gotham on OS X - by desepticon - 2014-05-29, 17:57
RE: [RELEASE] Texture Cache Maintenance utility - by gargamon - 2014-07-22, 11:17
Cleaning - by AleisterHH - 2018-05-28, 22:03
RE: Cleaning - by Milhouse - 2018-05-28, 22:16
qax genre not updated - by Just-Me_A-User - 2018-06-12, 22:06
RE: qax genre not updated - by Milhouse - 2018-06-12, 23:40
Logout Mark Read Team Forum Stats Members Help
[RELEASE] Texture Cache Maintenance utility17