Crash of Silence during database update - Could not allocate CursorWindow
Created by: Massedil
Bug description
On this morning, after receiving a SMS, when opening Silence a database upgrade has occurred but crashed Silence.
Impossible to reopen the app.
I had to delete Silence data and restore a backup.
And no database upgrade done after restore.
What was this database upgrade ?
How to reproduce
Don't know.
Device info
- Device: Samsung Galaxy S3 LTE GT-i9305
- Android version: 7.1.2 LOS
- Silence version: 0.15.12 (F-Droid)
Link to debug log
03-26 08:04:20.642 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 17 lines
03-26 08:04:20.680 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 3 lines
03-26 08:04:20.829 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 4 lines
03-26 08:04:23.764 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 213 lines
03-26 08:04:23.986 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 2 lines
03-26 08:04:27.298 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 3 lines
03-26 08:04:43.186 I/chatty (29122): uid=10147(org.smssecure.smssecure) expire 527 lines
03-26 08:04:43.628 W/DatabaseFactory(29122): Updated body: null and part_count: 1
[...]
03-26 08:04:43.687 W/DatabaseFactory(29122): Updated body: null and part_count: 1
03-26 08:04:43.688 E/CursorWindow(29122): Could not allocate CursorWindow '/data/user/0/org.smssecure.smssecure/databases/messages.db' of size 2097152 due to error -12.
03-26 08:04:43.690 E/AndroidRuntime(29122): FATAL EXCEPTION: AsyncTask #2
03-26 08:04:43.690 E/AndroidRuntime(29122): Process: org.smssecure.smssecure, PID: 29122
03-26 08:04:43.690 E/AndroidRuntime(29122): java.lang.RuntimeException: An error occurred while executing doInBackground()
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.os.AsyncTask$3.done(AsyncTask.java:325)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.lang.Thread.run(Thread.java:761)
03-26 08:04:43.690 E/AndroidRuntime(29122): Caused by: android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=444 (# cursors opened by this proc=444)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.CursorWindow.<init>(CursorWindow.java:108)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:138)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:219)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.database.AbstractCursor.moveToNext(AbstractCursor.java:268)
03-26 08:04:43.690 E/AndroidRuntime(29122): at org.smssecure.smssecure.database.DatabaseFactory.onApplicationLevelUpgrade(DatabaseFactory.java:371)
03-26 08:04:43.690 E/AndroidRuntime(29122): at org.smssecure.smssecure.DatabaseUpgradeActivity$DatabaseUpgradeTask.doInBackground(DatabaseUpgradeActivity.java:161)
03-26 08:04:43.690 E/AndroidRuntime(29122): at org.smssecure.smssecure.DatabaseUpgradeActivity$DatabaseUpgradeTask.doInBackground(DatabaseUpgradeActivity.java:143)
03-26 08:04:43.690 E/AndroidRuntime(29122): at android.os.AsyncTask$2.call(AsyncTask.java:305)
03-26 08:04:43.690 E/AndroidRuntime(29122): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-26 08:04:43.690 E/AndroidRuntime(29122): ... 4 more