Uploaded image for project: 'Realm Cocoa SDK'
  1. Realm Cocoa SDK
  2. RCOCOA-779

Crash in EncryptedFileMapping::read_barrier

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Critical - P2 Critical - P2
    • None
    • Affects Version/s: None
    • Component/s: None

      0   libsystem_kernel.dylib        	0x00000001b974adf0 __pthread_kill + 8
      1   libsystem_pthread.dylib       	0x00000001b966a930 pthread_kill + 228 (pthread.c:1458)
      2   libsystem_c.dylib             	0x00000001b95f8ba4 abort + 104 (abort.c:110)
      3   Realm                         	0x00000001040b7078 please_report_this_error_to_help_at_realm_dot_io + 12
      4   Realm                         	0x00000001040b7384 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 328
      5   Realm                         	0x00000001040b76f4 realm::util::terminate_with_info(char const*, char const*, long, char const*, std::initializer_list<realm::util::Printable>&&) + 388
      6   Realm                         	0x0000000104001e40 void realm::util::terminate_with_info<unsigned long&, unsigned long&>(char const*, int, char const*, char const*, unsigned long&&&, unsigned long&&&) + 68
      7   Realm                         	0x000000010409f4f8 realm::util::EncryptedFileMapping::read_barrier(void const*, unsigned long, unsigned long (*)(char const*)) + 504
      8   Realm                         	0x0000000103d9ffb0 realm::util::do_encryption_read_barrier(void const*, unsigned long, unsigned long (*)(char const*), realm::util::EncryptedFileMapping*) + 84
      9   Realm                         	0x0000000103fea074 realm::Group::attach(unsigned long, bool, bool) + 136
      10  Realm                         	0x0000000103ff1808 realm::Group::advance_transact(unsigned long, unsigned long, realm::_impl::NoCopyInputStream&, bool) + 380
      11  Realm                         	0x0000000103ecaf34 void realm::Transaction::rollback_and_continue_as_read<realm::_impl::NullInstructionObserver>(realm::_impl::NullInstructionObserver*) + 408 (db.hpp:928)
      12  Realm                         	0x0000000103ec9cb4 realm::_impl::transaction::cancel(realm::Transaction&, realm::BindingContext*) + 704 (db.hpp:576)
      13  Realm                         	0x0000000103ea3ca0 realm::Realm::cancel_transaction() + 64 (shared_realm.cpp:686)
      14  Realm                         	0x0000000103e733d4 -[RLMRealm cancelWriteTransaction] + 20 (RLMRealm.mm:730)
      15  Realm                         	0x0000000103e73654 -[RLMRealm dealloc] + 52 (RLMRealm.mm:808)
      16  libobjc.A.dylib               	0x00000001b9695358 AutoreleasePoolPage::releaseUntil(objc_object**) + 184 (NSObject.mm:780)
      17  libobjc.A.dylib               	0x00000001b9695244 objc_autoreleasePoolPop + 232 (NSObject.mm:1040)
      18  libswiftObjectiveC.dylib      	0x00000001f0490c2c autoreleasepool<A>(invoking:) + 76 (ObjectiveC.swift:0)
      19  AnboTalk                      	0x000000010279f420 partial apply for closure #1 in RealmManager.writeAsyncObjs(priority:block:onSuccess:onFailure:) + 88 (RealmManager.swift:2234)
      20  AnboTalk                      	0x00000001026c2184 thunk for @escaping @callee_guaranteed () -> () + 28 (<compiler-generated>:0)
      21  libdispatch.dylib             	0x00000001b9602ec4 _dispatch_call_block_and_release + 32 (init.c:1408)
      22  libdispatch.dylib             	0x00000001b960433c _dispatch_client_callout + 20 (object.m:495)
      23  libdispatch.dylib             	0x00000001b96136e8 _dispatch_root_queue_drain + 644 (inline_internal.h:2484)
      24  libdispatch.dylib             	0x00000001b9613d9c _dispatch_worker_thread2 + 116 (queue.c:6628)
      25  libsystem_pthread.dylib       	0x00000001b966b6d8 _pthread_wqthread + 216 (pthread.c:2364)
      26  libsystem_pthread.dylib       	0x00000001b96719c8 start_wqthread + 8
      

      Code Sample

      private func writeAsyncObjs(priority:DispatchQoS = .default, block: @escaping ((Realm) -> Void), onSuccess successClosure: @escaping (() -> Void) = { }, onFailure failureClosure: @escaping ((_ error : Swift.Error) -> Void) = { _ in }) {
      		DispatchQueue.global(qos: priority.qosClass).async {
      			autoreleasepool {
      				do {
      					let realm = try Realm(configuration: self._realmConfig)
      					try realm.write {
      						block(realm)
      					}
      					successClosure()
      				}
      				catch {
      					failureClosure(error)
      				}
      			}
      		}
      	}
      

      Realm framework version: 5.3.2

      Realm Object Server version: ?

      Xcode version: 11.6

      iOS/OSX version: iPhone OS 13.5.1

            Assignee:
            jason.flax@mongodb.com Jason Flax
            Reporter:
            unitosyncbot Unito Sync Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: