Start a new topic

Cursor window allocation of 2048 kb failed. # Open Cursors=1

We recently moved to the latest version of android SDK 2.9.5 from SDK 2.6.17 and started getting this exception on cursor allocation. This is causing the app to crash every now and then. Can you suggest what could be the issue and how to go about figuring it out. It looks like an issue with Kinvey backend sync. 


java.lang.RuntimeException: An error occured while executing doInBackground()

at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)

Caused by: android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=1 (# cursors opened by this proc=1)

at android.database.CursorWindow.<init>(CursorWindow.java:104)
at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
at com.kinvey.android.offline.OfflineHelper.checkTableExists(OfflineHelper.java:201)
at com.kinvey.android.offline.OfflineHelper.getCollectionTables(OfflineHelper.java:139)
at com.kinvey.android.offline.AbstractSyncService$2.doInBackground(AbstractSyncService.java:135)
at com.kinvey.android.offline.AbstractSyncService$2.doInBackground(AbstractSyncService.java:129)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
... 4 more

android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=1 (# cursors opened by this proc=1)

at android.database.CursorWindow.<init>(CursorWindow.java:104)
at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
at com.kinvey.android.offline.OfflineHelper.checkTableExists(OfflineHelper.java:201)
at com.kinvey.android.offline.OfflineHelper.getCollectionTables(OfflineHelper.java:139)
at com.kinvey.android.offline.AbstractSyncService$2.doInBackground(AbstractSyncService.java:135)
at com.kinvey.android.offline.AbstractSyncService$2.doInBackground(AbstractSyncService.java:129)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Login or Signup to post a comment