Deadlock using @Query in SwiftData and SwiftUI

I’m running into a deadlock when using SwiftData together with SwiftUI. I’m running SwiftData in the background as much as possible, and I believe this may be related to the issue but I’m not sure how to proceed with debugging it.

This is the full stack trace. It appears that at least two of these three threads are causing the issue:

  1. The main thread (how do I figure out exactly what operation is trying to acquire the lock?)
  2. Thread 55 (again, how can I figure out more details about what it’s doing?)
  3. Thread 56, the SwiftUI async renderer which is trying to read my @Model object named “UserOrContact”
Thread 1 Queue : com.apple.main-thread (serial)
#0  0x00000001e7ca6628 in __psynch_mutexwait ()
#1  0x00000001fb72d324 in _pthread_mutex_firstfit_lock_wait ()
#2  0x00000001fb72cdac in _pthread_mutex_firstfit_lock_slow ()
#3  0x00000001a358a07c in _MovableLockLock ()
#4  0x00000001a3c4d1d8 in ___lldb_unnamed_symbol96853 ()
#5  0x00000001a3c4b744 in ___lldb_unnamed_symbol96805 ()
#6  0x00000001a3c4b998 in ___lldb_unnamed_symbol96806 ()
#7  0x00000001a3c51da0 in ___lldb_unnamed_symbol97072 ()
#8  0x00000001a4d22690 in ___lldb_unnamed_symbol221984 ()
#9  0x0000000105fd0b98 in _dispatch_call_block_and_release ()
#10 0x0000000105fd27bc in _dispatch_client_callout ()
#11 0x0000000105fe2d58 in _dispatch_main_queue_drain ()
#12 0x0000000105fe290c in _dispatch_main_queue_callback_4CF ()
#13 0x000000019f78151c in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#14 0x000000019f77e218 in __CFRunLoopRun ()
#15 0x000000019f77d968 in CFRunLoopRunSpecific ()
#16 0x00000001e3a734e0 in GSEventRunModal ()
#17 0x00000001a1bf0edc in -[UIApplication _run] ()
#18 0x00000001a1bf0518 in UIApplicationMain ()
#19 0x00000001a45b7860 in ___lldb_unnamed_symbol166472 ()
#20 0x00000001a45b76a8 in ___lldb_unnamed_symbol166470 ()
#21 0x00000001a41d39fc in ___lldb_unnamed_symbol137570 ()
#22 0x00000001010e67d8 in static AmiApp.$main() ()
#23 0x00000001010e6b08 in main at /Users/philipshen/Developer/ami/ios/Ami/AmiApp.swift:14
#24 0x00000001c2c9ed84 in start ()
Enqueued from com.apple.root.default-qos.overcommit (Thread 56) Queue : com.apple.root.default-qos.overcommit (serial)
#0  0x0000000105fd7448 in dispatch_async ()
#1  0x00000001a8b3b280 in _swift_dispatch_async ()
#2  0x00000001a8b3b124 in OS_dispatch_queue._asyncHelper(group:qos:flags:execute:) ()
#3  0x00000001a8b3b094 in OS_dispatch_queue.asyncUnsafe(group:qos:flags:execute:) ()
#4  0x00000001a3c4b5d4 in ___lldb_unnamed_symbol96804 ()
#5  0x00000001a4cb61e4 in ___lldb_unnamed_symbol218842 ()
#6  0x00000001a4cb4a3c in ___lldb_unnamed_symbol218745 ()
#7  0x00000001a4be5d30 in ___lldb_unnamed_symbol212856 ()
#8  0x00000001a4be6dc0 in ___lldb_unnamed_symbol212895 ()
#9  0x00000001c8235590 in AG::Graph::Context::call_invalidation(AG::AttributeID) ()
#10 0x00000001c82209c0 in AG::Graph::propagate_dirty(AG::AttributeID) ()
#11 0x00000001a3ff2328 in ___lldb_unnamed_symbol122707 ()
#12 0x00000001a45b1914 in ___lldb_unnamed_symbol166093 ()
#13 0x00000001a42068ec in ___lldb_unnamed_symbol138913 ()
#14 0x00000001a4207a04 in ___lldb_unnamed_symbol138921 ()
#15 0x00000001c82491bc in AGGraphWithMainThreadHandler ()
#16 0x00000001a4207800 in ___lldb_unnamed_symbol138918 ()
#17 0x00000001a4cb7e28 in ___lldb_unnamed_symbol218858 ()
#18 0x00000001a4d25290 in ___lldb_unnamed_symbol222035 ()
#19 0x00000001a3c4e488 in ___lldb_unnamed_symbol96889 ()
#20 0x00000001a3c4eaf4 in ___lldb_unnamed_symbol96891 ()
#21 0x00000001a0decd50 in CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) ()
#22 0x00000001a0deff30 in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#23 0x00000001a0decee8 in display_timer_callback(__CFMachPort*, void*, long, void*) ()
#24 0x000000019f780324 in __CFMachPortPerform ()
#25 0x000000019f780260 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#26 0x000000019f77ece4 in __CFRunLoopDoSource1 ()
#27 0x000000019f77e310 in __CFRunLoopRun ()
#28 0x000000019f77d968 in CFRunLoopRunSpecific ()
#29 0x000000019e60c4a8 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#30 0x000000019e60aff0 in -[NSRunLoop(NSRunLoop) run] ()
#31 0x00000001a3c4edfc in ___lldb_unnamed_symbol96892 ()
#32 0x00000001a3c4eee0 in ___lldb_unnamed_symbol96894 ()
#33 0x000000019e67da9c in __NSThread__start__ ()
#34 0x00000001fb72da90 in _pthread_start ()
#35 0x00000001fb72cfcc in thread_start ()
com.apple.uikit.eventfetch-thread (9)#0 0x00000001e7ca5af8 in mach_msg2_trap ()
#1  0x00000001e7ca5890 in mach_msg2_internal ()
#2  0x00000001e7ca57a8 in mach_msg_overwrite ()
#3  0x00000001e7ca55e8 in mach_msg ()
#4  0x000000019f78001c in __CFRunLoopServiceMachPort ()
#5  0x000000019f77df04 in __CFRunLoopRun ()
#6  0x000000019f77d968 in CFRunLoopRunSpecific ()
#7  0x000000019e60c4a8 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#8  0x000000019e6364e8 in -[NSRunLoop(NSRunLoop) runUntilDate:] ()
#9  0x00000001a1b53ac8 in -[UIEventFetcher threadMain] ()
#10 0x000000019e67da9c in __NSThread__start__ ()
#11 0x00000001fb72da90 in _pthread_start ()
com.apple.CoreMotion.MotionThread (10)#0    0x00000001e7ca5af8 in mach_msg2_trap ()
#1  0x00000001e7ca5890 in mach_msg2_internal ()
#2  0x00000001e7ca57a8 in mach_msg_overwrite ()
#3  0x00000001e7ca55e8 in mach_msg ()
#4  0x000000019f78001c in __CFRunLoopServiceMachPort ()
#5  0x000000019f77df04 in __CFRunLoopRun ()
#6  0x000000019f77d968 in CFRunLoopRunSpecific ()
#7  0x000000019f77d6cc in CFRunLoopRun ()
#8  0x00000001ac74a3c0 in ___lldb_unnamed_symbol13882 ()
#9  0x00000001fb72da90 in _pthread_start ()
Thread 11#0 0x00000001e7ca62f8 in __semwait_signal ()
#1  0x00000001a7693ea0 in nanosleep ()
#2  0x00000001a76a2158 in sleep ()
#3  0x00000001063495c8 in monitorCachedData at /Users/vagrant/git/Shake/Shake/ThirdPartyTools/KSCrashReporter/Source/KSCrash/Recording/SHKCrashCachedData.c:162
#4  0x00000001fb72da90 in _pthread_start ()
com.apple.NSURLConnectionLoader (22)#0  0x00000001e7ca5af8 in mach_msg2_trap ()
#1  0x00000001e7ca5890 in mach_msg2_internal ()
#2  0x00000001e7ca57a8 in mach_msg_overwrite ()
#3  0x00000001e7ca55e8 in mach_msg ()
#4  0x000000019f78001c in __CFRunLoopServiceMachPort ()
#5  0x000000019f77df04 in __CFRunLoopRun ()
#6  0x000000019f77d968 in CFRunLoopRunSpecific ()
#7  0x00000001a0adcc48 in ___lldb_unnamed_symbol14211 ()
#8  0x000000019e67da9c in __NSThread__start__ ()
#9  0x00000001fb72da90 in _pthread_start ()
Thread 33#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 43#0 0x00000001fb72cfb8 in start_wqthread ()
Thread 51#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 53#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 54#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 55 Queue : com.apple.libtrace.state.block-list (serial)
#0  0x00000001e7ca6578 in __ulock_wait ()
#1  0x0000000105fd3338 in _dlock_wait ()
#2  0x0000000105fd30ec in _dispatch_thread_event_wait_slow ()
#3  0x0000000105fe41f8 in __DISPATCH_WAIT_FOR_QUEUE__ ()
#4  0x0000000105fe3b30 in _dispatch_sync_f_slow ()
#5  0x00000001b96c871c in ___os_state_request_for_self_block_invoke ()
#6  0x0000000105fd0b98 in _dispatch_call_block_and_release ()
#7  0x0000000105fd27bc in _dispatch_client_callout ()
#8  0x0000000105fda66c in _dispatch_lane_serial_drain ()
#9  0x0000000105fdb43c in _dispatch_lane_invoke ()
#10 0x0000000105fe8404 in _dispatch_root_queue_drain_deferred_wlh ()
#11 0x0000000105fe7a38 in _dispatch_workloop_worker_thread ()
#12 0x00000001fb72cf20 in _pthread_wqthread ()
com.apple.SwiftUI.AsyncRenderer (56)#0  0x00000001e7ca6578 in __ulock_wait ()
#1  0x0000000105fd3338 in _dlock_wait ()
#2  0x0000000105fd30ec in _dispatch_thread_event_wait_slow ()
#3  0x0000000105fe41f8 in __DISPATCH_WAIT_FOR_QUEUE__ ()
#4  0x0000000105fe3b30 in _dispatch_sync_f_slow ()
#5  0x00000001a7888e7c in -[NSManagedObjectContext performBlockAndWait:] ()
#6  0x00000001a7903c64 in NSManagedObjectContext.performAndWait<τ_0_0>(_:) ()
#7  0x00000002405d829c in ___lldb_unnamed_symbol4011 ()
#8  0x00000002405dc544 in ___lldb_unnamed_symbol4027 ()
#9  0x00000002405dff64 in ___lldb_unnamed_symbol4059 ()
#10 0x00000002405905d0 in ___lldb_unnamed_symbol2420 ()
#11 0x0000000101022ea0 in UserOrContact.id.getter at /var/folders/4t/xyt8km1s59l4th8pdwkwg2_m0000gn/T/swift-generated-sources/@__swiftmacro_3Ami13UserOrContactC2id18_PersistedPropertyfMa_.swift:9
#12 0x000000010102a02c in protocol witness for Identifiable.id.getter in conformance UserOrContact ()
#13 0x00000001a472c518 in ___lldb_unnamed_symbol176872 ()
#14 0x000000019e1c0628 in RawKeyPathComponent._projectReadOnly<τ_0_0, τ_0_1, τ_0_2>(_:to:endingWith:) ()
#15 0x000000019e1bfddc in KeyPath._projectReadOnly(from:) ()
#16 0x000000019e1c4348 in swift_getAtKeyPath ()
#17 0x00000001a472b7cc in ___lldb_unnamed_symbol176843 ()
#18 0x00000001a472eccc in ___lldb_unnamed_symbol176887 ()
#19 0x00000001a473197c in ___lldb_unnamed_symbol176898 ()
#20 0x00000001a4733438 in ___lldb_unnamed_symbol176905 ()
#21 0x00000001a4737e10 in ___lldb_unnamed_symbol177048 ()
#22 0x00000001a473824c in ___lldb_unnamed_symbol177070 ()
#23 0x00000001a4fb96bc in ___lldb_unnamed_symbol243164 ()
#24 0x00000001a4f3ea8c in ___lldb_unnamed_symbol238856 ()
#25 0x00000001a4fbf2f8 in ___lldb_unnamed_symbol243395 ()
#26 0x00000001a4fb8adc in ___lldb_unnamed_symbol243144 ()
#27 0x00000001a4f3df40 in ___lldb_unnamed_symbol238827 ()
#28 0x00000001a38a8a80 in ___lldb_unnamed_symbol76819 ()
#29 0x00000001a38a84e4 in ___lldb_unnamed_symbol76816 ()
#30 0x00000001a3ca10e4 in ___lldb_unnamed_symbol99825 ()
#31 0x00000001a3caa3f0 in ___lldb_unnamed_symbol99931 ()
#32 0x00000001a410850c in ___lldb_unnamed_symbol131009 ()
#33 0x00000001a4111364 in ___lldb_unnamed_symbol131125 ()
#34 0x00000001a4111398 in ___lldb_unnamed_symbol131126 ()
#35 0x00000001c82314cc in AG::Graph::with_update(AG::data::ptr<AG::Node>, AG::ClosureFunctionVV<void>) ()
#36 0x00000001a410f9fc in ___lldb_unnamed_symbol131058 ()
#37 0x00000001a4108368 in ___lldb_unnamed_symbol131008 ()
#38 0x00000001a41081ac in ___lldb_unnamed_symbol131007 ()
#39 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#40 0x00000001a426b10c in ___lldb_unnamed_symbol141799 ()
#41 0x00000001a426cc3c in ___lldb_unnamed_symbol141806 ()
#42 0x00000001a426a8b0 in ___lldb_unnamed_symbol141794 ()
#43 0x00000001a417e9b4 in ___lldb_unnamed_symbol134825 ()
#44 0x00000001a417f0c4 in ___lldb_unnamed_symbol134858 ()
#45 0x00000001a47cd3a4 in ___lldb_unnamed_symbol181486 ()
#46 0x00000001a47cd170 in ___lldb_unnamed_symbol181485 ()
#47 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#48 0x00000001a4cf0e68 in ___lldb_unnamed_symbol220568 ()
#49 0x00000001a4cf18d4 in ___lldb_unnamed_symbol220575 ()
#50 0x00000001a44a0168 in ___lldb_unnamed_symbol156076 ()
#51 0x00000001a449ffec in ___lldb_unnamed_symbol156075 ()
#52 0x00000001a449fc90 in ___lldb_unnamed_symbol156072 ()
#53 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#54 0x00000001a4cf0e68 in ___lldb_unnamed_symbol220568 ()
#55 0x00000001a4cf18d4 in ___lldb_unnamed_symbol220575 ()
#56 0x00000001a44a0168 in ___lldb_unnamed_symbol156076 ()
#57 0x00000001a449ffec in ___lldb_unnamed_symbol156075 ()
#58 0x00000001a449fc90 in ___lldb_unnamed_symbol156072 ()
#59 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#60 0x00000001a426b10c in ___lldb_unnamed_symbol141799 ()
#61 0x00000001a426cc3c in ___lldb_unnamed_symbol141806 ()
#62 0x00000001a426a8b0 in ___lldb_unnamed_symbol141794 ()
#63 0x00000001a417e9b4 in ___lldb_unnamed_symbol134825 ()
#64 0x00000001a417f0c4 in ___lldb_unnamed_symbol134858 ()
#65 0x00000001a47cd3a4 in ___lldb_unnamed_symbol181486 ()
#66 0x00000001a47cd170 in ___lldb_unnamed_symbol181485 ()
#67 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#68 0x00000001a4cf0e68 in ___lldb_unnamed_symbol220568 ()
#69 0x00000001a4cf18d4 in ___lldb_unnamed_symbol220575 ()
#70 0x00000001a44a0168 in ___lldb_unnamed_symbol156076 ()
#71 0x00000001a449ffec in ___lldb_unnamed_symbol156075 ()
#72 0x00000001a449fc90 in ___lldb_unnamed_symbol156072 ()
#73 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#74 0x00000001a3762478 in ___lldb_unnamed_symbol69815 ()
#75 0x00000001a4f139e4 in ___lldb_unnamed_symbol237650 ()
#76 0x00000001a4f13858 in ___lldb_unnamed_symbol237649 ()
#77 0x00000001a4e1a2ac in ___lldb_unnamed_symbol229844 ()
#78 0x00000001a4208f14 in ___lldb_unnamed_symbol138943 ()
#79 0x00000001a450dfc0 in ___lldb_unnamed_symbol161539 ()
#80 0x00000001c8228240 in AG::Graph::UpdateStack::update() ()
#81 0x00000001c821ef38 in AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) ()
#82 0x00000001c8229948 in AG::Subgraph::update(unsigned int) ()
#83 0x00000001a4206918 in ___lldb_unnamed_symbol138913 ()
#84 0x00000001a4207a04 in ___lldb_unnamed_symbol138921 ()
#85 0x00000001c82491bc in AGGraphWithMainThreadHandler ()
#86 0x00000001a4207800 in ___lldb_unnamed_symbol138918 ()
#87 0x00000001a4cb7e28 in ___lldb_unnamed_symbol218858 ()
#88 0x00000001a4d25290 in ___lldb_unnamed_symbol222035 ()
#89 0x00000001a3c4e488 in ___lldb_unnamed_symbol96889 ()
#90 0x00000001a3c4eaf4 in ___lldb_unnamed_symbol96891 ()
#91 0x00000001a0decd50 in CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) ()
#92 0x00000001a0deff30 in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#93 0x00000001a0decee8 in display_timer_callback(__CFMachPort*, void*, long, void*) ()
#94 0x000000019f780324 in __CFMachPortPerform ()
#95 0x000000019f780260 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#96 0x000000019f77ece4 in __CFRunLoopDoSource1 ()
#97 0x000000019f77e310 in __CFRunLoopRun ()
#98 0x000000019f77d968 in CFRunLoopRunSpecific ()
#99 0x000000019e60c4a8 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#100    0x000000019e60aff0 in -[NSRunLoop(NSRunLoop) run] ()
#101    0x00000001a3c4edfc in ___lldb_unnamed_symbol96892 ()
#102    0x00000001a3c4eee0 in ___lldb_unnamed_symbol96894 ()
#103    0x000000019e67da9c in __NSThread__start__ ()
#104    0x00000001fb72da90 in _pthread_start ()
Thread 57#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 58#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 59#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 60#0 0x00000001e7cae084 in __workq_kernreturn ()
Thread 61#0 0x00000001fb72cfb8 in start_wqthread ()
Thread 62#0 0x00000001e7cae084 in __workq_kernreturn ()

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật