chucker / Mastonaut

Simple, elegant, and native Mastodon client for Mac.
GNU General Public License v3.0
116 stars 6 forks source link

Selecting 'Crash' on error does not quit application, leaves it in unknown state #63

Open sindarina opened 1 year ago

sindarina commented 1 year ago

See attached screenshot; when I select 'Crash' as the option, the application doesn't actually quit, so I wonder if you are actually getting the crash report? It also leaves the application in a state that isn't fully operable, but not in a visible way, which means that you essentially need to quit the application entirely to reset it to a working order.

This particular error happens a lot, but not always, when I start the application, open a second column for Notifications (via the button in the top-right corner), and then try to add a third for the Local timeline. It seems to happen less often if I wait a bit between each action, so it may be a timing issue?

Mastonaut 1.4.1 on macOS Monterey 12.6.1 (21G217), same problem also occurred with the 1.4 release. Appearance is manually set to 'Dark', and the system default is 'Light'. I don't think this occurred with the 1.3 original that's still on the App Store, so that might be related somehow?

Screenshot 2022-12-03 at 19 18 48

chucker commented 1 year ago

the application doesn't actually quit, so I wonder if you are actually getting the crash report

For what it’s worth, I don’t think Apple collects crash reports for me (but I’m not 110% sure on that); I think they only do that for App Store apps. Instead, you’ll have to copy the entire text in here. I can then use a tool like https://github.com/inket/MacSymbolicator to get additional info. (Basically, to trace those lines that say “Mastonaut” back to the pieces of code that were running.)

sindarina commented 1 year ago

Will try to reproduce, and then post full text.

sindarina commented 1 year ago

Here we go;

Exception Name: NSInternalInconsistencyException
Description: Invalid parameter not satisfying: fabs(point.y) <= NSVIEW_GEOMETRY_LIMIT
User Info: {
    NSAssertFile = "NSView.m";
    NSAssertLine = 694;
}

0   CoreFoundation                      0x00007ff80fc49773 __exceptionPreprocess + 242
1   libobjc.A.dylib                     0x00007ff80f9a9bc3 objc_exception_throw + 48
2   Foundation                          0x00007ff810b36a23 -[NSMutableDictionary(NSMutableDictionary) initWithContentsOfFile:] + 0
3   AppKit                              0x00007ff812e6d99b _NSViewClampPointToLimits + 224
4   AppKit                              0x00007ff81263ea54 -[NSView setFrameOrigin:] + 215
5   AppKit                              0x00007ff812648e08 -[NSView setFrame:] + 375
6   AppKit                              0x00007ff812699a27 -[NSScrollView tile] + 981
7   AppKit                              0x00007ff812699635 -[NSScrollView _tileWithoutRecursing] + 35
8   AppKit                              0x00007ff8127d8753 -[NSScrollView setContentView:] + 303
9   PullRefreshableScrollView           0x0000000104d5a4f1 PullRefreshableScrollView + 29937
10  PullRefreshableScrollView           0x0000000104d5a455 PullRefreshableScrollView + 29781
11  PullRefreshableScrollView           0x0000000104d5a32b PullRefreshableScrollView + 29483
12  AppKit                              0x00007ff8126787ff -[NSClipView setDrawsBackground:] + 134
13  AppKit                              0x00007ff812685947 -[NSClipView initWithCoder:] + 312
14  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
15  UIFoundation                        0x00007ff8134f37a5 UINibDecoderDecodeObjectForValue + 1249
16  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
17  AppKit                              0x00007ff812612fcc -[NSView initWithCoder:] + 1666
18  AppKit                              0x00007ff8126841c6 -[NSScrollView initWithCoder:] + 59
19  PullRefreshableScrollView           0x0000000104d5a85f PullRefreshableScrollView + 30815
20  PullRefreshableScrollView           0x0000000104d5a89e PullRefreshableScrollView + 30878
21  AppKit                              0x00007ff812660ed0 -[NSClassSwapper initWithCoder:] + 1143
22  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
23  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
24  AppKit                              0x00007ff8125da9b7 -[NSNibConnector initWithCoder:] + 97
25  AppKit                              0x00007ff8125da8f2 -[NSNibOutletConnector initWithCoder:] + 404
26  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
27  UIFoundation                        0x00007ff8134f37a5 UINibDecoderDecodeObjectForValue + 1249
28  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
29  AppKit                              0x00007ff8125d96d8 -[NSIBObjectData initWithCoder:] + 170
30  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
31  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
32  AppKit                              0x00007ff81265fad2 -[NSNib _instantiateNibWithExternalNameTable:options:] + 526
33  AppKit                              0x00007ff81265f7cf -[NSNib _instantiateWithOwner:options:topLevelObjects:] + 143
34  AppKit                              0x00007ff81265f048 -[NSViewController loadView] + 335
35  AppKit                              0x00007ff81265ed99 -[NSViewController _loadViewIfRequired] + 72
36  AppKit                              0x00007ff81265ed16 -[NSViewController view] + 23
37  Mastonaut                           0x00000001049e51c0 Mastonaut + 205248
38  Mastonaut                           0x00000001049e6f6b Mastonaut + 212843
39  Mastonaut                           0x0000000104a9481c Mastonaut + 923676
40  Mastonaut                           0x0000000104a94858 Mastonaut + 923736
41  AppKit                              0x00007ff8126211ab +[NSAnimationContext runAnimationGroup:] + 55
42  Mastonaut                           0x00000001049e5015 Mastonaut + 204821
43  Mastonaut                           0x0000000104afe769 Mastonaut + 1357673
44  Mastonaut                           0x0000000104afe972 Mastonaut + 1358194
45  Mastonaut                           0x0000000104af9f6f Mastonaut + 1339247
46  Mastonaut                           0x0000000104afa180 Mastonaut + 1339776
47  AppKit                              0x00007ff81280a0ce -[NSApplication(NSResponder) sendAction:to:from:] + 288
48  AppKit                              0x00007ff8128fec50 -[NSMenuItem _corePerformAction] + 413
49  AppKit                              0x00007ff8128fe972 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 95
50  AppKit                              0x00007ff8129492bf -[NSMenu performActionForItemAtIndex:] + 113
51  AppKit                              0x00007ff812949245 -[NSMenu _internalPerformActionForItemAtIndex:] + 82
52  AppKit                              0x00007ff81294908c -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 101
53  AppKit                              0x00007ff8128e3222 NSSLMMenuEventHandler + 1074
54  HIToolbox                           0x00007ff81885534d _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1365
55  HIToolbox                           0x00007ff81885479c _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 333
56  HIToolbox                           0x00007ff8188693a9 SendEventToEventTarget + 39
57  HIToolbox                           0x00007ff8188c72e5 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 361
58  HIToolbox                           0x00007ff8188ec457 SendMenuCommandWithContextAndModifiers + 46
59  HIToolbox                           0x00007ff8188ec405 SendMenuItemSelectedEvent + 344
60  HIToolbox                           0x00007ff8188ec250 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 96
61  HIToolbox                           0x00007ff8189fb9ac _ZL19PopUpMenuSelectCoreP8MenuData5PointdS1_tjjPK4RecttjS4_S4_PK14__CFDictionaryPK10__CFStringPP13OpaqueMenuRefPt + 2105
62  HIToolbox                           0x00007ff8189fac98 _ZL26_HandlePopUpMenuSelection8P13OpaqueMenuRefP14OpaqueEventRefj5PointtjjPK4RecttS6_S6_PK14__CFDictionaryPK10__CFStringPS0_Pt + 410
63  HIToolbox                           0x00007ff8188cedd5 _HandlePopUpMenuSelectionWithDictionary + 329
64  AppKit                              0x00007ff812a9da7a SLMPerformPopUpCarbonMenu + 2217
65  AppKit                              0x00007ff812942969 _NSSLMPopUpCarbonMenu3 + 1125
66  AppKit                              0x00007ff8129d9e3d -[NSCarbonMenuImpl _popUpContextMenu:withEvent:forView:withFont:] + 222
67  AppKit                              0x00007ff8129d9cb5 -[NSMenu _popUpContextMenu:withEvent:forView:withFont:] + 226
68  Mastonaut                           0x0000000104afa0a1 Mastonaut + 1339553
69  Mastonaut                           0x0000000104afa180 Mastonaut + 1339776
70  AppKit                              0x00007ff81280a0ce -[NSApplication(NSResponder) sendAction:to:from:] + 288
71  AppKit                              0x00007ff812809f74 -[NSControl sendAction:to:] + 86
72  AppKit                              0x00007ff812809ea6 __26-[NSCell _sendActionFrom:]_block_invoke + 131
73  AppKit                              0x00007ff812809daf -[NSCell _sendActionFrom:] + 171
74  AppKit                              0x00007ff812904b11 -[NSSegmentedCell _sendActionFrom:] + 161
75  AppKit                              0x00007ff812806b6f NSControlTrackMouse + 1813
76  AppKit                              0x00007ff812806436 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 121
77  AppKit                              0x00007ff812904245 -[NSSegmentedCell trackMouse:inRect:ofView:untilMouseUp:] + 712
78  AppKit                              0x00007ff8128056d6 -[NSControl mouseDown:] + 678
79  AppKit                              0x00007ff812803bc1 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 4859
80  AppKit                              0x00007ff812777d7e -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2582
81  AppKit                              0x00007ff81277714e -[NSWindow(NSEventRouting) sendEvent:] + 352
82  AppKit                              0x00007ff812775524 -[NSApplication(NSEvent) sendEvent:] + 352
83  AppKit                              0x00007ff812a2e18b -[NSApplication _handleEvent:] + 65
84  AppKit                              0x00007ff8125f6d3e -[NSApplication run] + 623
85  AppKit                              0x00007ff8125cac97 NSApplicationMain + 817
86  Mastonaut                           0x00000001049bc939 Mastonaut + 39225
87  dyld                                0x0000000109f9c52e start + 462

It does seem to be fairly random. Hope this helps!

sindarina commented 1 year ago

NSAssertLine = 694; seems to always be the same, though.

chucker commented 1 year ago

Interesting. Likely a bug in https://github.com/deicoon/PullRefreshableScrollView; this getter probably gets called too soon: https://github.com/deicoon/PullRefreshableScrollView/blob/639e37e811c50cf39264f125e6df12eeec35f0e4/PullRefreshableScrollView/PullRefreshableScrollView.swift#L349

Not sure yet how to handle that.

@sindarina I don't suppose you're using a trackpad and/or magic mouse?

chucker commented 1 year ago

(Also looks similar to https://github.com/utmapp/UTM/issues/1203, but that particular fix doesn't seem to apply. My guess is point.y is zero or negative, for some reason.)

sindarina commented 1 year ago

@sindarina I don't suppose you're using a trackpad and/or magic mouse?

No. 21" Intel iMac with scaled up display resolution, and a third-party PC keyboard and mouse.

sindarina commented 1 year ago

Just had this pop up again, but this time while double-clicking a post to view the entire thread.

Exception Name: NSInternalInconsistencyException
Description: Invalid parameter not satisfying: fabs(point.y) <= NSVIEW_GEOMETRY_LIMIT
User Info: {
    NSAssertFile = "NSView.m";
    NSAssertLine = 694;
}

0   CoreFoundation                      0x00007ff80fc49773 __exceptionPreprocess + 242
1   libobjc.A.dylib                     0x00007ff80f9a9bc3 objc_exception_throw + 48
2   Foundation                          0x00007ff810b36a23 -[NSMutableDictionary(NSMutableDictionary) initWithContentsOfFile:] + 0
3   AppKit                              0x00007ff812e6d99b _NSViewClampPointToLimits + 224
4   AppKit                              0x00007ff81263ea54 -[NSView setFrameOrigin:] + 215
5   AppKit                              0x00007ff812648e08 -[NSView setFrame:] + 375
6   AppKit                              0x00007ff812699a27 -[NSScrollView tile] + 981
7   AppKit                              0x00007ff812699635 -[NSScrollView _tileWithoutRecursing] + 35
8   AppKit                              0x00007ff8127d8753 -[NSScrollView setContentView:] + 303
9   PullRefreshableScrollView           0x000000010665a4f1 PullRefreshableScrollView + 29937
10  PullRefreshableScrollView           0x000000010665a455 PullRefreshableScrollView + 29781
11  PullRefreshableScrollView           0x000000010665a32b PullRefreshableScrollView + 29483
12  AppKit                              0x00007ff8126787ff -[NSClipView setDrawsBackground:] + 134
13  AppKit                              0x00007ff812685947 -[NSClipView initWithCoder:] + 312
14  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
15  UIFoundation                        0x00007ff8134f37a5 UINibDecoderDecodeObjectForValue + 1249
16  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
17  AppKit                              0x00007ff812612fcc -[NSView initWithCoder:] + 1666
18  AppKit                              0x00007ff8126841c6 -[NSScrollView initWithCoder:] + 59
19  PullRefreshableScrollView           0x000000010665a85f PullRefreshableScrollView + 30815
20  PullRefreshableScrollView           0x000000010665a89e PullRefreshableScrollView + 30878
21  AppKit                              0x00007ff812660ed0 -[NSClassSwapper initWithCoder:] + 1143
22  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
23  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
24  AppKit                              0x00007ff8125da9b7 -[NSNibConnector initWithCoder:] + 97
25  AppKit                              0x00007ff8125da8f2 -[NSNibOutletConnector initWithCoder:] + 404
26  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
27  UIFoundation                        0x00007ff8134f37a5 UINibDecoderDecodeObjectForValue + 1249
28  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
29  AppKit                              0x00007ff8125d96d8 -[NSIBObjectData initWithCoder:] + 170
30  UIFoundation                        0x00007ff8134f3583 UINibDecoderDecodeObjectForValue + 703
31  UIFoundation                        0x00007ff8134f32b7 -[UINibDecoder decodeObjectForKey:] + 253
32  AppKit                              0x00007ff81265fad2 -[NSNib _instantiateNibWithExternalNameTable:options:] + 526
33  AppKit                              0x00007ff81265f7cf -[NSNib _instantiateWithOwner:options:topLevelObjects:] + 143
34  AppKit                              0x00007ff81265f048 -[NSViewController loadView] + 335
35  AppKit                              0x00007ff81265ed99 -[NSViewController _loadViewIfRequired] + 72
36  AppKit                              0x00007ff81265ed16 -[NSViewController view] + 23
37  AppKit                              0x00007ff812690825 -[_NSSplitViewItemViewWrapper wrapView] + 91
38  AppKit                              0x00007ff81284818b -[NSSplitViewController _insertWrapperViewIntoSplitViewForSplitViewItem:atIndex:] + 74
39  AppKit                              0x00007ff81268d584 -[NSSplitViewController insertSplitViewItem:atIndex:] + 490
40  Mastonaut                           0x00000001063dea0e Mastonaut + 1227278
41  Mastonaut                           0x00000001063de2a7 Mastonaut + 1225383
42  Mastonaut                           0x00000001063bd308 Mastonaut + 1090312
43  Mastonaut                           0x00000001063bda1b Mastonaut + 1092123
44  Mastonaut                           0x000000010639481c Mastonaut + 923676
45  Mastonaut                           0x0000000106394858 Mastonaut + 923736
46  AppKit                              0x00007ff8126211ab +[NSAnimationContext runAnimationGroup:] + 55
47  Mastonaut                           0x00000001063bca38 Mastonaut + 1088056
48  Mastonaut                           0x000000010635048f Mastonaut + 644239
49  Mastonaut                           0x00000001063a365f Mastonaut + 984671
50  Mastonaut                           0x0000000106344825 Mastonaut + 596005
51  Mastonaut                           0x0000000106347db6 Mastonaut + 609718
52  AppKit                              0x00007ff81280a0ce -[NSApplication(NSResponder) sendAction:to:from:] + 288
53  AppKit                              0x00007ff812809f74 -[NSControl sendAction:to:] + 86
54  AppKit                              0x00007ff81294877a -[NSTableView _sendAction:to:row:column:] + 113
55  AppKit                              0x00007ff8129470fd -[NSTableView mouseDown:] + 6081
56  AppKit                              0x00007ff8127fd2e8 forwardMethod + 204
57  AppKit                              0x00007ff8127fd2e8 forwardMethod + 204
58  AppKit                              0x00007ff8127fd2e8 forwardMethod + 204
59  AppKit                              0x00007ff8127fd2e8 forwardMethod + 204
60  AppKit                              0x00007ff8127fd2e8 forwardMethod + 204
61  Mastonaut                           0x00000001062bba7f Mastonaut + 35455
62  AppKit                              0x00007ff812803bc1 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 4859
63  AppKit                              0x00007ff812777d7e -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2582
64  AppKit                              0x00007ff81277714e -[NSWindow(NSEventRouting) sendEvent:] + 352
65  AppKit                              0x00007ff812775524 -[NSApplication(NSEvent) sendEvent:] + 352
66  AppKit                              0x00007ff812a2e18b -[NSApplication _handleEvent:] + 65
67  AppKit                              0x00007ff8125f6d3e -[NSApplication run] + 623
68  AppKit                              0x00007ff8125cac97 NSApplicationMain + 817
69  Mastonaut                           0x00000001062bc939 Mastonaut + 39225
70  dyld                                0x0000000111daa52e start + 462
chucker commented 1 year ago

Could you please try out https://github.com/chucker/Mastonaut/releases/tag/app-1.6.1-beta1.

Does the issue still occur with it? If so, please try attaching the app with an attached console. For example, if the downloaded beta is in your Downloads folder, quit Mastonaut, open Terminal and type in:

~/Downloads/Mastonaut.app/Contents/MacOS/Mastonaut | grep superClipView

This should run the app as normal, but you should see messages like:

superClipView has frame (0.0, 0.0, 320.0, 660.0); valid: true

show up in Terminal. Please send me those if the issue occurs. (Those four numbers are a rectangle; I'm guessing one of them numbers is either negative or very large.)

sindarina commented 1 year ago

I downloaded 1.6.0 just now, and have not been able to reproduce the issue so far. Part of the reason for that is because I cannot seem to actually use it to post anything, because this version no longer accepts newlines as input? Neither Enter or Shift-Enter works for me, right now.

chucker commented 1 year ago

this version no longer accepts newlines as input?

Yeah, that’s a bug, sorry. Here’s two workarounds: https://github.com/chucker/Mastonaut/issues/103#issuecomment-1504185525