murraycu / android-galaxyzoo

This Android app lets you classify Galaxy Zoo subjects. It is available in the Google Play Store: https://play.google.com/store/apps/details?id=com.murrayc.galaxyzoo.app . Try beta versions early here: https://play.google.com/apps/testing/com.murrayc.galaxyzoo.app . See also the iPhone app for Galaxy Zoo: https://github.com/murraycu/ios-galaxyzoo/
GNU General Public License v3.0
11 stars 13 forks source link

SyncAdapter: CursorWindowAllocationException #17

Open murraycu opened 9 years ago

murraycu commented 9 years ago

There has been one crash report with this (deobfuscated) backtrace, in version 1.40 on Android 3.2:

android.database.CursorWindowAllocationException: Cursor Window allocation of 4096 kb failed. # Open Cursors=241 (# cursors opened by this proc=241)
at android.database.CursorWindow.printDebugMsgIfError(CursorWindow.java:72)
at android.database.CursorWindow.<init>(CursorWindow.java:64)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:445)
at android.content.ContentResolver.query(ContentResolver.java:304)
at com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter.void doRegularTasks()(Unknown Source)
                                                     void requestMoreItemsAsync(int)
                                                     void removeItem(java.lang.String)
                                                     boolean doUploadSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
                                                     void onQueryTaskFinished(java.util.List)
                                                     void onUploadTaskFinished(boolean,java.lang.String)
                                                     void access$000(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,java.util.List)
                                                     boolean access$102(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,boolean)
                                                     boolean access$200(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
                                                     android.os.Handler access$300(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter)
                                                     void access$400(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,boolean,java.lang.String)
at com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter.void doRegularTasks()(Unknown Source)
                                                     void requestMoreItemsAsync(int)
                                                     void removeItem(java.lang.String)
                                                     boolean doUploadSync(java.lang.String,java.lang.String,java.lang.String,java.lang.String)
                                                     void onQueryTaskFinished(java.util.List)
                                                     void onUploadTaskFinished(boolean,java.lang.String)
                                                     void access$000(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,java.util.List)
                                                     boolean access$102(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,boolean)
                                                     boolean access$200(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
                                                     android.os.Handler access$300(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter)
                                                     void access$400(com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter,boolean,java.lang.String)
at com.murrayc.galaxyzoo.app.syncadapter.SyncAdapter$UploadTask.void run()(Unknown Source)
at java.lang.Thread.run(Thread.java:1028)

This seems to be happening somewhere in SyncAdapter.doRegularTasks(). It suggests a leaked Cursor, but I can't find any there that are not closed: https://github.com/murraycu/android-galaxyzoo/blob/master/app/src/main/java/com/murrayc/galaxyzoo/app/syncadapter/SyncAdapter.java