Skip to content

Assertion failed: has_refs() #5883

@xiles

Description

@xiles

SDK and version

SDK : Swift
Version:
Realm 10.30.0
RealmDatabase 12.7.0
Xcode 14.0.1

Observations

  • Not very often but it happens
  • Happened in production

Crash log / stacktrace

Thread 1 Queue : com.apple.main-thread (serial)
#0 0x00000001ae50fe60 in __pthread_kill ()
#1 0x00000001ae5623c0 in pthread_kill ()
#2 0x0000000114258e38 in abort ()
#3 0x0000000102dbd924 in ::please_report_this_issue_in_github_realm_realm_core_v_12_7_0() at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/util/terminate.cpp:65
#4 0x0000000102dbdca8 in realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits, std::__1::allocator >&) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/util/terminate.cpp:142
#5 0x0000000102dbda08 in realm::util::terminate(char const*, char const*, long, std::initializer_listrealm::util::Printable&&) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/util/terminate.cpp:152
#6 0x0000000102578124 in realm::Array::get_as_ref_or_tagged(unsigned long) const at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/array.hpp:754
#7 0x00000001025e34d0 in realm::Group::set_size() const at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/group.cpp:219
#8 0x00000001025e2584 in realm::Group::attach(unsigned long, bool, bool) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/group.cpp:552
#9 0x00000001025e5858 in realm::Group::attach_shared(unsigned long, unsigned long, bool) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/group.cpp:618
#10 0x0000000102d1a478 in realm::Transaction::Transaction(std::__1::shared_ptrrealm::DB, realm::SlabAlloc*, realm::DB::ReadLockInfo&, realm::DB::TransactStage) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/transaction.cpp:114
#11 0x0000000102d1a6b0 in realm::Transaction::Transaction(std::__1::shared_ptrrealm::DB, realm::SlabAlloc*, realm::DB::ReadLockInfo&, realm::DB::TransactStage) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/transaction.cpp:108
#12 0x00000001025b1254 in std::__1::shared_ptrrealm::Transaction (anonymous namespace)::make_transaction_ref<std::__1::shared_ptrrealm::DB, realm::SlabAlloc*, realm::DB::ReadLockInfo&, realm::DB::TransactStage>(std::__1::shared_ptrrealm::DB&&, realm::SlabAlloc*&&, realm::DB::ReadLockInfo&, realm::DB::TransactStage&&) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/db.cpp:406
#13 0x00000001025ab228 in realm::DB::start_read(realm::VersionID) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/db.cpp:2390
#14 0x00000001025a9d80 in realm::DB::open(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, bool, realm::DBOptions) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/db.cpp:1180
#15 0x00000001025abca0 in realm::DB::open(realm::Replication&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, realm::DBOptions) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/db.cpp:1215
#16 0x00000001025b20b8 in realm::DB::create(std::__1::unique_ptr<realm::Replication, std::__1::default_deleterealm::Replication >, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, realm::DBOptions) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/db.cpp:2529
#17 0x0000000102782ed4 in realm::_impl::RealmCoordinator::open_db() at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/object-store/impl/realm_coordinator.cpp:459
#18 0x0000000102784498 in realm::_impl::RealmCoordinator::do_get_realm(realm::RealmConfig, std::__1::shared_ptrrealm::Realm&, std::__1::optionalrealm::VersionID, realm::util::CheckedUniqueLock&) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/object-store/impl/realm_coordinator.cpp:280
#19 0x00000001027842ac in realm::_impl::RealmCoordinator::get_realm(realm::RealmConfig, std::__1::optionalrealm::VersionID) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/object-store/impl/realm_coordinator.cpp:252
#20 0x00000001028d3fbc in realm::Realm::get_shared_realm(realm::RealmConfig) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-core/src/realm/object-store/shared_realm.cpp:157
#21 0x00000001023141ac in +[RLMRealm realmWithConfiguration:queue:error:] at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-cocoa/Realm/RLMRealm.mm:532
#22 0x00000001023ccb88 in @nonobjc RLMRealm.__allocating_init(configuration:queue:) ()
#23 0x000000010248621c in Realm.init(queue:) at /Users/xiles/Library/Developer/Xcode/DerivedData/HashPhotos-emjpzodbkpdtdgcztdgogetflflc/SourcePackages/checkouts/realm-cocoa/RealmSwift/Realm.swift:79

Steps & Code to Reproduce

I got this broken database file from a user of my app.
I don't exactly know how come the database file broken.

Is there any way to fix the broken database file?
Users lost all of their data when this happens.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions