Quote:
Originally Posted by kaufman
I'm not 100% sure how this works. I have "Sync only from Calibre to CC" set, so I don't see how anything I do on the CC side could invalidate the device cache on the computer. Do changes in the calibre side force CC to send over its metadata again? Do you update based on modified date, or by comparing the two side's metadata?
In any case, I went to sleep last night after doing a sync, and I got up this morning, added a book to my library, and did another sync. I didn't do any metadata change on the Calibre side that would impact 5300 books. Except for a couple of books, I didn't make any metadata changes at all. I might have deleted a dozen or so non-epub metadata files. I just checked to be sure, and I don't have any custom column definitions that change their value automatically based on date or anything like that.
I have plenty of free space on my drive.
|
My apologies. My questions about changing tags etc were giant red herrings for exactly the reasons you mention. Changing in calibre can (should) change the relationship between the contents of the cache and CC's database.
Overnight I had an idea. Do you have more than one library? And do these libraries share content? And if so, did you switch to that other library while connected? The reason to ask: when you switch libraries while connected, calibre goes through the book matching process for the books on the device and changes the cache. I can't see how this would break things, but I thought I would ask.
The only ways I can see that would really break the cache are:
- If two devices with the same unique ID connect to the same library. I don't see a way that this can happen.
- If the cache file is being altered somehow. Again, I don't see why this could happen.
- If there is a problem encoding data to write into the cache file. If this happens then the cache would be cut off at the book with the problem. There would also be a message in calibre's debug log, but you wouldn't ever see that unless you always run in debug mode.
One experiment that is worth trying when you feel like it. Make sure calibre is not running even in the tray, then go to ~/Library/Caches and delete all files of the form wireless_device_{long_string_of_digits}_metadata_c ache.json. Start calibre, then connect your device. It will send all metadata because the cache is empty. Disconnect, quit calibre, then look in that folder. There should be one file wireless_device... , and it should be very long. Restart calibre in debug mode, then connect. CC should send no metadata. Disconnect. The mod time on the file will change. Its length might change slightly.
This experiment will show us if something basic is broken. If everything works as described then we know that calibre and CC are agreeing on the contents of the cache. If CC sends metadata then something has gone wrong, and I hope that calibre's debug log will tell me. Send me that debug log by email.
Thanks for your patience and for your help!