I have a custom UIGestureRecognizerRepresentable that causes a crash. Only happens about once a week, and that’s with about a thousand times it gets invoked. But it’s persistent and annoying when it happens. The code looks like
func handleUIGestureRecognizerAction(_ recognizer: Recognizer, context: Context) {
let startLocation = context.converter.convert(globalPoint: recognizer.startLocation, to: coorinateSpace)
coorinateSpace is set in init and has crashed on .global, .local, and .named("foo")
The convert function gets caught in a AGGraphGetValue loop before finally failing. It has happened while attached to the debugger, but there is not any more information than is in the logs. I don’t even know why it would invoke AttributeGraph in the first place.
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x23aedd1d0 __pthread_kill + 8
1 libsystem_pthread.dylib 0x1eb0cf7dc pthread_kill + 268
2 libsystem_c.dylib 0x197a89c98 abort + 148
3 AttributeGraph 0x1befffef0 AG::precondition_failure(char const*, ...) + 216
4 AttributeGraph 0x1bf000f68 AG::Graph::input_value_ref_slow(AG::data::ptr<AG::Node>, AG::AttributeID, unsigned int, unsigned int, AGSwiftMetadata const*, unsigned char&, long) + 936
5 AttributeGraph 0x1beffb2a8 AGGraphGetValue + 232
6 SwiftUICore 0x19626eee8 specialized UnaryLayoutComputer.updateValue() + 92
7 SwiftUICore 0x196bdc9cc specialized implicit closure #1 in closure #1 in closure #1 in Attribute.init<A>(_:) + 24
8 AttributeGraph 0x1bf001914 AG::Graph::UpdateStack::update() + 496
9 AttributeGraph 0x1bf00152c AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) + 352
10 AttributeGraph 0x1bf000e68 AG::Graph::input_value_ref_slow(AG::data::ptr<AG::Node>, AG::AttributeID, unsigned int, unsigned int, AGSwiftMetadata const*, unsigned char&, long) + 680
11 AttributeGraph 0x1beffb2a8 AGGraphGetValue + 232
12 SwiftUICore 0x196287604 specialized UnaryChildGeometry.value.getter + 92
13 SwiftUICore 0x196a21bc0 specialized implicit closure #1 in closure #1 in closure #1 in Attribute.init<A>(_:) + 52
14 AttributeGraph 0x1bf001914 AG::Graph::UpdateStack::update() + 496
15 AttributeGraph 0x1bf00152c AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) + 352
16 AttributeGraph 0x1bf000e68 AG::Graph::input_value_ref_slow(AG::data::ptr<AG::Node>, AG::AttributeID, unsigned int, unsigned int, AGSwiftMetadata const*, unsigned char&, long) + 680
17 AttributeGraph 0x1beffb2a8 AGGraphGetValue + 232
18 SwiftUICore 0x196a21b28 specialized implicit closure #1 in closure #1 in closure #1 in Attribute.init<A>(_:) + 72
19 AttributeGraph 0x1bf001914 AG::Graph::UpdateStack::update() + 496
20 AttributeGraph 0x1bf00152c AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) + 352
21 AttributeGraph 0x1beffb560 AG::Graph::value_ref(AG::AttributeID, unsigned int, AGSwiftMetadata const*, unsigned char&) + 296
22 AttributeGraph 0x1beffb2f8 AGGraphGetValue + 312
23 AttributeGraph 0x1bf00206c AGGraphGetInputValue + 60
24 SwiftUICore 0x19626d0a8 GeometryProxy.transform.getter + 220
25 SwiftUICore 0x19699ce80 GeometryProxy.convert<A>(globalPoint:to:) + 76
26 SwiftUI 0x195ddf71c UIGestureRecognizerRepresentableCoordinateSpaceConverter.convert<A>(globalPoint:to:) + 76
27 myapp.debug.dylib 0x1033b3a30 MyAppDragGesture.handleUIGestureRecognizerAction(_:context:) + 1560