agrosner / DBFlow

A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
MIT License
4.87k stars 598 forks source link

The app process is gone Because Cursor window allocation of 2048 kb failed #1700

Closed bingxueai123456 closed 3 years ago

bingxueai123456 commented 4 years ago

ISSUE_TEMPLATE

DBFlow Version: 4.2.4

Bug or Feature Request: Cursor window allocation of 2048 kb failed. : android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed.

at android.database.CursorWindow.(CursorWindow.java:108)

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 android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)

at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)

at android.database.CursorWrapper.moveToFirst(CursorWrapper.java:65)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.convertToData(ListModelLoader.java:74)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.convertToData(ListModelLoader.java:15)

at com.raizlabs.android.dbflow.sql.queriable.ModelLoader.load(ModelLoader.java:72)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:61)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:15)

at com.raizlabs.android.dbflow.sql.queriable.ModelLoader.load(ModelLoader.java:60)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:44)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:15)

at com.raizlabs.android.dbflow.sql.queriable.ModelLoader.load(ModelLoader.java:53)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:37)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:15)

at com.raizlabs.android.dbflow.sql.queriable.ModelLoader.load(ModelLoader.java:36)

at com.raizlabs.android.dbflow.sql.queriable.ListModelLoader.load(ListModelLoader.java:25)

at com.raizlabs.android.dbflow.sql.language.BaseModelQueriable.queryList(BaseModelQueriable.java:61)

at com.raizlabs.android.dbflow.sql.language.Where.queryList(Where.java:236)

at com.benyunn.mc.activity.service.BroadCastLongTimeWorkService.processTimingTask(BroadCastLongTimeWorkService.java:141)

at com.benyunn.mc.activity.service.BroadCastLongTimeWorkService.access$200(BroadCastLongTimeWorkService.java:48)

at com.benyunn.mc.activity.service.BroadCastLongTimeWorkService$4.run(BroadCastLongTimeWorkService.java:121)

at com.benyunn.mc.utils.MyExecutorService$4.run(MyExecutorService.java:151)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

at java.lang.Thread.run(Thread.java:818)
Description: SQLite.select() .from(TimingTask.class) .where(TimingTask_Table.isActive.notEq(false)) .queryList(); I process code every minute. Sometimes it will cause this error, and then the app process will disappear,Help me,please

agrosner commented 3 years ago

I am not sure the cause but a search on stack overflow seems to point to too many open cursors at once.