Skip to content

State condition failed in table:60 #1072

Open

Description

@asegurpe

Describe the bug
When querying a collection you get the error:
State condition failed in table:60
The problem occurs when the paging limit is greater than 1. When the paging limit is 1 it has no problem.

Basic info (please complete the following information):

  • ObjectBox version: 2.9.1
  • Reproducibility: always on a single computer (database), on other computers (databases) it does not happen
  • Device: Computer
  • OS: Windows 10

To Reproduce
I don't know how reproduce it

Expected behavior
Find results

Code

private List<GenericBox> getPagination(Query<GenericBox> b, ParamsDao params) {
               if (params.getLimit() > 0) {
                              return b.find(params.getIndex(), params.getLimit());
               }
               return b.find();
}

Logs, stack traces

Caused by: java.lang.IllegalStateException: State condition failed in table:60: object
               at io.objectbox.query.Query.nativeFind(Native Method)
               at io.objectbox.query.Query.lambda$find$3(Query.java:230)
               at io.objectbox.BoxStore.callInReadTx(BoxStore.java:897)
               at io.objectbox.BoxStore.callInReadTxWithRetry(BoxStore.java:843)
               at io.objectbox.query.Query.callInReadTx(Query.java:292)
               at io.objectbox.query.Query.find(Query.java:229)

Additional context
We have had to rebuild the entire database to fix the problem, but we are concerned about it happening again.

Activity

  1. ivahnenkoAnna commented on Apr 22, 2022

    @ivahnenkoAnna
    Contributor

    Thanks for the report. We're looking into this and will reply as soon as possible.

  2. asegurpe commented on Apr 22, 2022

    @asegurpe
    Author

    I await with curiosity the resolution of the bug.
    Thank you very much Anna 😀

  3. greenrobot-team commented on Apr 25, 2022

    @greenrobot-team
    Member

    Thanks for the code snippet. We have not found the specific cause, yet, but are tracking this internally and will update this issue once we have more info.

  4. greenrobot commented on May 2, 2022

    @greenrobot
    Member

    Reproducibility: always on a single computer (database), on other computers (databases) it does not happen

    Are any things special for this computer?

    Also, the code seems to be triggered in 32-bit only code. Thus, this PC seems to be running the 32-bit version of the lib. Does that match the actual CPU?

  5. asegurpe commented on May 2, 2022

    @asegurpe
    Author

    No, this computer is not special and the process runs on the 32-bit platform because of other 32-bit dll dependencies.

    So far it has only happened on this computer but we can't be sure that it can't happen on others in the future.

    Thanks.

  6. greenrobot commented on May 2, 2022

    @greenrobot
    Member

    Thanks. Still trying to reproduce this... So far no luck...

    1. Can you give an example on the numbers when this happens? I.e. total query result count, offset, and limit?
    2. Is there also a sort order in the query defined? If so, does it also happen without it?
    3. Do you have conditions on the query? If so, is at least one of the conditions based on an indexed property?
  7. asegurpe commented on May 3, 2022

    @asegurpe
    Author

    Thanks again for your help.

    As I said, it has only happened to us once on a production computer but we cannot share the database due to confidentiality.

    What we have seen is:

    • Is related to sorted queries (by any field and ascending and descending order).
    • If we put a limit, it occurs between 2800 and 3200 records, out of a total of 5000. If the limit is 1, there is no problem.
    • apparently, the stored data are correct and valid and do not have any special characters.
  8. greenrobot-team commented on May 11, 2022

    @greenrobot-team
    Member

    @asegurpe Thanks for these details! The new 3.1.3 release adds additional information to error messages that might help us diagnose this issue.

  9. asegurpe commented on May 12, 2022

    @asegurpe
    Author

    Hi,

    We have upgraded to 3.1.3 as you say and the stacktrace shows a different message:

    Caused by: java.lang.IllegalStateException: State condition failed in visitMatchesOrdered:221: id != lastId
    	at io.objectbox.query.Query.nativeFind(Native Method)
    	at io.objectbox.query.Query.lambda$find$3(Query.java:235)
    	at io.objectbox.BoxStore.callInReadTx(BoxStore.java:936)
    	at io.objectbox.BoxStore.callInReadTxWithRetry(BoxStore.java:882)
    	at io.objectbox.query.Query.callInReadTx(Query.java:297)
    	at io.objectbox.query.Query.find(Query.java:234)
    

    Thanks.

  10. greenrobot commented on May 12, 2022

    @greenrobot
    Member

    Thanks; interestingly it now fails a different location. Which is not exactly expected... Can you confirm that from your side, nothing changed?

  11. asegurpe commented on May 12, 2022

    @asegurpe
    Author

    Yes, it is the same code and the same database.

    Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions