-
Notifications
You must be signed in to change notification settings - Fork 1.3k
ASDN::SharedLocker destructor crash #692
Description
Texture v2.5
Happens on iOS 10 and 11
We have nodes of varying sizes in an ASCollectionNode. Nodes are added/updated/deleted based on realm notifications.
Stack trace from Crashalytics
Crashed: com.apple.root.default-qos
0 libsystem_kernel.dylib 0x181725348 __pthread_kill + 8
1 libsystem_pthread.dylib 0x181839344 pthread_kill$VARIANT$mp + 396
2 libsystem_c.dylib 0x181694fb8 abort + 140
3 libsystem_c.dylib 0x181668a9c basename_r + 314
4 AsyncDisplayKit 0x1027f9cf0 ASDN::SharedLockerASDN::Mutex::~SharedLocker() (ASThread.h:149)
5 AsyncDisplayKit 0x10281690c -[ASTextKitContext initWithAttributedString:lineBreakMode:maximumNumberOfLines:exclusionPaths:constrainedSize:] (memory:4810)
6 AsyncDisplayKit 0x102867200 -[ASTextKitRenderer initWithTextKitAttributes:constrainedSize:] (ASTextKitRenderer.mm:69)
7 AsyncDisplayKit 0x1028cce0c rendererForAttributes(ASTextKitAttributes, CGSize) (ASTextNode.mm:120)
8 AsyncDisplayKit 0x1028cdcec -[ASTextNode _locked_rendererWithBounds:] (ASTextNode.mm:330)
9 AsyncDisplayKit 0x1028ce058 -[ASTextNode calculateSizeThatFits:] (ASTextNode.mm:384)
10 AsyncDisplayKit 0x102857c2c -[ASDisplayNode calculateLayoutThatFits:] (ASDisplayNode.mm:993)
11 AsyncDisplayKit 0x102857b0c -[ASDisplayNode calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASDisplayNode.mm:948)
12 AsyncDisplayKit 0x1028a3cd0 -[ASDisplayNode(ASLayoutElement) layoutThatFits:parentSize:] (ASDisplayNode+Layout.mm:85)
13 AsyncDisplayKit 0x10286ea88 crossChildLayout(ASStackLayoutSpecChild const&, ASStackLayoutSpecStyle const&, double, double, double, double, CGSize) (ASStackUnpositionedLayout.mm:73)
14 AsyncDisplayKit 0x10286e7bc invocation function for block in layoutItemsAlongUnconstrainedStackDimension(std::__1::vector<ASStackLayoutSpecItem, std::__1::allocator >&, ASStackLayoutSpecStyle const&, bool, ASSizeRange const&, CGSize, bool) (ASStackUnpositionedLayout.mm:697)
15 AsyncDisplayKit 0x10286e618 dispatchApplyIfNeeded(unsigned long, bool, void (unsigned long) block_pointer) (ASStackUnpositionedLayout.mm:91)
16 AsyncDisplayKit 0x10286d7e4 ASStackUnpositionedLayout::compute(std::__1::vector<ASStackLayoutSpecChild, std::__1::allocator > const&, ASStackLayoutSpecStyle const&, ASSizeRange const&, bool) (ASStackUnpositionedLayout.mm:644)
17 AsyncDisplayKit 0x1028ad544 -[ASStackLayoutSpec calculateLayoutThatFits:] (ASStackLayoutSpec.mm:156)
18 AsyncDisplayKit 0x10288e30c -[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASLayoutSpec.mm:87)
19 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
20 AsyncDisplayKit 0x10286ea88 crossChildLayout(ASStackLayoutSpecChild const&, ASStackLayoutSpecStyle const&, double, double, double, double, CGSize) (ASStackUnpositionedLayout.mm:73)
21 AsyncDisplayKit 0x10286e7bc invocation function for block in layoutItemsAlongUnconstrainedStackDimension(std::__1::vector<ASStackLayoutSpecItem, std::__1::allocator >&, ASStackLayoutSpecStyle const&, bool, ASSizeRange const&, CGSize, bool) (ASStackUnpositionedLayout.mm:697)
22 AsyncDisplayKit 0x10286e5c4 dispatchApplyIfNeeded(unsigned long, bool, void (unsigned long) block_pointer) (ASStackUnpositionedLayout.mm:85)
23 AsyncDisplayKit 0x10286d7e4 ASStackUnpositionedLayout::compute(std::__1::vector<ASStackLayoutSpecChild, std::__1::allocator > const&, ASStackLayoutSpecStyle const&, ASSizeRange const&, bool) (ASStackUnpositionedLayout.mm:644)
24 AsyncDisplayKit 0x1028ad544 -[ASStackLayoutSpec calculateLayoutThatFits:] (ASStackLayoutSpec.mm:156)
25 AsyncDisplayKit 0x10288e30c -[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASLayoutSpec.mm:87)
26 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
27 AsyncDisplayKit 0x10286ea88 crossChildLayout(ASStackLayoutSpecChild const&, ASStackLayoutSpecStyle const&, double, double, double, double, CGSize) (ASStackUnpositionedLayout.mm:73)
28 AsyncDisplayKit 0x10286e7bc invocation function for block in layoutItemsAlongUnconstrainedStackDimension(std::__1::vector<ASStackLayoutSpecItem, std::__1::allocator >&, ASStackLayoutSpecStyle const&, bool, ASSizeRange const&, CGSize, bool) (ASStackUnpositionedLayout.mm:697)
29 AsyncDisplayKit 0x10286e618 dispatchApplyIfNeeded(unsigned long, bool, void (unsigned long) block_pointer) (ASStackUnpositionedLayout.mm:91)
30 AsyncDisplayKit 0x10286d7e4 ASStackUnpositionedLayout::compute(std::__1::vector<ASStackLayoutSpecChild, std::__1::allocator > const&, ASStackLayoutSpecStyle const&, ASSizeRange const&, bool) (ASStackUnpositionedLayout.mm:644)
31 AsyncDisplayKit 0x1028ad544 -[ASStackLayoutSpec calculateLayoutThatFits:] (ASStackLayoutSpec.mm:156)
32 AsyncDisplayKit 0x10288e30c -[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASLayoutSpec.mm:87)
33 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
34 AsyncDisplayKit 0x10286ea88 crossChildLayout(ASStackLayoutSpecChild const&, ASStackLayoutSpecStyle const&, double, double, double, double, CGSize) (ASStackUnpositionedLayout.mm:73)
35 AsyncDisplayKit 0x10286f1c0 invocation function for block in flexLinesAlongStackDimension(std::__1::vector<ASStackUnpositionedLine, std::__1::allocator >&, ASStackLayoutSpecStyle const&, bool, ASSizeRange const&, CGSize, bool) (ASStackUnpositionedLayout.mm:624)
36 AsyncDisplayKit 0x10286e618 dispatchApplyIfNeeded(unsigned long, bool, void (unsigned long) block_pointer) (ASStackUnpositionedLayout.mm:91)
37 AsyncDisplayKit 0x10286dd64 ASStackUnpositionedLayout::compute(std::__1::vector<ASStackLayoutSpecChild, std::__1::allocator > const&, ASStackLayoutSpecStyle const&, ASSizeRange const&, bool) (functional:1860)
38 AsyncDisplayKit 0x1028ad544 -[ASStackLayoutSpec calculateLayoutThatFits:] (ASStackLayoutSpec.mm:156)
39 AsyncDisplayKit 0x10288e30c -[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASLayoutSpec.mm:87)
40 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
41 AsyncDisplayKit 0x102873964 -[ASInsetLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASInsetLayoutSpec.mm:110)
42 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
43 AsyncDisplayKit 0x10286ea88 crossChildLayout(ASStackLayoutSpecChild const&, ASStackLayoutSpecStyle const&, double, double, double, double, CGSize) (ASStackUnpositionedLayout.mm:73)
44 AsyncDisplayKit 0x10286e7bc invocation function for block in layoutItemsAlongUnconstrainedStackDimension(std::__1::vector<ASStackLayoutSpecItem, std::__1::allocator >&, ASStackLayoutSpecStyle const&, bool, ASSizeRange const&, CGSize, bool) (ASStackUnpositionedLayout.mm:697)
45 AsyncDisplayKit 0x10286e5c4 dispatchApplyIfNeeded(unsigned long, bool, void (unsigned long) block_pointer) (ASStackUnpositionedLayout.mm:85)
46 AsyncDisplayKit 0x10286d7e4 ASStackUnpositionedLayout::compute(std::__1::vector<ASStackLayoutSpecChild, std::__1::allocator > const&, ASStackLayoutSpecStyle const&, ASSizeRange const&, bool) (ASStackUnpositionedLayout.mm:644)
47 AsyncDisplayKit 0x1028ad544 -[ASStackLayoutSpec calculateLayoutThatFits:] (ASStackLayoutSpec.mm:156)
48 AsyncDisplayKit 0x10288e30c -[ASLayoutSpec calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASLayoutSpec.mm:87)
49 AsyncDisplayKit 0x10288e1a8 -[ASLayoutSpec layoutThatFits:parentSize:] (ASLayoutSpec.mm:87)
50 AsyncDisplayKit 0x102857d9c -[ASDisplayNode calculateLayoutThatFits:] (ASDisplayNode.mm:1043)
51 AsyncDisplayKit 0x102857b0c -[ASDisplayNode calculateLayoutThatFits:restrictedToSize:relativeToParentSize:] (ASDisplayNode.mm:948)
52 AsyncDisplayKit 0x1028a3cd0 -[ASDisplayNode(ASLayoutElement) layoutThatFits:parentSize:] (ASDisplayNode+Layout.mm:85)
53 AsyncDisplayKit 0x10283c244 -[ASDataController _layoutNode:withConstrainedSize:] (ASDataController.mm:191)
54 AsyncDisplayKit 0x10283c120 __58-[ASDataController _allocateNodesFromElements:completion:]_block_invoke (ASDataController.mm:176)
55 AsyncDisplayKit 0x1028ae6ec __ASDispatchApply_block_invoke (ASDispatch.m:31)
56 libdispatch.dylib 0x181591088 _dispatch_call_block_and_release + 24
57 libdispatch.dylib 0x181591048 _dispatch_client_callout + 16
58 libdispatch.dylib 0x181598160 _dispatch_queue_override_invoke$VARIANT$mp + 924
59 libdispatch.dylib 0x18159e1c8 _dispatch_root_queue_drain + 596
60 libdispatch.dylib 0x18159df10 _dispatch_worker_thread3 + 120
61 libsystem_pthread.dylib 0x181837120 _pthread_wqthread + 1268
62 libsystem_pthread.dylib 0x181836c20 start_wqthread + 4