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

[Deadlock] ASImageNode.tintColor #1731

Closed
muukii opened this issue Nov 18, 2019 · 10 comments
Closed

[Deadlock] ASImageNode.tintColor #1731

muukii opened this issue Nov 18, 2019 · 10 comments

Comments

@muukii
Copy link
Contributor

muukii commented Nov 18, 2019

Thank you for the great library.

And I've found a deadlock problem on ASImageNode.tintColor.
Let me issue about this.

I'm using Texture on 37e28300de631f38bb5420972ccc520e4e307d90

image

@muukii
Copy link
Contributor Author

muukii commented Nov 18, 2019

Does it relate?
#1617

@muukii
Copy link
Contributor Author

muukii commented Nov 18, 2019

Investigation Note:

I've tried to back to stable version (6176aa4)
Actuallly, I need above commit hash to support iOS13.
And, this commit hash works very well.

However, the deadlock caused after this PR #1617 merged.

So, maybe the code I wrote has some problems.
I would like to know some ideas or suggestions to avoid deadlocks.

For now, I continue using this hash (6176aa4).
If I get time, I try to investigate this again.

Thanks

cc @nguyenhuy

@rahul-malik
Copy link
Contributor

@muukii - Can you share what's happening on the other threads? it looks like it might be occurring when trying to ascend the node hierarchy to find a tintColor

@muukii
Copy link
Contributor Author

muukii commented Nov 18, 2019

@rahul-malik
Thank you for your reply!

Ok! I will share the all of threads tomorrow.
I’ll be in touch!

@muukii
Copy link
Contributor Author

muukii commented Nov 19, 2019

@rahul-malik

I got the backtrace from lldb when it's breaking on dead-locking.
Let me know if you need other information!

(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001adecad1c libsystem_kernel.dylib`__psynch_mutexwait + 8
    frame #1: 0x00000001addeeb64 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 96
    frame #2: 0x00000001addeead0 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 264
    frame #3: 0x00000001adf521c4 libc++.1.dylib`std::__1::recursive_mutex::lock() + 16
    frame #4: 0x00000001033399a8 AsyncDisplayKit`AS::Mutex::lock(this=0x000000010dd88010) at ASThread.h:177:22
    frame #5: 0x00000001033bd498 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd88000, _cmd="tintColor") tintColor]() at ASDisplayNode+UIViewBridge.mm:795:20
    frame #6: 0x00000001033bd8b4 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd8d600, _cmd="tintColor") tintColor]() at ASDisplayNode+UIViewBridge.mm:807:40
    frame #7: 0x0000000103409d50 AsyncDisplayKit`::-[ASImageNode drawParametersForAsyncLayer:](self=0x000000010dd8d600, _cmd="drawParametersForAsyncLayer:", layer=0x000000028094b270) at ASImageNode.mm:325:37
    frame #8: 0x00000001033a1984 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd8d600, _cmd="drawParameters") drawParameters]() at ASDisplayNode+AsyncDisplay.mm:43:12
    frame #9: 0x00000001033a2c48 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd8d600, _cmd="_displayBlockWithAsynchronous:isCancelledBlock:rasterizing:", asynchronous=YES, isCancelledBlock=0x00000001033a5a60, rasterizing=NO) _displayBlockWithAsynchronous:isCancelledBlock:rasterizing:](BOOL, asdisplaynode_iscancelled_block_t, BOOL) at ASDisplayNode+AsyncDisplay.mm:188:55
    frame #10: 0x00000001033a53c0 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd8d600, _cmd="displayAsyncLayer:asynchronously:", asyncLayer=0x000000028094b270, asynchronously=YES) displayAsyncLayer:asynchronously:](_ASDisplayLayer *, BOOL) at ASDisplayNode+AsyncDisplay.mm:405:70
    frame #11: 0x0000000103307e88 AsyncDisplayKit`::-[_ASDisplayLayer display:](self=0x000000028094b270, _cmd="display:", asynchronously=YES) at _ASDisplayLayer.mm:170:3
    frame #12: 0x0000000103307dc4 AsyncDisplayKit`::-[_ASDisplayLayer display](self=0x000000028094b270, _cmd="display") at _ASDisplayLayer.mm:161:3
    frame #13: 0x00000001b4c8a6e4 QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 428
    frame #14: 0x00000001b4bcf170 QuartzCore`CA::Context::commit_transaction(CA::Transaction*, double) + 308
    frame #15: 0x00000001b4bf9f7c QuartzCore`CA::Transaction::commit() + 684
    frame #16: 0x00000001b4bfab50 QuartzCore`CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 96
    frame #17: 0x00000001ae05a668 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36
    frame #18: 0x00000001ae055308 CoreFoundation`__CFRunLoopDoObservers + 420
    frame #19: 0x00000001ae0558b8 CoreFoundation`__CFRunLoopRun + 1292
    frame #20: 0x00000001ae055084 CoreFoundation`CFRunLoopRunSpecific + 480
    frame #21: 0x00000001b82a3534 GraphicsServices`GSEventRunModal + 108
    frame #22: 0x00000001b21c5698 UIKitCore`UIApplicationMain + 1940
    frame #23: 0x000000010139b9d8 Pairs_GL`main at main.swift:6:3
    frame #24: 0x00000001aded4e18 libdyld.dylib`start + 4
  thread #6, name = 'JavaScriptCore bmalloc scavenger'
    frame #0: 0x00000001adecaccc libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x00000001added4fc libsystem_pthread.dylib`_pthread_cond_wait + 680
    frame #2: 0x00000001adf1ed04 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28
    frame #3: 0x00000001bd257dbc JavaScriptCore`void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&) + 104
    frame #4: 0x00000001bd25b820 JavaScriptCore`bmalloc::Scavenger::threadRunLoop() + 196
    frame #5: 0x00000001bd25b518 JavaScriptCore`bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 16
    frame #6: 0x00000001bd25c85c JavaScriptCore`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*) + 44
    frame #7: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128
  thread #7, name = 'WebThread'
    frame #0: 0x00000001adea8c04 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x00000001adea8020 libsystem_kernel.dylib`mach_msg + 76
    frame #2: 0x00000001ae05aaa8 CoreFoundation`__CFRunLoopServiceMachPort + 220
    frame #3: 0x00000001ae055940 CoreFoundation`__CFRunLoopRun + 1428
    frame #4: 0x00000001ae055084 CoreFoundation`CFRunLoopRunSpecific + 480
    frame #5: 0x00000001b61ecc8c WebCore`RunWebThread(void*) + 564
    frame #6: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128
  thread #9, name = 'com.apple.uikit.eventfetch-thread'
    frame #0: 0x00000001adea8c04 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x00000001adea8020 libsystem_kernel.dylib`mach_msg + 76
    frame #2: 0x00000001ae05aaa8 CoreFoundation`__CFRunLoopServiceMachPort + 220
    frame #3: 0x00000001ae055940 CoreFoundation`__CFRunLoopRun + 1428
    frame #4: 0x00000001ae055084 CoreFoundation`CFRunLoopRunSpecific + 480
    frame #5: 0x00000001ae39a3d0 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232
    frame #6: 0x00000001ae39a2a8 Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 92
    frame #7: 0x00000001b2261170 UIKitCore`-[UIEventFetcher threadMain] + 156
    frame #8: 0x00000001ae399034 Foundation`-[NSThread main] + 40
    frame #9: 0x00000001ae4d4a8c Foundation`__NSThread__start__ + 852
    frame #10: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128
  thread #15, name = 'com.apple.NSURLConnectionLoader'
    frame #0: 0x00000001adea8c04 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x00000001adea8020 libsystem_kernel.dylib`mach_msg + 76
    frame #2: 0x00000001ae05aaa8 CoreFoundation`__CFRunLoopServiceMachPort + 220
    frame #3: 0x00000001ae055940 CoreFoundation`__CFRunLoopRun + 1428
    frame #4: 0x00000001ae055084 CoreFoundation`CFRunLoopRunSpecific + 480
    frame #5: 0x00000001b1354f18 CFNetwork`___lldb_unnamed_symbol3$$CFNetwork + 192
    frame #6: 0x00000001ae399034 Foundation`-[NSThread main] + 40
    frame #7: 0x00000001ae4d4a8c Foundation`__NSThread__start__ + 852
    frame #8: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128
  thread #17, name = 'Realm notification listener'
    frame #0: 0x00000001adecc9dc libsystem_kernel.dylib`kevent + 8
    frame #1: 0x000000010476118c Realm`realm::_impl::ExternalCommitHelper::listen() + 160
    frame #2: 0x0000000104761c6c Realm`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, realm::_impl::ExternalCommitHelper::ExternalCommitHelper(realm::_impl::RealmCoordinator&)::$_0> >(void*) + 52
    frame #3: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128
  thread #33, queue = 'org.AsyncDisplayKit.ASDataController.editingTransactionQueue:0x2837ceee0'
    frame #0: 0x00000001adecb8f0 libsystem_kernel.dylib`__ulock_wait + 8
    frame #1: 0x000000010d44fd88 libdispatch.dylib`_dlock_wait + 56
    frame #2: 0x000000010d450110 libdispatch.dylib`_dispatch_group_wait_slow + 56
    frame #3: 0x00000001033a0840 AsyncDisplayKit`::ASDispatchApply(iterationCount=26, queue=0x000000010d4ad000, threadCount=12, work=0x000000010338f594)(size_t)) at ASDispatch.mm:40:3
    frame #4: 0x000000010338f4a8 AsyncDisplayKit`::-[ASDataController _allocateNodesFromElements:](self=0x00000002837ceee0, _cmd="_allocateNodesFromElements:", elements=26 elements) at ASDataController.mm:154:5
    frame #5: 0x0000000103395b00 AsyncDisplayKit`::__40-[ASDataController updateWithChangeSet:]_block_invoke.214(.block_descriptor=0x00000002826f7de0) at ASDataController.mm:645:7
    frame #6: 0x000000010d44de1c libdispatch.dylib`_dispatch_call_block_and_release + 32
    frame #7: 0x000000010d44f27c libdispatch.dylib`_dispatch_client_callout + 20
    frame #8: 0x000000010d456b38 libdispatch.dylib`_dispatch_lane_serial_drain + 1276
    frame #9: 0x000000010d4574fc libdispatch.dylib`_dispatch_lane_invoke + 408
    frame #10: 0x000000010d4624dc libdispatch.dylib`_dispatch_workloop_worker_thread + 1344
    frame #11: 0x00000001addeba94 libsystem_pthread.dylib`_pthread_wqthread + 280
  thread #35
    frame #0: 0x00000001addf1c74 libsystem_pthread.dylib`start_wqthread
  thread #37
    frame #0: 0x00000001addf1c74 libsystem_pthread.dylib`start_wqthread
  thread #39
    frame #0: 0x00000001adecbab4 libsystem_kernel.dylib`__workq_kernreturn + 8
  thread #46
    frame #0: 0x00000001adecbab4 libsystem_kernel.dylib`__workq_kernreturn + 8
  thread #47
    frame #0: 0x00000001addf1c74 libsystem_pthread.dylib`start_wqthread
  thread #49, queue = 'com.apple.root.user-initiated-qos'
    frame #0: 0x00000001adecad1c libsystem_kernel.dylib`__psynch_mutexwait + 8
    frame #1: 0x00000001addeeb64 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_wait + 96
    frame #2: 0x00000001addeead0 libsystem_pthread.dylib`_pthread_mutex_firstfit_lock_slow + 264
    frame #3: 0x00000001adf521c4 libc++.1.dylib`std::__1::recursive_mutex::lock() + 16
    frame #4: 0x00000001033399a8 AsyncDisplayKit`AS::Mutex::lock(this=0x000000010dd8d610) at ASThread.h:177:22
    frame #5: 0x00000001033b1380 AsyncDisplayKit`std::__1::lock_guard<AS::Mutex>::lock_guard(this=0x000000016f6a36d8, __m=0x000000010dd8d610) at __mutex_base:104:27
    frame #6: 0x00000001033a6ff0 AsyncDisplayKit`std::__1::lock_guard<AS::Mutex>::lock_guard(this=0x000000016f6a36d8, __m=0x000000010dd8d610) at __mutex_base:104:21
    frame #7: 0x00000001033a706c AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd8d600, _cmd="style") style]() at ASDisplayNode+Layout.mm:53:15
    frame #8: 0x000000010346e37c AsyncDisplayKit`-[ASStackLayoutSpec calculateLayoutThatFits:]::$_0::operator(this=0x000000016f6a3b28, child=0x000000010dd8d600)(id<ASLayoutElement>) const at ASStackLayoutSpec.mm:139:41
    frame #9: 0x000000010346c818 AsyncDisplayKit`std::__1::vector<decltype(fp0(decltype(std::__1::__declval<objc_object* __strong>(0)) std::__1::declval<objc_object* __strong>()())), std::__1::allocator<decltype(fp0(decltype(std::__1::__declval<objc_object* __strong>(0)) std::__1::declval<objc_object* __strong>()()))> > AS::map<-[ASStackLayoutSpec calculateLayoutThatFits:]::$_0>(collection=3 elements, func=0x000000016f6a3b28) at ASLayoutSpecUtilities.h:45:20
    frame #10: 0x000000010346c1a4 AsyncDisplayKit`::-[ASStackLayoutSpec calculateLayoutThatFits:](self=0x000000028399a1c0, _cmd="calculateLayoutThatFits:", constrainedSize=(min = (width = 145.86500000000001, height = 0), max = (width = 145.86500000000001, height = +Inf))) at ASStackLayoutSpec.mm:138:30
    frame #11: 0x0000000103429490 AsyncDisplayKit`::-[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x000000028399a1c0, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 145.86500000000001, height = 0), max = (width = 145.86500000000001, height = +Inf)), parentSize=(width = 311, height = NaN)) at ASLayoutSpec.mm:74:1
    frame #12: 0x000000010342929c AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:parentSize:](self=0x000000028399a1c0, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 145.86500000000001, height = 0), max = (width = 145.86500000000001, height = +Inf)), parentSize=(width = 311, height = NaN)) at ASLayoutSpec.mm:74:1
    frame #13: 0x000000010340fb78 AsyncDisplayKit`::-[ASInsetLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x0000000283a06500, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 161.86500000000001, height = 0), max = (width = 161.86500000000001, height = +Inf)), parentSize=(width = 327, height = NaN)) at ASInsetLayoutSpec.mm:101:25
    frame #14: 0x000000010342929c AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:parentSize:](self=0x0000000283a06500, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 161.86500000000001, height = 0), max = (width = 161.86500000000001, height = +Inf)), parentSize=(width = 327, height = NaN)) at ASLayoutSpec.mm:74:1
    frame #15: 0x0000000103475710 AsyncDisplayKit`crossChildLayout(child=0x0000000117d7ef70, style=0x000000016f6a4b18, stackMin=161.86500000000001, stackMax=161.86500000000001, crossMin=0, crossMax=+Inf, parentSize=(width = 327, height = NaN)) at ASStackUnpositionedLayout.mm:65:22
    frame #16: 0x000000010347554c AsyncDisplayKit`::___ZL43layoutItemsAlongUnconstrainedStackDimensionRNSt3__16vectorI21ASStackLayoutSpecItemNS_9allocatorIS1_EEEERK22ASStackLayoutSpecStylebRK11ASSizeRange6CGSizeb_block_invoke(.block_descriptor=0x000000016f6a4718, i=0) at ASStackUnpositionedLayout.mm:689:21
    frame #17: 0x00000001034752b0 AsyncDisplayKit`dispatchApplyIfNeeded(iterationCount=4, forced=NO, work=0x00000001034753b0) block_pointer) at ASStackUnpositionedLayout.mm:84:7
    frame #18: 0x0000000103473a4c AsyncDisplayKit`layoutItemsAlongUnconstrainedStackDimension(items=size=4, style=0x000000016f6a4b18, concurrent=NO, sizeRange=0x000000016f6a4ba0, parentSize=(width = 327, height = NaN), useOptimizedFlexing=NO) at ASStackUnpositionedLayout.mm:684:3
    frame #19: 0x00000001034734fc AsyncDisplayKit`ASStackUnpositionedLayout::compute(children=size=4, style=0x000000016f6a4b18, sizeRange=0x000000016f6a4ba0, concurrent=NO) at ASStackUnpositionedLayout.mm:726:3
    frame #20: 0x000000010346c25c AsyncDisplayKit`::-[ASStackLayoutSpec calculateLayoutThatFits:](self=0x0000000283998690, _cmd="calculateLayoutThatFits:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf))) at ASStackLayoutSpec.mm:145:35
    frame #21: 0x0000000103429490 AsyncDisplayKit`::-[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x0000000283998690, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf)), parentSize=(width = 327, height = NaN)) at ASLayoutSpec.mm:74:1
    frame #22: 0x000000010342929c AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:parentSize:](self=0x0000000283998690, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf)), parentSize=(width = 327, height = NaN)) at ASLayoutSpec.mm:74:1
    frame #23: 0x0000000103475710 AsyncDisplayKit`crossChildLayout(child=0x000000012c67bb60, style=0x000000016f6a55c8, stackMin=0, stackMax=+Inf, crossMin=327, crossMax=327, parentSize=(width = 327, height = NaN)) at ASStackUnpositionedLayout.mm:65:22
    frame #24: 0x000000010347554c AsyncDisplayKit`::___ZL43layoutItemsAlongUnconstrainedStackDimensionRNSt3__16vectorI21ASStackLayoutSpecItemNS_9allocatorIS1_EEEERK22ASStackLayoutSpecStylebRK11ASSizeRange6CGSizeb_block_invoke(.block_descriptor=0x000000016f6a51c8, i=4) at ASStackUnpositionedLayout.mm:689:21
    frame #25: 0x00000001034752b0 AsyncDisplayKit`dispatchApplyIfNeeded(iterationCount=5, forced=NO, work=0x00000001034753b0) block_pointer) at ASStackUnpositionedLayout.mm:84:7
    frame #26: 0x0000000103473a4c AsyncDisplayKit`layoutItemsAlongUnconstrainedStackDimension(items=size=5, style=0x000000016f6a55c8, concurrent=NO, sizeRange=0x000000016f6a5650, parentSize=(width = 327, height = NaN), useOptimizedFlexing=NO) at ASStackUnpositionedLayout.mm:684:3
    frame #27: 0x00000001034734fc AsyncDisplayKit`ASStackUnpositionedLayout::compute(children=size=5, style=0x000000016f6a55c8, sizeRange=0x000000016f6a5650, concurrent=NO) at ASStackUnpositionedLayout.mm:726:3
    frame #28: 0x000000010346c25c AsyncDisplayKit`::-[ASStackLayoutSpec calculateLayoutThatFits:](self=0x0000000283998870, _cmd="calculateLayoutThatFits:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf))) at ASStackLayoutSpec.mm:145:35
    frame #29: 0x0000000103429490 AsyncDisplayKit`::-[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x0000000283998870, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf)), parentSize=(width = 327, height = +Inf)) at ASLayoutSpec.mm:74:1
    frame #30: 0x000000010342929c AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:parentSize:](self=0x0000000283998870, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 327, height = 0), max = (width = 327, height = +Inf)), parentSize=(width = 327, height = +Inf)) at ASLayoutSpec.mm:74:1
    frame #31: 0x000000010340fb78 AsyncDisplayKit`::-[ASInsetLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x0000000283a0c300, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf)), parentSize=(width = 375, height = +Inf)) at ASInsetLayoutSpec.mm:101:25
    frame #32: 0x000000010342929c AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:parentSize:](self=0x0000000283a0c300, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf)), parentSize=(width = 375, height = +Inf)) at ASLayoutSpec.mm:74:1
    frame #33: 0x0000000103429190 AsyncDisplayKit`::-[ASLayoutSpec layoutThatFits:](self=0x0000000283a0c300, _cmd="layoutThatFits:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf))) at ASLayoutSpec.mm:74:1
    frame #34: 0x00000001033b2060 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd88000, _cmd="calculateLayoutLayoutSpec:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf))) calculateLayoutLayoutSpec:](ASSizeRange) at ASDisplayNode+LayoutSpec.mm:93:5
    frame #35: 0x00000001033d4dac AsyncDisplayKit`::-[ASDisplayNode calculateLayoutThatFits:](self=0x000000010dd88000, _cmd="calculateLayoutThatFits:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf))) at ASDisplayNode.mm:1085:14
    frame #36: 0x00000001033d494c AsyncDisplayKit`::-[ASDisplayNode calculateLayoutThatFits:restrictedToSize:relativeToParentSize:](self=0x000000010dd88000, _cmd="calculateLayoutThatFits:restrictedToSize:relativeToParentSize:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf)), parentSize=(width = 375, height = +Inf)) at ASDisplayNode.mm:1067:22
    frame #37: 0x00000001033a791c AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd88000, _cmd="layoutThatFits:parentSize:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf)), parentSize=(width = 375, height = +Inf)) layoutThatFits:parentSize:](ASSizeRange, CGSize) at ASDisplayNode+Layout.mm:109:14
    frame #38: 0x00000001033a7224 AsyncDisplayKit`::-[ASDisplayNode(self=0x000000010dd88000, _cmd="layoutThatFits:", constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf))) layoutThatFits:](ASSizeRange) at ASDisplayNode+Layout.mm:85:10
    frame #39: 0x000000010338fc40 AsyncDisplayKit`::-[ASDataController _layoutNode:withConstrainedSize:](self=0x00000002837ceee0, _cmd="_layoutNode:withConstrainedSize:", node=0x000000010dd88000, constrainedSize=(min = (width = 375, height = 0), max = (width = 375, height = +Inf))) at ASDataController.mm:191:16
    frame #40: 0x000000010338f824 AsyncDisplayKit`::__47-[ASDataController _allocateNodesFromElements:]_block_invoke(.block_descriptor=0x0000000281ec7740, i=16) at ASDataController.mm:171:9
    frame #41: 0x00000001033a0970 AsyncDisplayKit`::__ASDispatchApply_block_invoke(.block_descriptor=0x0000000281ec6140) at ASDispatch.mm:36:9
    frame #42: 0x000000010d44de1c libdispatch.dylib`_dispatch_call_block_and_release + 32
    frame #43: 0x000000010d44f27c libdispatch.dylib`_dispatch_client_callout + 20
    frame #44: 0x000000010d460e8c libdispatch.dylib`_dispatch_root_queue_drain + 1360
    frame #45: 0x000000010d46140c libdispatch.dylib`_dispatch_worker_thread2 + 144
    frame #46: 0x00000001addeba54 libsystem_pthread.dylib`_pthread_wqthread + 216
  thread #51, name = 'AVAudioSession Notify Thread'
    frame #0: 0x00000001adea8c04 libsystem_kernel.dylib`mach_msg_trap + 8
    frame #1: 0x00000001adea8020 libsystem_kernel.dylib`mach_msg + 76
    frame #2: 0x00000001ae05aaa8 CoreFoundation`__CFRunLoopServiceMachPort + 220
    frame #3: 0x00000001ae055940 CoreFoundation`__CFRunLoopRun + 1428
    frame #4: 0x00000001ae055084 CoreFoundation`CFRunLoopRunSpecific + 480
    frame #5: 0x00000001bafaaf70 AVFAudio`GenericRunLoopThread::Entry(void*) + 160
    frame #6: 0x00000001baffc1fc AVFAudio`CAPThread::Entry(CAPThread*) + 208
    frame #7: 0x00000001adde9d50 libsystem_pthread.dylib`_pthread_start + 128

@muukii
Copy link
Contributor Author

muukii commented Nov 23, 2019

@rahul-malik

Hi, I'm sorry to hurry.
Is there any progress?

@jparise
Copy link
Member

jparise commented Nov 23, 2019

#1732 is the proposed fix for this issue.

@muukii
Copy link
Contributor Author

muukii commented Nov 24, 2019

@jparise wow, thank you! I'll check!

ernestmama pushed a commit that referenced this issue Nov 25, 2019
* fix tintColor dead lock

update to use scoped lock

* pull other accessor out of the scoped lock

* fix ASTextNode
@ernestmama
Copy link
Contributor

Change is merged

@PatrickSCLin
Copy link

a quick question, when would this fixes be shipped with official release build ?
I might have same issue with this problem too, or which branch is stable to use ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants