View Single Post
Old 07-05-2021, 07:02 AM   #17
Cootey
Absentminded Reader
Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.Cootey ought to be getting tired of karma fortunes by now.
 
Cootey's Avatar
 
Posts: 1,337
Karma: 7440829
Join Date: Apr 2017
Device: Kobo Mini, Libra Colour & Elipsa; Kindle Paperwhite 3 & 4; iOS apps
Quote:
Originally Posted by davidfor View Post
That is expected behaviour when the database on the device is corrupt. When that happens, the database file cannot be updated. When something happens to force a reread of the database, it is basically reading an old version of the database. That means it doesn't have any changes since the last successful write, so no new books or reading status.

The device can run for a while with a corrupt database. Most of what you see displayed when looking for books is from in-memory structures. If the write to the database fails, the device will generally keep working.
Well, *I* know the database was corrupt, but getting Kobo to agree was another matter. They have stopped responding to my emails, and starting today, new notebooks have started to disappear. Four full factory resets later, I thought maybe I had finally got things turned around, but each time some new feature starts to behave erratically. It was never the same corruption.

Quote:
If you are using calibre, it can show an error when getting the list of books. But, the driver only reads a couple of tables, and depending on exactly where the corruption has occurred, it might not see it. You can do a check of the database to see if there are errors using any SQLite database manager. Or my Kobo Utilities plugin has a function to do it.
I didn't realize that was built into your plug-in. I'll try it out. I do recall seeing calibre errors in previous incarnations. The current one works fine with calibre.

…and a check of the database provided the following data:

Spoiler:
Result of running 'PRAGMA integrity_check' on database on the Kobo device:

*** in database main ***
On tree page 16290 cell 0: invalid page number 167772160
On tree page 15961 cell 2: 2nd reference to page 16598
On tree page 46691 cell 2: 2nd reference to page 16539
On tree page 419 cell 3: 2nd reference to page 50752
Page 690 is never used
Page 1049 is never used
Page 1367 is never used
row 1 missing from index sqlite_autoindex_content_1
row 2 missing from index sqlite_autoindex_content_1
row 3 missing from index sqlite_autoindex_content_1
row 4 missing from index sqlite_autoindex_content_1
row 5 missing from index sqlite_autoindex_content_1
row 6 missing from index sqlite_autoindex_content_1
row 7 missing from index sqlite_autoindex_content_1
row 8 missing from index sqlite_autoindex_content_1
row 9 missing from index sqlite_autoindex_content_1
row 10 missing from index sqlite_autoindex_content_1
row 11 missing from index sqlite_autoindex_content_1
row 12 missing from index sqlite_autoindex_content_1
row 13 missing from index sqlite_autoindex_content_1
row 14 missing from index sqlite_autoindex_content_1
row 15 missing from index sqlite_autoindex_content_1
row 16 missing from index sqlite_autoindex_content_1
row 17 missing from index sqlite_autoindex_content_1
row 18 missing from index sqlite_autoindex_content_1
row 19 missing from index sqlite_autoindex_content_1
row 20 missing from index sqlite_autoindex_content_1
row 21 missing from index sqlite_autoindex_content_1
row 22 missing from index sqlite_autoindex_content_1
row 23 missing from index sqlite_autoindex_content_1
row 24 missing from index sqlite_autoindex_content_1
row 25 missing from index sqlite_autoindex_content_1
row 26 missing from index sqlite_autoindex_content_1
row 27 missing from index sqlite_autoindex_content_1
row 28 missing from index sqlite_autoindex_content_1
row 29 missing from index sqlite_autoindex_content_1
row 30 missing from index sqlite_autoindex_content_1
row 31 missing from index sqlite_autoindex_content_1
row 32 missing from index sqlite_autoindex_content_1
row 33 missing from index sqlite_autoindex_content_1
row 34 missing from index sqlite_autoindex_content_1
row 35 missing from index sqlite_autoindex_content_1
row 36 missing from index sqlite_autoindex_content_1
row 37 missing from index sqlite_autoindex_content_1
row 38 missing from index sqlite_autoindex_content_1
row 39 missing from index sqlite_autoindex_content_1
row 40 missing from index sqlite_autoindex_content_1
row 41 missing from index sqlite_autoindex_content_1
row 42 missing from index sqlite_autoindex_content_1
row 43 missing from index sqlite_autoindex_content_1
row 44 missing from index sqlite_autoindex_content_1
row 45 missing from index sqlite_autoindex_content_1
row 46 missing from index sqlite_autoindex_content_1
row 47 missing from index sqlite_autoindex_content_1
row 48 missing from index sqlite_autoindex_content_1
row 49 missing from index sqlite_autoindex_content_1
row 50 missing from index sqlite_autoindex_content_1
row 51 missing from index sqlite_autoindex_content_1
row 52 missing from index sqlite_autoindex_content_1
row 53 missing from index sqlite_autoindex_content_1
row 54 missing from index sqlite_autoindex_content_1
row 55 missing from index sqlite_autoindex_content_1
row 56 missing from index sqlite_autoindex_content_1
row 57 missing from index sqlite_autoindex_content_1
row 58 missing from index sqlite_autoindex_content_1
row 59 missing from index sqlite_autoindex_content_1
row 60 missing from index sqlite_autoindex_content_1
row 61 missing from index sqlite_autoindex_content_1
row 62 missing from index sqlite_autoindex_content_1
row 63 missing from index sqlite_autoindex_content_1
row 64 missing from index sqlite_autoindex_content_1
row 65 missing from index sqlite_autoindex_content_1
row 66 missing from index sqlite_autoindex_content_1
row 67 missing from index sqlite_autoindex_content_1
row 68 missing from index sqlite_autoindex_content_1
row 69 missing from index sqlite_autoindex_content_1
row 70 missing from index sqlite_autoindex_content_1
row 71 missing from index sqlite_autoindex_content_1
row 72 missing from index sqlite_autoindex_content_1
row 73 missing from index sqlite_autoindex_content_1
row 74 missing from index sqlite_autoindex_content_1
row 75 missing from index sqlite_autoindex_content_1
row 76 missing from index sqlite_autoindex_content_1
row 77 missing from index sqlite_autoindex_content_1
row 78 missing from index sqlite_autoindex_content_1
row 79 missing from index sqlite_autoindex_content_1
row 80 missing from index sqlite_autoindex_content_1
row 81 missing from index sqlite_autoindex_content_1
row 82 missing from index sqlite_autoindex_content_1
row 83 missing from index sqlite_autoindex_content_1
row 84 missing from index sqlite_autoindex_content_1
row 85 missing from index sqlite_autoindex_content_1
row 86 missing from index sqlite_autoindex_content_1
row 87 missing from index sqlite_autoindex_content_1
row 88 missing from index sqlite_autoindex_content_1
row 89 missing from index sqlite_autoindex_content_1
row 90 missing from index sqlite_autoindex_content_1
row 91 missing from index sqlite_autoindex_content_1
row 92 missing from index sqlite_autoindex_content_1
row 93 missing from index sqlite_autoindex_content_1


Quote:
As to how the the database gets corrupted, the only way I know is not safely ejecting the device when the database is being updated. There has to be other times as people report problems and swear they always eject safely. There are almost definitely some mistakes, but, there are two may reports for it not to happen at some other time.

Signing out of the Kobo account on the device should fix this as a new database is created. And of course, a factory reset will do that as well.
In this case, considering that I factory reset from the dev menu four times, there was not an instance of me ejecting the device inappropriately, something I don't do. No amount of repairing the account, or logging out then back in, has made these glitches go away. There is a serious issue with my unit. Perhaps a bad memory module? I really can't say.

Quote:
When importing sideloaded books, they should be added in alphabetical order using the file name, which, for me starts with the title. When the books is added to the device, a timestamp is set in the database. For sideloaded books, the same timestamp is used for all books imported in the same batch. The "Recent" sort uses this timestamp or the last read timestamp and it probably sorts by title within these.
Although I often rely on this alphabetization when importing books to be added to a collection, when ALL books are reimported as if they hadn't been imported before, finding a dozen books alphabetized amidst 400+ books is a chore. This is what I was referring to. All books, including previously imported books, were being reimported without regard to that timestamp. However, I no longer have that problem. A full factory reset fixed it. Now I have disappearing journals, something that is frustrating since I drew on those pages and put a lot of effort into them.

FYI, I ran an undeleting program on the Kobo Elipsa when it was mounted on my Desktop, and it found all the missing *.nebo files. The only problem was that they were all 0 bytes large. They never properly saved to the internal memory. Here I thought I finally fixed it, then the glitch moved yet again. This time to an area I hadn't tested in over a week: notebooks. I have requested a new Elipsa pack from Kobo. Things are complicated since the US store showed that it was sold out earlier today.

Thanks for all your feedback.
Cootey is offline   Reply With Quote