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

Server changeset causes "Invalid data type" on Client #4873

Closed
cmelchior opened this issue Aug 25, 2021 · 12 comments · Fixed by #4877
Closed

Server changeset causes "Invalid data type" on Client #4873

cmelchior opened this issue Aug 25, 2021 · 12 comments · Fixed by #4877
Assignees

Comments

@cmelchior
Copy link
Contributor

cmelchior commented Aug 25, 2021

With latest Core 11.3.0, Java is running into a native crash in one of our tests for Client Reset: https://github.com/realm/realm-java/blob/master/realm/realm-library/src/syncIntegrationTest/kotlin/io/realm/SyncSessionTests.kt#L577

/Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/realm-core/src/realm/sync/instructions.hpp:884: [realm-core-11.2.0] Invalid data type

(It says 11.2.0 because I'm using the commit just before the official 11.3.0 release)

The full log is here:

2021-08-25 19:13:38.680 27494-27516/io.realm.test I/TestRunner: started: clientReset_manualTriggerAllowSessionToRestart(io.realm.SyncSessionTests)
2021-08-25 19:13:38.682 27494-27494/io.realm.test I/MonitoringInstr: Activities that are still in CREATED to STOPPED: 0
2021-08-25 19:13:38.684 27494-27516/io.realm.test D/REALM_JAVA: HTTP Request = 
    GET http://127.0.0.1:8888/testapp1
2021-08-25 19:13:38.716 27494-27516/io.realm.test D/REALM_JAVA: Admin HTTP Request = 
    POST http://127.0.0.1:9090/api/admin/v3.0/auth/providers/local-userpass/login
    {"username":"[email protected]","password":"password"}
2021-08-25 19:13:38.743 537-566/system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver
2021-08-25 19:13:38.743 537-566/system_process W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver
2021-08-25 19:13:38.806 27494-27516/io.realm.test D/REALM_JAVA: Admin HTTP Request = 
    GET http://127.0.0.1:9090/api/admin/v3.0/auth/profile
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJiYWFzX2RldmljZV9pZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsImJhYXNfZG9tYWluX2lkIjoiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiZXhwIjoxNjI5OTEzNDE5LCJpYXQiOjE2Mjk5MTE2MTksImlzcyI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNiZiIsInN0aXRjaF9kZXZJZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInN0aXRjaF9kb21haW5JZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInN1YiI6IjYxMjYxNzY1ZTIwYjk4ZTc1Yjk2NjE5MSIsInR5cCI6ImFjY2VzcyJ9.6z7MdvLtjEkCgq1pOinrsdmWP_sNM6EnL5pm5h4PpVg
2021-08-25 19:13:38.824 27494-27516/io.realm.test D/REALM_JAVA: Admin HTTP Request = 
    GET http://127.0.0.1:9090/api/admin/v3.0/groups/61261765e20b98e75b966193/apps
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJiYWFzX2RldmljZV9pZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsImJhYXNfZG9tYWluX2lkIjoiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiZXhwIjoxNjI5OTEzNDE5LCJpYXQiOjE2Mjk5MTE2MTksImlzcyI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNiZiIsInN0aXRjaF9kZXZJZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInN0aXRjaF9kb21haW5JZCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInN1YiI6IjYxMjYxNzY1ZTIwYjk4ZTc1Yjk2NjE5MSIsInR5cCI6ImFjY2VzcyJ9.6z7MdvLtjEkCgq1pOinrsdmWP_sNM6EnL5pm5h4PpVg
2021-08-25 19:13:38.869 27494-27686/io.realm.test D/REALM_JAVA: HTTP Request = 
    GET http://127.0.0.1:9090/api/client/v2.0/app/testapp1-kvvrm/location
2021-08-25 19:13:38.913 27494-27687/io.realm.test D/REALM_JAVA: HTTP Request = 
    POST http://127.0.0.1:9090/api/client/v2.0/app/testapp1-kvvrm/auth/providers/local-userpass/register
    Accept: application/json
    Content-Type: application/json;charset=utf-8
    {"email":"[email protected]","password":"123456"}
2021-08-25 19:13:38.993 27494-27688/io.realm.test D/REALM_JAVA: HTTP Request = 
    POST http://127.0.0.1:9090/api/client/v2.0/app/testapp1-kvvrm/auth/providers/local-userpass/login
    Accept: application/json
    Content-Type: application/json;charset=utf-8
    {"password":"123456","provider":"local-userpass","username":"[email protected]","options":{"device":{"appVersion":"1.0.","appId":"testapp1-kvvrm","platform":"android","platformVersion":"11","sdkVersion":"10.7.2-SNAPSHOT"}}}
2021-08-25 19:13:39.146 27494-27689/io.realm.test D/REALM_JAVA: HTTP Request = 
    GET http://127.0.0.1:9090/api/client/v2.0/auth/profile
    Accept: application/json
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjYxMjYxNzY4ZTIwYjk4ZTc1Yjk2NjFhMyIsInR5cCI6IkpXVCJ9.eyJiYWFzX2RldmljZV9pZCI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNjZCIsImJhYXNfZG9tYWluX2lkIjoiNjEyNjE3NjZlMjBiOThlNzViOTY2MWEyIiwiZXhwIjoxNjI5OTEzNDE5LCJpYXQiOjE2Mjk5MTE2MTksImlzcyI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNjZSIsInN0aXRjaF9kZXZJZCI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNjZCIsInN0aXRjaF9kb21haW5JZCI6IjYxMjYxNzY2ZTIwYjk4ZTc1Yjk2NjFhMiIsInN1YiI6IjYxMjY3YTQzZTIwYjk4ZTc1Yjk2NmNjYiIsInR5cCI6ImFjY2VzcyJ9.jBh6txr6v-02mmdfaXGjewTjZipTeVUCRrDfEB7f1iNGQfS78v2IAkT3l5Vm_g9H8WidjravyVVc-5dCSAdsDK8JtKtqXB0gjglqOdtYb5HOjMyrEHxJLJ5rEGvQd-RasR7kIIPln6e2-IaD_tAJcwdcVquU_F_apWTjdGfDXDeMAHaPCxbhbjIxkFnX2QWacLrqBGgAlNav5lEwHa0BpPQiNRD76W0KbZbmiV25Zp2rJCZ03gvLNwNXVPyRqv8AGANEGoMfuGSRDnVLz7QYOaVPKMWvGr2c96xuIVNkOwizlUY1qxhOJ8RchqDyGzeNdR8U-BY3B6hypHqspl8x6w
    Content-Type: application/json;charset=utf-8
2021-08-25 19:13:39.192 27494-27690/io.realm.test D/REALM_JAVA: Creating session for: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.192 27494-27690/io.realm.test D/REALM_JAVA: First session created. Adding network listener.
2021-08-25 19:13:39.195 27494-27690/io.realm.test D/REALM_SYNC: Realm sync client ([realm-core-11.2.0])
2021-08-25 19:13:39.195 27494-27690/io.realm.test D/REALM_SYNC: Supported protocol versions: 2-3
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Platform: Android Linux 5.4.61-android11-2-00064-g4271ad6e8ade-ab6991359 #1 SMP PREEMPT Mon Nov 23 17:45:44 UTC 2020 x86_64
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Build mode: Debug
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: max_open_files = 256
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: one_connection_per_session = true
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: connect_timeout = 120000 ms
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: connection_linger_time = 30000 ms
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: ping_keepalive_period = 60000 ms
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: pong_keepalive_timeout = 120000 ms
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: fast_reconnect_limit = 60000 ms
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: disable_upload_compaction = false
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: tcp_no_delay = false
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: Config param: disable_sync_to_disk = false
2021-08-25 19:13:39.196 27494-27690/io.realm.test D/REALM_SYNC: User agent string: 'RealmSync/11.2.0 (Android Linux 5.4.61-android11-2-00064-g4271ad6e8ade-ab6991359 #1 SMP PREEMPT Mon Nov 23 17:45:44 UTC 2020 x86_64) RealmJava/10.7.2-SNAPSHOT (generic_x86_64_arm64, sdk_gphone_x86_64_arm64, v30) MongoDB Realm Integration Tests/1.0.'
2021-08-25 19:13:39.196 27494-27691/io.realm.test D/REALM_JNI: SyncClient thread created
2021-08-25 19:13:39.203 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: WebSocket::Websocket()
2021-08-25 19:13:39.203 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Binding '/data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm' to '"default"'
2021-08-25 19:13:39.203 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Activating
2021-08-25 19:13:39.203 27494-27691/io.realm.test I/REALM_SYNC: Connection[1]: Session[1]: client_reset_config = false, Realm exists = true, client reset = false
2021-08-25 19:13:39.204 27494-27691/io.realm.test D/REALM_SYNC: Opening Realm file: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.205 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: client_file_ident = 0, client_file_ident_salt = 0
2021-08-25 19:13:39.205 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 0, reliable_download_progress = false, snapshot version = 1
2021-08-25 19:13:39.205 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Resolving 'localhost:9090'
2021-08-25 19:13:39.208 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Connecting to endpoint '127.0.0.1:9090' (1/1)
2021-08-25 19:13:39.209 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 46, reliable_download_progress = false, snapshot version = 2
2021-08-25 19:13:39.209 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 46, reliable_download_progress = false, snapshot version = 2
2021-08-25 19:13:39.209 27494-27691/io.realm.test I/REALM_SYNC: Connection[1]: Connected to endpoint '127.0.0.1:9090' (from '127.0.0.1:37108')
2021-08-25 19:13:39.209 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: WebSocket::initiate_client_handshake()
2021-08-25 19:13:39.217 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Initiating deactivation
2021-08-25 19:13:39.217 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Deactivation completed
2021-08-25 19:13:39.217 27494-27691/io.realm.test D/REALM_SYNC: Closing Realm file: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.219 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Allowing reconnection in 876 milliseconds
2021-08-25 19:13:39.220 27494-27691/io.realm.test I/REALM_SYNC: Connection[1]: Disconnected
2021-08-25 19:13:39.220 27494-27691/io.realm.test D/REALM_SYNC: Connection[1]: Destroying connection object
2021-08-25 19:13:39.222 27494-27690/io.realm.test D/REALM_JAVA: Removing session for: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.222 27494-27690/io.realm.test D/REALM_JAVA: Last session dropped. Remove network listener.
2021-08-25 19:13:39.228 27494-27690/io.realm.test D/REALM_JAVA: Creating session for: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.229 27494-27690/io.realm.test D/REALM_JAVA: First session created. Adding network listener.
2021-08-25 19:13:39.236 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: WebSocket::Websocket()
2021-08-25 19:13:39.236 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Binding '/data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm' to '"default"'
2021-08-25 19:13:39.236 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Activating
2021-08-25 19:13:39.236 27494-27691/io.realm.test I/REALM_SYNC: Connection[2]: Session[2]: client_reset_config = false, Realm exists = true, client reset = false
2021-08-25 19:13:39.236 27494-27691/io.realm.test D/REALM_SYNC: Opening Realm file: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/61267a43e20b98e75b966ccb/s_default.realm
2021-08-25 19:13:39.238 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: client_file_ident = 0, client_file_ident_salt = 0
2021-08-25 19:13:39.238 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 0, reliable_download_progress = false, snapshot version = 1
2021-08-25 19:13:39.239 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Resolving 'localhost:9090'
2021-08-25 19:13:39.243 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Connecting to endpoint '127.0.0.1:9090' (1/1)
2021-08-25 19:13:39.244 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 46, reliable_download_progress = false, snapshot version = 2
2021-08-25 19:13:39.244 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Progress handler called, downloaded = 0, downloadable(total) = 0, uploaded = 0, uploadable = 46, reliable_download_progress = false, snapshot version = 2
2021-08-25 19:13:39.245 27494-27691/io.realm.test I/REALM_SYNC: Connection[2]: Connected to endpoint '127.0.0.1:9090' (from '127.0.0.1:37110')
2021-08-25 19:13:39.245 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: WebSocket::initiate_client_handshake()
2021-08-25 19:13:39.301 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: WebSocket::handle_http_response_received()
2021-08-25 19:13:39.301 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Negotiated protocol version: 3
2021-08-25 19:13:39.301 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Will emit a ping in 28001 milliseconds
2021-08-25 19:13:39.301 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Sending: BIND(path='"default"', signed_user_token_size=812, need_client_file_ident=1, is_subserver=0)
2021-08-25 19:13:39.314 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Received: IDENT(client_file_ident=97, client_file_ident_salt=1357527029056447773)
2021-08-25 19:13:39.318 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Sending: IDENT(client_file_ident=97, client_file_ident_salt=1357527029056447773, scan_server_version=0, scan_client_version=0, latest_server_version=0, latest_server_version_salt=0)
2021-08-25 19:13:39.318 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Sending: MARK(request_ident=2)
2021-08-25 19:13:39.355 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Received: DOWNLOAD(download_server_version=4, download_client_version=0, latest_server_version=4, latest_server_version_salt=4246471827707004678, upload_client_version=0, upload_server_version=0, downloadable_bytes=0, num_changesets=2, ...)
2021-08-25 19:13:39.357 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Finished changeset indexing (incoming: 2 changeset(s) / 151 instructions, local: 1 changeset(s) / 2 instructions, conflict group(s): 5)
2021-08-25 19:13:39.359 27494-27691/io.realm.test D/REALM_SYNC: Connection[2]: Session[2]: Finished transforming 1 local changesets through 2 incoming changesets (2 vs 151 instructions, in 5 conflict groups)
2021-08-25 19:13:39.363 27494-27691/io.realm.test E/REALM: /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/realm-core/src/realm/sync/instructions.hpp:884: [realm-core-11.2.0] Invalid data type
    <backtrace not supported on this platform>!!! IMPORTANT: Please report this at https://github.com/realm/realm-core/issues/new/choose
2021-08-25 19:13:39.363 27494-27691/io.realm.test A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 27691 (Thread-14), pid 27494 (io.realm.test)
2021-08-25 19:13:39.460 27697-27697/? I/crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
2021-08-25 19:13:39.465 286-286/? I/tombstoned: received crash request for pid 27691
2021-08-25 19:13:39.466 27697-27697/? I/crash_dump64: performing dump of process 27494 (target tid = 27691)
2021-08-25 19:13:39.483 27697-27697/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-08-25 19:13:39.484 27697-27697/? A/DEBUG: Build fingerprint: 'google/sdk_gphone_x86_64_arm64/generic_x86_64_arm64:11/RSR1.201211.001.A1/7054069:userdebug/dev-keys'
2021-08-25 19:13:39.484 27697-27697/? A/DEBUG: Revision: '0'
2021-08-25 19:13:39.484 27697-27697/? A/DEBUG: ABI: 'x86_64'
2021-08-25 19:13:39.485 27697-27697/? A/DEBUG: Timestamp: 2021-08-25 19:13:39+0200
2021-08-25 19:13:39.486 27697-27697/? A/DEBUG: pid: 27494, tid: 27691, name: Thread-14  >>> io.realm.test <<<
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG: uid: 10176
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG: signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG:     rax 0000000000000000  rbx 0000000000006b66  rcx 0000715896d232a8  rdx 0000000000000006
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG:     r8  0000000000000006  r9  0000000000000006  r10 00007155a8119570  r11 0000000000000246
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG:     r12 00007155a811bd68  r13 00007155a811bd88  r14 00007155a8119568  r15 0000000000006c2b
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG:     rdi 0000000000006b66  rsi 0000000000006c2b
2021-08-25 19:13:39.487 27697-27697/? A/DEBUG:     rbp 0000000000006b66  rsp 00007155a8119558  rip 0000715896d232a8
2021-08-25 19:13:39.524 27697-27697/? A/DEBUG: backtrace:
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #00 pc 000000000005a2a8  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+24) (BuildId: 3707c39fc397eeaa328142d90b50a973)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #01 pc 000000000005d212  /apex/com.android.runtime/lib64/bionic/libc.so (abort+194) (BuildId: 3707c39fc397eeaa328142d90b50a973)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #02 pc 0000000001059685  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (please_report_this_issue_in_github_realm_realm_core+5) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #03 pc 0000000001059843  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::terminate_internal(std::__ndk1::basic_stringstream<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >&)+435) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #04 pc 0000000001059954  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::terminate(char const*, char const*, long, std::initializer_list<realm::util::Printable>&&)+244) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #05 pc 0000000000c28ef1  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::sync::get_data_type(realm::sync::instr::Payload::Type)+289) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #06 pc 0000000000c27e44  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::sync::InstructionApplier::operator()(realm::sync::instr::AddColumn const&)+388) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #07 pc 0000000000c2000a  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (decltype(auto) realm::sync::Instruction::visit<realm::sync::InstructionApplier&>(realm::sync::InstructionApplier&) const+314) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #08 pc 0000000000c1fe61  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void realm::sync::InstructionApplier::apply<realm::sync::InstructionApplier>(realm::sync::InstructionApplier&, realm::sync::Changeset const&, realm::util::Logger*)+177) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #09 pc 0000000000c1ab34  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::sync::InstructionApplier::apply(realm::sync::Changeset const&, realm::util::Logger*)+36) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.525 27697-27697/? A/DEBUG:       #10 pc 0000000000c19df1  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientHistoryImpl::integrate_server_changesets(realm::sync::SyncProgress const&, unsigned long const*, realm::sync::Transformer::RemoteChangeset const*, unsigned long, realm::sync::VersionInfo&, realm::sync::ClientReplicationBase::IntegrationError&, realm::util::Logger&, realm::sync::ClientReplicationBase::SyncTransactReporter*)+1809) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #11 pc 0000000000b9b4c7  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Session::integrate_changesets(realm::sync::ClientReplicationBase&, realm::sync::SyncProgress const&, unsigned long, std::__ndk1::vector<realm::sync::Transformer::RemoteChangeset, std::__ndk1::allocator<realm::sync::Transformer::RemoteChangeset> > const&, realm::sync::VersionInfo&, realm::sync::ClientReplicationBase::IntegrationError&)+311) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #12 pc 0000000000b9bc57  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Session::initiate_integrate_changesets(unsigned long, std::__ndk1::vector<realm::sync::Transformer::RemoteChangeset, std::__ndk1::allocator<realm::sync::Transformer::RemoteChangeset> > const&)+167) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #13 pc 0000000000b7bc0c  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so ((anonymous namespace)::SessionImpl::initiate_integrate_changesets(unsigned long, std::__ndk1::vector<realm::sync::Transformer::RemoteChangeset, std::__ndk1::allocator<realm::sync::Transformer::RemoteChangeset> > const&)+140) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #14 pc 0000000000b9a15b  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Session::receive_download_message(realm::sync::SyncProgress const&, unsigned long, std::__ndk1::vector<realm::sync::Transformer::RemoteChangeset, std::__ndk1::allocator<realm::sync::Transformer::RemoteChangeset> > const&)+1691) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #15 pc 0000000000b99a95  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Connection::receive_download_message(unsigned long, realm::sync::SyncProgress const&, unsigned long, std::__ndk1::vector<realm::sync::Transformer::RemoteChangeset, std::__ndk1::allocator<realm::sync::Transformer::RemoteChangeset> > const&)+197) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.526 27697-27697/? A/DEBUG:       #16 pc 0000000000b9621f  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void realm::_impl::ClientProtocol::parse_message_received<realm::_impl::ClientImplBase::Connection>(realm::_impl::ClientImplBase::Connection&, char const*, unsigned long)+5151) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #17 pc 0000000000b8eaeb  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Connection::handle_message_received(char const*, unsigned long)+59) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #18 pc 0000000000b8e9a8  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::Connection::websocket_binary_message_received(char const*, unsigned long)+168) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #19 pc 000000000106aa5c  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so ((anonymous namespace)::WebSocket::frame_reader_loop()+284) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #20 pc 000000000106d91e  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so ((anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)::operator()(std::__ndk1::error_code, unsigned long) const+222) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #21 pc 000000000106d7ff  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (decltype(std::__ndk1::forward<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)&>(fp)(std::__ndk1::forward<std::__ndk1::error_code>(fp0), std::__ndk1::forward<unsigned long>(fp0))) std::__ndk1::__invoke<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)&, std::__ndk1::error_code, unsigned long>((anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)&, std::__ndk1::error_code&&, unsigned long&&)+95) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #22 pc 000000000106d77a  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void std::__ndk1::__invoke_void_return_wrapper<void>::__call<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)&, std::__ndk1::error_code, unsigned long>((anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)&, std::__ndk1::error_code&&, unsigned long&&)+74) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #23 pc 000000000106d72a  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (std::__ndk1::__function::__alloc_func<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long), std::__ndk1::allocator<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)>, void (std::__ndk1::error_code, unsigned long)>::operator()(std::__ndk1::error_code&&, unsigned long&&)+74) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #24 pc 000000000106c6eb  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (std::__ndk1::__function::__func<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long), std::__ndk1::allocator<(anonymous namespace)::WebSocket::frame_reader_loop()::'lambda'(std::__ndk1::error_code, unsigned long)>, void (std::__ndk1::error_code, unsigned long)>::operator()(std::__ndk1::error_code&&, unsigned long&&)+75) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #25 pc 0000000000ba8361  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (std::__ndk1::__function::__value_func<void (std::__ndk1::error_code, unsigned long)>::operator()(std::__ndk1::error_code&&, unsigned long&&) const+113) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #26 pc 0000000000ba82ca  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)>::operator()(std::__ndk1::error_code, unsigned long) const+90) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #27 pc 0000000000ba824b  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void realm::util::network::Service::AsyncOper::do_recycle_and_execute_helper<std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)>, std::__ndk1::error_code, unsigned long>(bool, bool&, std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)>, std::__ndk1::error_code, unsigned long)+139) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.527 27697-27697/? A/DEBUG:       #28 pc 0000000000ba810a  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void realm::util::network::Service::AsyncOper::do_recycle_and_execute<std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)>, std::__ndk1::error_code&, unsigned long&>(bool, std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)>&, std::__ndk1::error_code&, unsigned long&)+186) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #29 pc 0000000000baa728  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::network::Service::BasicStreamOps<realm::util::network::Socket>::BufferedReadOper<std::__ndk1::function<void (std::__ndk1::error_code, unsigned long)> >::recycle_and_execute()+712) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #30 pc 0000000000cea815  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::network::Service::Impl::execute(std::__ndk1::unique_ptr<realm::util::network::Service::AsyncOper, realm::util::network::Service::LendersOperDeleter>&)+21) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #31 pc 0000000000ce6c78  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::network::Service::Impl::run()+360) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #32 pc 0000000000ce6ae5  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::util::network::Service::run()+21) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #33 pc 0000000000b82426  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::ClientImplBase::run()+22) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #34 pc 0000000000b6bb6e  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so ((anonymous namespace)::ClientImpl::run()+78) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.528 27697-27697/? A/DEBUG:       #35 pc 0000000000b6baf5  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::sync::Client::run()+21) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #36 pc 0000000000a02da2  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()::operator()() const+98) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #37 pc 0000000000a02d05  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (decltype(std::__ndk1::forward<realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()>(fp)()) std::__ndk1::__invoke<realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()>(realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()&&)+21) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #38 pc 0000000000a02c82  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void std::__ndk1::__thread_execute<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()>(std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()>&, std::__ndk1::__tuple_indices<>)+34) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #39 pc 0000000000a0266a  /data/app/~~29scv_jzeBxRSFtWPFb8iQ==/io.realm.test-WYNhckT-b3-LKW4ce5mlKw==/lib/x86_64/librealm-jni.so (void* std::__ndk1::__thread_proxy<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct> >, realm::_impl::SyncClient::SyncClient(std::__ndk1::unique_ptr<realm::util::Logger, std::__ndk1::default_delete<realm::util::Logger> >, realm::SyncClientConfig const&, std::__ndk1::weak_ptr<realm::SyncManager const>)::'lambda0'()> >(void*)+138) (BuildId: 7233e94d0ae751dd7b85c4a8d303e9c945068037)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #40 pc 00000000000c7d2a  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+58) (BuildId: 3707c39fc397eeaa328142d90b50a973)
2021-08-25 19:13:39.529 27697-27697/? A/DEBUG:       #41 pc 000000000005f0c7  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+55) (BuildId: 3707c39fc397eeaa328142d90b50a973)

There is only one class in the schema:

open class SyncStringOnly : RealmObject() {

    companion object {
        const val CLASS_NAME = "SyncStringOnly"
        const val FIELD_ID = "_id"
        const val FIELD_CHARS = "chars"
    }

    @PrimaryKey
    @RealmField(name = "_id")
    var id: ObjectId = ObjectId()

    var chars: String? = null
}
@ironage
Copy link
Contributor

ironage commented Aug 25, 2021

@cmelchior the client reset default has changed from "Recover" to "DiscardLocal" (because the broken recover option has been removed). Can you be explicit about setting the mode to manual and see if that fixes it?

@cmelchior
Copy link
Contributor Author

We default to MANUAL mode, but I tried to set it explicitly and it still crashes.

@ironage
Copy link
Contributor

ironage commented Aug 25, 2021

Thanks for checking, glad that was not the issue actually.
The sync instruction being applied is AddColumn, and the type of this column is unknown (according to this list). It looks like this is not related to client reset, but to confirm are you able to validate that this schema works in another sync test? Could there be something going wrong in the Kotlin mapping of properties (_id to id)?

@ironage
Copy link
Contributor

ironage commented Aug 25, 2021

Unfortunately the terminate message does not print the actual column type. Could you provide that information either by providing the entire sync changeset, or maybe building a custom version of core which changes this to something like:

REALM_TERMINATE(util::format("Invalid data type: %1", type));

@cmelchior
Copy link
Contributor Author

So it turns out it wasn't the Client Reset, but the integration of a server changeset:

2021-08-26 09:25:35.898 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Received: DOWNLOAD CHANGESET(server_version=4, client_version=0, origin_timestamp=209840894707, origin_file_ident=46, original_changeset_size=1726, changeset_size=1726)
2021-08-26 09:25:35.899 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Changeset(comp): 1726 eAFdVFlP20AQXsf2rnNAgAQIV7nv+75ZAWklJCSqpjxXIbHAlWOjxDzk3wHhh3VndiKWvnyz882xM583kSxdaUe16ziMm9Ky/wR1mfKafjVswNF2axhwCt8bD3697tcrQeM59K+fgrAu3dJX9jZoJT+rTT9KJC9+DREtcnDZZRj+bj/7LemJGjS6qcu0hydVKzMuHmU2p+5+aUSVpBlEjzKX0e5trJyerHZ+hHE1kb2UWY5fHkJf5vNB6xpLr+I49KuR7KPacjXxZT9lXwVRtdmWA326VdmvBY1quL1zJAu9mrp7+OvXEjVdkerv72/KcpCiv0Cky6gthwZ0OhI3UeI/+k053G+QupEsCdi+HD/KkbwRBdnkKI2ht0VqjCg9KFLj1JUWQ26C5gFhkPjW3QjlQGqS7kO9kJmiKpAEiemiHulTB6RnaLmuFkjOUjHogcScKYHSBMn5QWPJclBLghgVXxjWPC1hRBaHdESLYASWqITUNSLLdAluZvArtA6oYtCrlF55ipuJwa/RzfoJGYF16nPVTnyD3qB8/W2MwGZXRqWrQW+V9GZdGY3QNlWAmAa9M6orPr+HEdyldt03aIT2zOdZ8RO5331G+scA1AE9B60zMIeURAIDdUSNUFkgjnv0RCAp+CeUgFoCcUpttYjAnFEJqAf+OWVo2YC5oAx4h+BLeuFdoYB7ZZQEEgHxxgr/iwP0OzN/dOoZAtlhvfCr06veRWFbfjD1D1NtthhjVsbiLGVbjDPbVr5jMZdZNuMukIqFM8ezUMmMC0x2PJXM3XSaWQ7nmbTFHC6ywIkclIkeDtgrAPMpwD4XsN8BHPAACxnAYhZwkKkRxBDWDqt2JS5GVHNlRm1mcTHmAI6nACcswG9qHi4m1YRcTKmZuZj2AGcygLNZwDlmKZxPW6mSzcVCSm3KxaKNZslCswzrc7GivVVt1gSS69rbcNDbdNFsZdBsZ9HseGh2mQVd9tLMViPvp5hyDmzAQwvwSMnLxTGeTxBPBTBneD534HzhAsoM4CvLgnljHph39Z1s1oGvxXhHXai06rAPpuw/VQnfKg==
2021-08-26 09:25:35.903 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Changeset (parsed):
    InternStrings   0="SyncColor", 1="_id", 2="realm_id", 3="color", 4="EmbeddedSimpleChild", 5="EmbeddedSimpleListParent", 6="EmbeddedSimpleParent", 7="SyncAllTypes", 8="childId", 9="children", 10="child", 11="columnString", 12="columnLong", 13="columnFloat", 14="columnDouble", 15="isColumnBoolean", 16="columnDate", 17="columnBinary", 18="columnDecimal128", 19="columnObjectId", 20="columnUUID", 21="columnRealmAny", 22="columnRealmInteger", 23="columnRealmObject", 24="SyncDog", 25="columnRealmList", 26="columnStringList", 27="columnBinaryList", 28="columnBooleanList", 29="columnLongList", 30="columnDoubleList", 31="columnFloatList", 32="columnDateList", 33="columnDecimal128List", 34="columnObjectIdList", 35="columnUUIDList", 36="columnRealmAnyList", 37="columnRealmDictionary", 38="columnBooleanDictionary", 39="columnStringDictionary", 40="columnIntegerDictionary", 41="columnFloatDictionary", 42="columnLongDictionary", 43="columnShortDictionary", 44="columnDoubleDictionary", 45="columnByteDictionary", 46="columnBinaryDictionary", 47="columnDateDictionary", 48="columnObjectIdDictionary", 49="columnUUIDDictionary", 50="columnDecimal128Dictionary", 51="columnRealmAnyDictionary", 52="columnRealmSet", 53="columnBooleanSet", 54="columnStringSet", 55="columnIntegerSet", 56="columnFloatSet", 57="columnLongSet", 58="columnShortSet", 59="columnDoubleSet", 60="columnByteSet", 61="columnBinarySet", 62="columnDateSet", 63="columnObjectIdSet", 64="columnUUIDSet", 65="columnDecimal128Set", 66="columnRealmAnySet", 67="SyncStringOnly", 68="chars"
    AddTable        path="SyncColor", pk_field="_id", pk_type=ObjectId, pk_nullable=1
    AddColumn       table="SyncColor", field="realm_id", type=String, nullable=1, collection_type=Single
    AddColumn       table="SyncColor", field="color", type=String, nullable=0, collection_type=Single
    AddTable        path="EmbeddedSimpleChild", embedded=1
    AddTable        path="EmbeddedSimpleListParent", pk_field="_id", pk_type=String, pk_nullable=0
    AddColumn       table="EmbeddedSimpleListParent", field="realm_id", type=String, nullable=1, collection_type=Single
    AddTable        path="EmbeddedSimpleParent", pk_field="_id", pk_type=String, pk_nullable=0
    AddColumn       table="EmbeddedSimpleParent", field="realm_id", type=String, nullable=1, collection_type=Single
    AddTable        path="SyncAllTypes", pk_field="_id", pk_type=ObjectId, pk_nullable=0
    AddColumn       table="SyncAllTypes", field="realm_id", type=String, nullable=1, collection_type=Single
    AddColumn       table="EmbeddedSimpleChild", field="childId", type=String, nullable=0, collection_type=Single
    AddColumn       table="EmbeddedSimpleListParent", field="children", type=Link, nullable=0, collection_type=List, target_table="EmbeddedSimpleChild"
    AddColumn       table="EmbeddedSimpleParent", field="child", type=Link, nullable=1, collection_type=Single, target_table="EmbeddedSimpleChild"
    AddColumn       table="SyncAllTypes", field="columnString", type=String, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnLong", type=Int, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnFloat", type=Float, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnDouble", type=Double, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="isColumnBoolean", type=Bool, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnDate", type=Timestamp, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnBinary", type=Binary, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnDecimal128", type=Decimal, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnObjectId", type=ObjectId, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnUUID", type=UUID, nullable=0, collection_type=S
2021-08-26 09:25:35.903 31394-31428/io.realm.test V/REALM_SYNC: ingle
    AddColumn       table="SyncAllTypes", field="columnRealmAny", type=Null, nullable=1, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnRealmInteger", type=Int, nullable=0, collection_type=Single
    AddColumn       table="SyncAllTypes", field="columnRealmObject", type=Link, nullable=1, collection_type=Single, target_table="SyncDog"
    AddColumn       table="SyncAllTypes", field="columnRealmList", type=Link, nullable=0, collection_type=List, target_table="SyncDog"
    AddColumn       table="SyncAllTypes", field="columnStringList", type=String, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnBinaryList", type=Binary, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnBooleanList", type=Bool, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnLongList", type=Int, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnDoubleList", type=Double, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnFloatList", type=Float, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnDateList", type=Timestamp, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnDecimal128List", type=Decimal, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnObjectIdList", type=ObjectId, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnUUIDList", type=UUID, nullable=0, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnRealmAnyList", type=Null, nullable=1, collection_type=List
    AddColumn       table="SyncAllTypes", field="columnRealmDictionary", type=Link, nullable=1, collection_type=Dictionary, target_table="SyncDog", key_type=String
    AddColumn       table="SyncAllTypes", field="columnBooleanDictionary", type=Bool, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnStringDictionary", type=String, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnIntegerDictionary", type=Int, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnFloatDictionary", type=Float, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnLongDictionary", type=Int, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnShortDictionary", type=Int, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnDoubleDictionary", type=Double, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnByteDictionary", type=Int, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnBinaryDictionary", type=Binary, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnDateDictionary", type=Timestamp, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnObjectIdDictionary", type=ObjectId, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnUUIDDictionary", type=UUID, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnDecimal128Dictionary", type=Decimal, nullable=0, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnRealmAnyDictionary", type=Null, nullable=1, collection_type=Dictionary, key_type=String
    AddColumn       table="SyncAllTypes", field="columnRealmSet", type=Link, nullable=0, collection_type=Set, target_table="SyncDog"
    AddColumn       table="SyncAllTypes", field="columnBooleanSet", type=Bool, null
2021-08-26 09:25:35.903 31394-31428/io.realm.test V/REALM_SYNC: able=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnStringSet", type=String, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnIntegerSet", type=Int, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnFloatSet", type=Float, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnLongSet", type=Int, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnShortSet", type=Int, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnDoubleSet", type=Double, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnByteSet", type=Int, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnBinarySet", type=Binary, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnDateSet", type=Timestamp, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnObjectIdSet", type=ObjectId, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnUUIDSet", type=UUID, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnDecimal128Set", type=Decimal, nullable=0, collection_type=Set
    AddColumn       table="SyncAllTypes", field="columnRealmAnySet", type=Null, nullable=1, collection_type=Set
    AddTable        path="SyncStringOnly", pk_field="_id", pk_type=ObjectId, pk_nullable=0
    AddColumn       table="SyncStringOnly", field="realm_id", type=String, nullable=1, collection_type=Single
    AddColumn       table="SyncStringOnly", field="chars", type=String, nullable=1, collection_type=Single
2021-08-26 09:25:35.903 31394-31428/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Received: DOWNLOAD(download_server_version=4, download_client_version=0, latest_server_version=4, latest_server_version_salt=4246471827707004678, upload_client_version=0, upload_server_version=0, downloadable_bytes=0, num_changesets=2, ...)
2021-08-26 09:25:35.904 31394-31428/io.realm.test V/REALM_SYNC: Using already open Realm file: /data/user/0/io.realm.test/files/mongodb-realm/testapp1-kvvrm/612741e6e20b98e75b967651/s_default.realm
2021-08-26 09:25:35.904 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Scanning incoming changeset [1/2] (80 instructions)
2021-08-26 09:25:35.904 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Scanning incoming changeset [2/2] (71 instructions)
2021-08-26 09:25:35.905 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Scanning local changeset [1/1] (2 instructions)
2021-08-26 09:25:35.905 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Indexing incoming changeset [1/2] (80 instructions)
2021-08-26 09:25:35.905 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Indexing incoming changeset [2/2] (71 instructions)
2021-08-26 09:25:35.905 31394-31428/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Finished changeset indexing (incoming: 2 changeset(s) / 151 instructions, local: 1 changeset(s) / 2 instructions, conflict group(s): 5)
2021-08-26 09:25:35.905 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: Transforming local changeset [1/1] through 2 incoming changeset(s) with 5 conflict group(s)
2021-08-26 09:25:35.907 31394-31428/io.realm.test D/REALM_SYNC: Connection[1]: Session[1]: Finished transforming 1 local changesets through 2 incoming changesets (2 vs 151 instructions, in 5 conflict groups)
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: group.add_embedded_table("class_EmbeddedSimpleChild");
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_EmbeddedSimpleListParent", type_String, "_id", false);
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_EmbeddedSimpleParent", type_String, "_id", false);
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncAllTypes", type_ObjectId, "_id", false);
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncColor", type_ObjectId, "_id", true);
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncDog", type_ObjectId, "_id", true);
2021-08-26 09:25:35.908 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncPerson", type_ObjectId, "_id", true);
2021-08-26 09:25:35.943 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_mongo_data", type_ObjectId, "_id", true);
2021-08-26 09:25:35.955 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncColor", type_ObjectId, "_id", true);
2021-08-26 09:25:35.956 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_EmbeddedSimpleListParent", type_String, "_id", false);
2021-08-26 09:25:35.956 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_EmbeddedSimpleParent", type_String, "_id", false);
2021-08-26 09:25:35.956 31394-31428/io.realm.test V/REALM_SYNC: Connection[1]: Session[1]: sync::create_table_with_primary_key(group, "class_SyncAllTypes", type_ObjectId, "_id", false);
2021-08-26 09:25:35.956 31394-31428/io.realm.test E/REALM: /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/realm-core/src/realm/sync/instructions.hpp:884: [realm-core-11.2.0] Invalid data type: 0

Not exactly sure what is going on though 🤔

@cmelchior cmelchior changed the title Client Reset causes "Invalid data type" Server changeset causes "Invalid data type" on Client Aug 26, 2021
@nirinchev
Copy link
Member

Looks like it's coming from here:

DataType new_type = get_data_type(instr.type);

I guess the question is why get_data_type asserts when the type of the column is mixed (represented as Null in the sync protocol). Sounds like an oversight and this check should be modified to match the one below:

DataType type = (instr.type == Type::Null) ? type_Mixed : get_data_type(instr.type);

@cmelchior if you feel like it, you can try to apply that change locally and see if that fixes the issue.

@nirinchev
Copy link
Member

@ironage it seems like everywhere get_data_type is used, there's special handling for the Type::Null case, which begs the question, why not handle it in the switch statement by returning type_Mixed rather than asserting.

The only place which doesn't special case Mixed is when we're processing AddTable:

if (!is_valid_key_type(spec.type)) {
bad_transaction_log("Invalid primary key type");
}
DataType pk_type = get_data_type(spec.type);

However, there we're first verifying that the key type is valid, which is peculiar in its own right, because it claims that Mixed is a valid key type:

inline bool is_valid_key_type(Instruction::Payload::Type type) noexcept
{
using Type = Instruction::Payload::Type;
switch (type) {
case Type::Null:
[[fallthrough]];
case Type::Int:
[[fallthrough]];
case Type::String:
[[fallthrough]];
case Type::ObjectId:
[[fallthrough]];
case Type::UUID:
[[fallthrough]];
case Type::GlobalKey:
return true;

@cmelchior
Copy link
Contributor Author

cmelchior commented Aug 26, 2021

I tried to modify Core locally according to #4873 (comment) . That fixes the crash in the unit test.

Not sure why we are suddenly seeing this though, I didn't see anything that stood out in the changelog 🤔

@ironage
Copy link
Contributor

ironage commented Aug 26, 2021

@cmelchior thanks for the changeset. I think this could be because EmbeddedSimpleChild does not have any pk defined. Are you able to verify that by adding one to see if it works? If that is the case, then it is actually a null type and not a mixed.

@cmelchior
Copy link
Contributor Author

cmelchior commented Aug 26, 2021

It is an embedded object so it isn't allowed to have primary keys.

@ironage
Copy link
Contributor

ironage commented Aug 26, 2021

Ah yes, you're right, sorry for the red herring.
It does look like it has to do with the AddColumn for a mixed property and the null shenanigans that Nikola mentions. Strange that this is only popping up now though, perhaps we didn't previously have coverage of incoming sync changes adding a mixed column and the column already existing on the local device until now? Anyhow, I can make a fix for this.

@ironage
Copy link
Contributor

ironage commented Aug 27, 2021

@cmelchior out of curiosity, did your baas version change when the tests started to produce this failure? It might be that recent server changes have modified the sync timings so that changesets are more likely to be resolved client side instead of server side. (just trying to understand why this is uncovered all of a sudden when it has been lurking hidden since v11).

@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.

3 participants