Uploaded image for project: 'Realm Core'
  1. Realm Core
  2. RCORE-2139

Crash in realm::SlabAlloc::attach_file

    • Type: Icon: Task Task
    • Resolution: Works as Designed
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: None
    • None

      SDK and version

      SDK : Dart
      Version: 2.3.0-12-g25c79676 (using realm-core v14.7.0)

      Observations

      • How frequent do the crash occur? Always
      • Does it happen in production or during dev/test? Dev
      • Can the crash be reproduced by you? Yes
      • Can you provide instructions for how we can reproduce it? Yes

      Crash log / stacktrace

      Exception Type:  EXC_CRASH (SIGABRT)
      Exception Codes: 0x0000000000000000, 0x0000000000000000
      Termination Reason: SIGNAL 6 Abort trap: 6
      Terminating Process: Runner [39693]
      
      Triggered by Thread:  82
      
      ...
      
      Thread 82 Crashed:
      Exception Type:  EXC_CRASH (SIGABRT)
      Exception Codes: 0x0000000000000000, 0x0000000000000000
      Termination Reason: SIGNAL 6 Abort trap: 6
      Terminating Process: Runner [39693]
      
      Triggered by Thread:  82
      
      ...
      
      Thread 82 Crashed:
      0   libsystem_kernel.dylib        	       0x104f293b0 __pthread_kill + 8
      1   libsystem_pthread.dylib       	       0x1050f3124 pthread_kill + 256
      2   libsystem_c.dylib             	       0x1801655c0 abort + 104
      3   libc++abi.dylib               	       0x1802a7778 abort_message + 128
      4   libc++abi.dylib               	       0x180298eb0 demangling_terminate_handler() + 272
      5   libobjc.A.dylib               	       0x1800634a8 _objc_terminate() + 140
      6   libc++abi.dylib               	       0x1802a6c50 std::__terminate(void (*)()) + 12
      7   libc++abi.dylib               	       0x1802a9954 __cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 32
      8   libc++abi.dylib               	       0x1802a9914 __cxa_throw + 132
      9   realm_dart                    	       0x1068364e8 realm::SlabAlloc::attach_file(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, realm::SlabAlloc::Config&, realm::util::WriteObserver*) + 2748
      10  realm_dart                    	       0x106872770 realm::DB::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, realm::DBOptions const&) + 2152
      11  realm_dart                    	       0x106879fb8 realm::DB::create(std::__1::unique_ptr<realm::Replication, std::__1::default_delete<realm::Replication>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, realm::DBOptions const&) + 164
      12  realm_dart                    	       0x106645cb8 realm::_impl::RealmCoordinator::open_db() + 948
      13  realm_dart                    	       0x106646c38 realm::_impl::RealmCoordinator::do_get_realm(realm::RealmConfig&&, std::__1::shared_ptr<realm::Realm>&, std::__1::optional<realm::VersionID>, realm::util::CheckedUniqueLock&, bool) + 76
      14  realm_dart                    	       0x106646b54 realm::_impl::RealmCoordinator::get_realm(realm::RealmConfig, std::__1::optional<realm::VersionID>) + 460
      15  realm_dart                    	       0x106697114 realm::Realm::get_shared_realm(realm::RealmConfig) + 120
      16  realm_dart                    	       0x1066d27c8 (anonymous namespace)::PersistedSyncMetadataManager::create_file_action(realm::SyncFileAction, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>) + 104
      17  realm_dart                    	       0x1066bd828 realm::app::User::create_file_action(realm::SyncFileAction, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>) + 360
      18  realm_dart                    	       0x1066e7358 realm::SyncSession::update_error_and_mark_file_for_deletion(realm::SyncError&, realm::SyncSession::ShouldBackup) + 492
      19  realm_dart                    	       0x1066ea364 realm::SyncSession::handle_error(realm::sync::SessionErrorInfo) + 1196
      20  realm_dart                    	       0x1066e9780 realm::SyncSession::handle_fresh_realm_downloaded(std::__1::shared_ptr<realm::DB>, realm::Status, realm::sync::ProtocolErrorInfo::Action, std::__1::optional<realm::sync::SubscriptionSet>) + 436
      21  realm_dart                    	       0x1066e9460 realm::SyncSession::download_fresh_realm(realm::sync::ProtocolErrorInfo::Action) + 8056
      22  realm_dart                    	       0x1066f40bc realm::util::UniqueFunction<void (realm::sync::ConnectionState, std::__1::optional<realm::sync::SessionErrorInfo>)>::SpecificImpl<realm::SyncSession::create_sync_session()::$_10>::call(realm::sync::ConnectionState&&, std::__1::optional<realm::sync::SessionErrorInfo>&&) + 692
      23  realm_dart                    	       0x10679705c realm::sync::SessionWrapper::on_suspended(realm::sync::SessionErrorInfo const&) + 120
      24  realm_dart                    	       0x1067eb2c0 realm::sync::ClientImpl::Session::suspend(realm::sync::SessionErrorInfo const&) + 256
      25  realm_dart                    	       0x1067e6510 realm::sync::ClientImpl::Session::receive_error_message(realm::sync::ProtocolErrorInfo const&) + 1224
      26  realm_dart                    	       0x1067e5e00 realm::sync::ClientImpl::Connection::receive_error_message(realm::sync::ProtocolErrorInfo const&, unsigned long long) + 100
      27  realm_dart                    	       0x1067e4b04 void realm::_impl::ClientProtocol::parse_message_received<realm::sync::ClientImpl::Connection>(realm::sync::ClientImpl::Connection&, std::__1::basic_string_view<char, std::__1::char_traits<char>>) + 3440
      28  realm_dart                    	       0x1067edc00 realm::sync::ClientImpl::Connection::WebSocketObserverShim::websocket_binary_message_received(realm::util::Span<char const, 18446744073709551615ul>) + 116
      29  realm_dart                    	       0x1067bfd60 (anonymous namespace)::WebSocket::frame_reader_loop() + 124
      30  realm_dart                    	       0x1067b2d1c void realm::sync::network::Service::AsyncOper::do_recycle_and_execute<realm::util::UniqueFunction<void (std::__1::error_code, unsigned long)>, std::__1::error_code&, unsigned long&>(bool, realm::util::UniqueFunction<void (std::__1::error_code, unsigned long)>&, std::__1::error_code&, unsigned long&) + 192
      31  realm_dart                    	       0x1067b32a4 realm::sync::network::Service::BasicStreamOps<realm::sync::network::Socket>::BufferedReadOper<realm::util::UniqueFunction<void (std::__1::error_code, unsigned long)>>::recycle_and_execute() + 212
      32  realm_dart                    	       0x1067b951c realm::sync::network::Service::Impl::run_impl(bool) + 388
      33  realm_dart                    	       0x1067a9bb4 realm::sync::websocket::DefaultSocketProvider::event_loop() + 212
      34  realm_dart                    	       0x1067abe94 void* std::__1::__thread_proxy[abi:ue170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (realm::sync::websocket::DefaultSocketProvider::*)(), realm::sync::websocket::DefaultSocketProvider*>>(void*) + 72
      35  libsystem_pthread.dylib       	       0x1050f3414 _pthread_start + 104
      36  libsystem_pthread.dylib       	       0x1050ee5e0 thread_start + 8
      

      Steps & Code to Reproduce

      Assuming you have xcode 15.4 installed and selected, and a simulator running with iOS 17.5, and BAAS_URL points to a running BAAS instance.

      git clone https://github.com/realm/realm-dart.git
      cd realm-dart
      curl -o- https://puro.dev/install.sh | PURO_VERSION="1.4.6" bash
      puro use -g stable
      puro pub global activate melos
      melos bootstrap
      melos setup
      melos build:native
      cd packages/realm/tests
      flutter test integration_test/all_tests.dart --dart-define=BAAS_URL=$BAAS_URL --dart-define=BAAS_DIFFERENTIATOR=something --file-reporter=json:test-results.json --suppress-analytics -d iphone
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            unitosyncbot Unito Sync Bot
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: