Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when evaluating linking objects query #6915

Closed
cmelchior opened this issue Aug 22, 2023 · 1 comment · Fixed by #6918
Closed

Crash when evaluating linking objects query #6915

cmelchior opened this issue Aug 22, 2023 · 1 comment · Fixed by #6918
Assignees

Comments

@cmelchior
Copy link
Contributor

I was testing the bug fixes to linking queries in the Java SDK, and encountered a native SEG_FAULT:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  Build fingerprint: 'google/sdk_gphone64_arm64/emu64a:14/UPB3.230519.006/10229193:user/release-keys'
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  Revision: '0'
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  ABI: 'arm64'
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  Timestamp: 2023-08-22 08:56:43.531748926+0200
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  Process uptime: 3s
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  Cmdline: io.realm.test
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  pid: 21163, tid: 21185, name: roidJUnitRunner  >>> io.realm.test <<<
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  uid: 10191
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x0  0000000000000000  x1  00000000000052c1  x2  0000000000000006  x3  0000007699d28cf0
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x4  6c6b6064712e6075  x5  6c6b6064712e6075  x6  6c6b6064712e6075  x7  7f7f7f7f7f7f7f7f
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x8  00000000000000f0  x9  00000079a80380a0  x10 0000000000000001  x11 00000079a807dfd8
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x12 0000000000007631  x13 0000000000000128  x14 0000007699d27ba0  x15 00000b2af2a5cd90
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x16 00000079a80e2d08  x17 00000079a80bfe50  x18 000000769969c000  x19 00000000000052ab
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x20 00000000000052c1  x21 00000000ffffffff  x22 000000768ce4a6e6  x23 0000000000000002
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x24 0000007699d29f60  x25 00000079a52066e8  x26 0000007699d29fb0  x27 00000079a5206e88
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      x28 0000007699d29e30  x29 0000007699d28d70
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A      lr  00000079a806f938  sp  0000007699d28cd0  pc  00000079a806f964  pst 0000000000001000
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  234 total frames
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A  backtrace:
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #00 pc 0000000000059964  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 584bea18de667f24c490a5df46125bc8)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #01 pc 00000000010a06f8  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (please_report_this_issue_in_github_realm_realm_core_v_13_17_2+4) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #02 pc 00000000010a08f8  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::util::terminate_internal(std::__ndk1::basic_stringstream<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >&)+136) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #03 pc 00000000010a084c  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::util::terminate_with_info(char const*, char const*, long, char const*, std::initializer_list<realm::util::Printable>&&)+264) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #04 pc 00000000008973b0  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (void realm::util::terminate_with_info<long&>(char const*, int, char const*, char const*, long&)+108) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.984 21212-21212 DEBUG                   pid-21212                            A        #05 pc 000000000089727c  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::to_ref(long)+92) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #06 pc 0000000000fc94ac  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::LinkCount::evaluate(unsigned long, realm::ValueBase&)+404) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #07 pc 0000000000bcdca8  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Compare<realm::NotEqual>::find_first(unsigned long, unsigned long) const+272) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #08 pc 0000000000fbf454  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::ExpressionNode::find_first_local(unsigned long, unsigned long)+48) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #09 pc 0000000000fbc2b0  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::ParentNode::find_all_local(unsigned long, unsigned long)+72) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #10 pc 0000000000fbc040  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::ParentNode::aggregate_local(realm::QueryStateBase*, unsigned long, unsigned long, unsigned long, realm::ArrayPayload*)+112) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #11 pc 0000000000e00000  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Query::aggregate_internal(realm::ParentNode*, realm::QueryStateBase*, unsigned long, unsigned long, realm::ArrayPayload*) const+144) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #12 pc 0000000000e05dec  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Query::do_count(unsigned long) const::$_4::operator()(realm::Cluster const*) const+120) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #13 pc 0000000000e05d4c  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::util::FunctionRef<realm::IteratorControl (realm::Cluster const*)>::FunctionRef<realm::Query::do_count(unsigned long) const::$_4&>(realm::Query::do_count(unsigned long) const::$_4&)::'lambda'(void*, realm::Cluster const*)::operator()(void*, realm::Cluster const*) const+52) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #14 pc 0000000000e05d08  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::util::FunctionRef<realm::IteratorControl (realm::Cluster const*)>::FunctionRef<realm::Query::do_count(unsigned long) const::$_4&>(realm::Query::do_count(unsigned long) const::$_4&)::'lambda'(void*, realm::Cluster const*)::__invoke(void*, realm::Cluster const*)+24) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #15 pc 0000000000ec105c  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::util::FunctionRef<realm::IteratorControl (realm::Cluster const*)>::operator()(realm::Cluster const*) const+60) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #16 pc 0000000000ec1eb8  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::ClusterTree::traverse(realm::util::FunctionRef<realm::IteratorControl (realm::Cluster const*)>) const+76) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #17 pc 0000000000e015dc  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Table::traverse_clusters(realm::util::FunctionRef<realm::IteratorControl (realm::Cluster const*)>) const+48) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #18 pc 0000000000e024d0  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Query::do_count(unsigned long) const+928) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #19 pc 0000000000e02cec  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Query::count(realm::DescriptorOrdering const&) const+220) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #20 pc 00000000009d3860  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Results::do_size()+180) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #21 pc 00000000009d8084  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (realm::Results::size()+44) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #22 pc 000000000090b83c  /data/app/~~2ASjkHZ0uckBP8yCyNG1wQ==/io.realm.test-y3vCw6VCEtz_N-kASnuB8Q==/lib/arm64/librealm-jni.so (Java_io_realm_internal_OsResults_nativeSize+40) (BuildId: 2d5ed27195e71b1625699cf7e4ef55c89fd6b371)
2023-08-22 08:56:43.985 21212-21212 DEBUG                   pid-21212                            A        #23 pc 0000000000366830  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: eea22afbb0173fba38d6bb19cfffc1a5)

It looks like it is only crashing when using an object property through the linking object. It is this Java test:

                case OBJECT:
                    assertEquals(2, realm.where(AllJavaTypesUnsupportedTypes.class).isNotEmpty(AllJavaTypesUnsupportedTypes.FIELD_LO_OBJECT + "." + AllJavaTypesUnsupportedTypes.FIELD_OBJECT).count());
                    break;

AllJavaTypesUnsupportedTypes.FIELD_LO_OBJECT is a LinkingObjects collection and AllJavaTypesUnsupportedTypes.FIELD_OBJECT is an object reference.

@jedelbo jedelbo self-assigned this Aug 23, 2023
@cmelchior
Copy link
Contributor Author

cmelchior commented Aug 23, 2023

It is this query that is crashing: @links.AllJavaTypesUnsupportedTypes.fieldObject.fieldObject.@count != 0

On this dataset. fieldId is a integer primary key field.

        AllJavaTypesUnsupportedTypes obj1 = new AllJavaTypesUnsupportedTypes();
        obj1.setFieldId(1);
        obj1.setFieldObject(obj1);
        realm.copyToRealm(obj1);

        AllJavaTypesUnsupportedTypes obj2 = new AllJavaTypesUnsupportedTypes();
        obj2.setFieldId(2);
        obj2.setFieldObject(obj2);
        realm.copyToRealmOrUpdate(obj2);

        AllJavaTypesUnsupportedTypes obj3 = new AllJavaTypesUnsupportedTypes();
        obj3.setFieldId(3);
        obj3.setFieldObject(null);
        realm.copyToRealm(obj3);

All 3 objects are required to trigger the crash, creating any 2 of them doesn't crash.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants