Eduard Boloș
10/16/2024, 11:02 AMwriteToCacheAsynchronously
is left to the default of false
, btw.
The only idea I had about what might be wrong is that something funny is happening to the sqlite journal, but not sure how to validate this, fix, or debug further.
Any ideas of what might be going on? 🙏bod
10/16/2024, 12:07 PMEduard Boloș
10/16/2024, 12:07 PMbod
10/16/2024, 12:10 PMEduard Boloș
10/16/2024, 12:32 PMEduard Boloș
10/16/2024, 12:33 PMbod
10/16/2024, 12:40 PMEduard Boloș
10/16/2024, 12:48 PMapolloExceptionHandler
, and get more info this way. I'll probably be back in a few days, after we gather more info 😄Eduard Boloș
10/16/2024, 12:49 PMbod
10/16/2024, 1:02 PMapolloExceptionHandler
, and get more info
Exactly, that will help!
> do you have an idea already what kind of errors are common
It could be simply a full disk - although I'd expect many apps not working in that case... the user would probably know.
The db could be corrupted in some way.
We've seen SQLiteDatabaseLockedException
in the past, but didn't get to the bottom of it.
We've also seen SQLiteBlobTooBigException
but that was a problem while reading, not writing, so I don't think it fits.
If there's a db corruption, I don't know if much can be done other than clearing the data.Eduard Boloș
10/16/2024, 1:04 PMfred
10/24/2024, 3:21 PMSQLiteBlobTooBigException
you mentioned (the most prominent) or because of a mysterious NullPointerException
, and we also hit the "Unable to read a record from the database" and "Unable to read records from the database" for the same reasons — it seems it's actually only failing on reads and not on writes as we were expectingfred
10/24/2024, 3:21 PMbod
10/24/2024, 3:30 PMbod
10/24/2024, 3:31 PMbod
10/24/2024, 3:35 PMfred
10/24/2024, 4:13 PMbod
10/24/2024, 4:23 PMpublic fun <T : Any> recordsForKeys(key: Collection<String>, mapper: (key: String,
record: String) -> T): Query<T> = RecordsForKeysQuery(key) { cursor ->
mapper(
cursor.getString(0)!!,
cursor.getString(1)!!
)
}
so probably one of the values is null in the db, which is not expected