ViennaRSS / vienna-rss

Vienna is a free and open-source RSS/Atom newsreader for macOS.
https://www.vienna-rss.com
Apache License 2.0
1.85k stars 227 forks source link

Occasional UI redraw hanging on El Capitan #612

Closed andlabs closed 8 years ago

andlabs commented 8 years ago

I minimize Vienna and work on something else; when I restore it to check new articles, I sometimes find the window stays as if it was still minimized/not key. For example, the screenshot below:

Screenshot of bug

However, the program still "works": it will still respond to input accordingly. Scrolling the article list might redraw for a second before hanging completely, but clicking on an article will mark whatever article should be under the cursor as read/unread/flagged/etc. The menus and keyboard shortcuts still work, and I can quit Vienna successfully; any changes to article state are also saved. Any dialogs I want to open (such as the Preferences dialog), however, do not actually open. That is, only the redrawing of the Vienna window (and I assume other windows in the Vienna process) is affected.

This has happened a few times while the Vienna window is not minimized as well.

This does not seem to be time-related; it can happen regardless of how long Vienna is run for.

I have no idea what the trigger for this is. Since this is not a program crash, I have no crash log.

MacBook Pro (13-inch, Mid 2012) OS X El Capitan (Version 10.11.4, Build 15E65) (this happened with other subversions of El Capitan as well) Vienna Version 3.1.2 :86bfc3d: (I think this may have happened with other 3.1s)

Thanks!

barijaona commented 8 years ago

Do you have OpenReader feeds ? MIght be similar to what was noticed by @hopkinsje at the end of issue #590. I will submit a fix.

andlabs commented 8 years ago

I don't think so; all my feeds are from RSS or Atom links, or from the <link rel="alternate"> text on page headers (such as Tumblr accounts). These were imported from an .opml produced by Liferea when I moved to OS X. That being said, how can I check to see if that is the case or not?

josh64x2 commented 8 years ago

@andlabs how much RAM do you have installed ?

andlabs commented 8 years ago

8GB, the maximum Apple supports for my specific model of MacBook Pro (MacBookPro9,2 A1278)

barijaona commented 8 years ago

It would be interesting to have a look at Console log when this appears. You can apply a "Vienna" filter to the output.

andlabs commented 8 years ago
4/3/16 1:46:50.590 AM Vienna[715]: NSConcreteMutableAttributedString initWithString:attributes:: nil value
4/3/16 1:46:50.593 AM Vienna[715]: (
    0   CoreFoundation                      0x00007fff992db4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff979f573c objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff993424bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff96dd0bbb -[NSConcreteMutableAttributedString initWithString:attributes:] + 140
    4   Vienna                              0x000000010af741c0 Vienna + 352704
    5   AppKit                              0x00007fff9244cad9 -[NSTableView preparedCellAtColumn:row:] + 424
    6   AppKit                              0x00007fff9244c7e4 -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 50
    7   AppKit                              0x00007fff9244c3a1 -[NSTableView drawRow:clipRect:] + 1678
    8   AppKit                              0x00007fff9244bb2b -[NSTableView drawRowIndexes:clipRect:] + 919
    9   AppKit                              0x00007fff9234b6f7 -[NSTableView drawRect:] + 1480
    10  AppKit                              0x00007fff923318c2 -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:] + 1331
    11  AppKit                              0x00007fff9233125a __46-[NSView(NSLayerKitGlue) drawLayer:inContext:]_block_invoke + 242
    12  AppKit                              0x00007fff92330db3 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 2403
    13  AppKit                              0x00007fff92330445 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 108
    14  QuartzCore                          0x00007fff98b33b19 CABackingStoreUpdate_ + 3494
    15  QuartzCore                          0x00007fff98b32d6d ___ZN2CA5Layer8display_Ev_block_invoke + 59
    16  QuartzCore                          0x00007fff98b32759 _ZN2CA5Layer8display_Ev + 1565
    17  AppKit                              0x00007fff9232f41c _NSBackingLayerDisplay + 641
    18  AppKit                              0x00007fff9232197c -[_NSViewBackingLayer display] + 818
    19  QuartzCore                          0x00007fff98b244a5 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 603
    20  QuartzCore                          0x00007fff98b23fcd _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
    21  QuartzCore                          0x00007fff98b234a1 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
    22  QuartzCore                          0x00007fff98b230ec _ZN2CA11Transaction6commitEv + 508
    23  QuartzCore                          0x00007fff98b2e977 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 71
    24  CoreFoundation                      0x00007fff99270067 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    25  CoreFoundation                      0x00007fff9926ffd7 __CFRunLoopDoObservers + 391
    26  CoreFoundation                      0x00007fff9924eef8 CFRunLoopRunSpecific + 328
    27  HIToolbox                           0x00007fff970db935 RunCurrentEventLoopInMode + 235
    28  HIToolbox                           0x00007fff970db76f ReceiveNextEventCommon + 432
    29  HIToolbox                           0x00007fff970db5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
    30  AppKit                              0x00007fff921c8efa _DPSNextEvent + 1067
    31  AppKit                              0x00007fff921c832a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    32  AppKit                              0x00007fff921bce84 -[NSApplication run] + 682
    33  AppKit                              0x00007fff9218646c NSApplicationMain + 1176
    34  libdyld.dylib                       0x00007fff97f385ad start + 1
    35  ???                                 0x0000000000000001 0x0 + 1
)
4/3/16 3:14:34.516 AM WindowServer[182]: disable_update_timeout: UI updates were forcibly disabled by application "Vienna" for over 1.00 seconds. Server has re-enabled them.
4/3/16 3:16:02.279 AM Vienna[1378]: NSConcreteMutableAttributedString initWithString:attributes:: nil value
4/3/16 3:16:02.451 AM Vienna[1378]: (
    0   CoreFoundation                      0x00007fff992db4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff979f573c objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff993424bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff96dd0bbb -[NSConcreteMutableAttributedString initWithString:attributes:] + 140
    4   Vienna                              0x000000010e7a21c0 Vienna + 352704
    5   AppKit                              0x00007fff9244cad9 -[NSTableView preparedCellAtColumn:row:] + 424
    6   AppKit                              0x00007fff9244c7e4 -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 50
    7   AppKit                              0x00007fff9244c3a1 -[NSTableView drawRow:clipRect:] + 1678
    8   AppKit                              0x00007fff9244bb2b -[NSTableView drawRowIndexes:clipRect:] + 919
    9   AppKit                              0x00007fff9234b6f7 -[NSTableView drawRect:] + 1480
    10  AppKit                              0x00007fff923318c2 -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:] + 1331
    11  AppKit                              0x00007fff9233125a __46-[NSView(NSLayerKitGlue) drawLayer:inContext:]_block_invoke + 242
    12  AppKit                              0x00007fff92330db3 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 2403
    13  AppKit                              0x00007fff92330445 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 108
    14  AppKit                              0x00007fff9247962c -[_NSBackingLayerContents drawLayer:inContext:] + 157
    15  QuartzCore                          0x00007fff98b35173 -[CALayer drawInContext:] + 257
    16  AppKit                              0x00007fff92479102 -[_NSTiledLayer drawTile:inContext:] + 625
    17  AppKit                              0x00007fff92478e33 -[_NSTiledLayerContents drawLayer:inContext:] + 185
    18  QuartzCore                          0x00007fff98b35173 -[CALayer drawInContext:] + 257
    19  AppKit                              0x00007fff92478d71 -[NSTileLayer drawInContext:] + 169
    20  QuartzCore                          0x00007fff98b33b19 CABackingStoreUpdate_ + 3494
    21  QuartzCore                          0x00007fff98b32d6d ___ZN2CA5Layer8display_Ev_block_invoke + 59
    22  QuartzCore                          0x00007fff98b32759 _ZN2CA5Layer8display_Ev + 1565
    23  AppKit                              0x00007fff92478c88 -[NSTileLayer display] + 119
    24  AppKit                              0x00007fff92b931f0 -[_NSTiledLayerContents update:shouldCallPrepareContent:] + 7131
    25  AppKit                              0x00007fff923f2c04 -[_NSTiledLayer display] + 368
    26  QuartzCore                          0x00007fff98b244a5 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 603
    27  QuartzCore                          0x00007fff98b23fcd _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
    28  QuartzCore                          0x00007fff98b234a1 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
    29  QuartzCore                          0x00007fff98b230ec _ZN2CA11Transaction6commitEv + 508
    30  QuartzCore                          0x00007fff98b2e977 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 71
    31  CoreFoundation                      0x00007fff99270067 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    32  CoreFoundation                      0x00007fff9926ffd7 __CFRunLoopDoObservers + 391
    33  CoreFoundation                      0x00007fff9924eef8 CFRunLoopRunSpecific + 328
    34  HIToolbox                           0x00007fff970db935 RunCurrentEventLoopInMode + 235
    35  HIToolbox                           0x00007fff970db76f ReceiveNextEventCommon + 432
    36  HIToolbox                           0x00007fff970db5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
    37  AppKit                              0x00007fff921c8efa _DPSNextEvent + 1067
    38  AppKit                              0x00007fff921c832a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    39  AppKit                              0x00007fff921bce84 -[NSApplication run] + 682
    40  AppKit                              0x00007fff9218646c NSApplicationMain + 1176
    41  libdyld.dylib                       0x00007fff97f385ad start + 1
    42  ???                                 0x0000000000000001 0x0 + 1
)
4/3/16 3:17:31.000 AM kernel[0]: process Vienna[1378] thread 195813 caught burning CPU! It used more than 50% CPU (Actual recent usage: 52%) over 180 seconds. thread lifetime cpu usage 90.061884 seconds, (43.528033 user, 46.533851 system) ledger info: balance: 90000575253 credit: 90003301284 debit: 2726031 limit: 90000000000 (50%) period: 180000000000 time since last refill (ns): 171528492267 
4/3/16 3:18:01.446 AM spindump[1075]: Saved cpu_resource.diag report for Vienna version 3.1.2 :86bfc3d: (5804) to /Library/Logs/DiagnosticReports/Vienna_2016-04-03-031801_Pietros-MacBook-Pro.cpu_resource.diag
4/3/16 6:18:56.707 PM Vienna[1393]: Communications error: <OS_xpc_error: <error: 0x7fff76290b90> { count = 1, contents =
    "XPCErrorDescription" => <string: 0x7fff76290f40> { length = 22, contents = "Connection interrupted" }
}>
4/3/16 6:20:27.197 PM Vienna[1393]: NSConcreteMutableAttributedString initWithString:attributes:: nil value
4/3/16 6:20:27.297 PM Vienna[1393]: (
    0   CoreFoundation                      0x00007fff992db4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff979f573c objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff993424bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff96dd0bbb -[NSConcreteMutableAttributedString initWithString:attributes:] + 140
    4   Vienna                              0x000000010e5671c0 Vienna + 352704
    5   AppKit                              0x00007fff9244cad9 -[NSTableView preparedCellAtColumn:row:] + 424
    6   AppKit                              0x00007fff9244c7e4 -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 50
    7   AppKit                              0x00007fff9244c3a1 -[NSTableView drawRow:clipRect:] + 1678
    8   AppKit                              0x00007fff9244bb2b -[NSTableView drawRowIndexes:clipRect:] + 919
    9   AppKit                              0x00007fff9234b6f7 -[NSTableView drawRect:] + 1480
    10  AppKit                              0x00007fff923318c2 -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:] + 1331
    11  AppKit                              0x00007fff9233125a __46-[NSView(NSLayerKitGlue) drawLayer:inContext:]_block_invoke + 242
    12  AppKit                              0x00007fff92330db3 -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 2403
    13  AppKit                              0x00007fff92330445 -[NSView(NSLayerKitGlue) drawLayer:inContext:] + 108
    14  QuartzCore                          0x00007fff98b33b19 CABackingStoreUpdate_ + 3494
    15  QuartzCore                          0x00007fff98b32d6d ___ZN2CA5Layer8display_Ev_block_invoke + 59
    16  QuartzCore                          0x00007fff98b32759 _ZN2CA5Layer8display_Ev + 1565
    17  AppKit                              0x00007fff9232f41c _NSBackingLayerDisplay + 641
    18  AppKit                              0x00007fff9232197c -[_NSViewBackingLayer display] + 818
    19  QuartzCore                          0x00007fff98b244a5 _ZN2CA5Layer17display_if_neededEPNS_11TransactionE + 603
    20  QuartzCore                          0x00007fff98b23fcd _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 35
    21  QuartzCore                          0x00007fff98b234a1 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
    22  QuartzCore                          0x00007fff98b230ec _ZN2CA11Transaction6commitEv + 508
    23  QuartzCore                          0x00007fff98b2e977 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 71
    24  CoreFoundation                      0x00007fff99270067 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    25  CoreFoundation                      0x00007fff9926ffd7 __CFRunLoopDoObservers + 391
    26  CoreFoundation                      0x00007fff9924eef8 CFRunLoopRunSpecific + 328
    27  HIToolbox                           0x00007fff970db935 RunCurrentEventLoopInMode + 235
    28  HIToolbox                           0x00007fff970db76f ReceiveNextEventCommon + 432
    29  HIToolbox                           0x00007fff970db5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
    30  AppKit                              0x00007fff921c8efa _DPSNextEvent + 1067
    31  AppKit                              0x00007fff921c832a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    32  AppKit                              0x00007fff921bce84 -[NSApplication run] + 682
    33  AppKit                              0x00007fff9218646c NSApplicationMain + 1176
    34  libdyld.dylib                       0x00007fff97f385ad start + 1
    35  ???                                 0x0000000000000001 0x0 + 1
)
4/3/16 6:32:23.640 PM WindowServer[182]: disable_update_timeout: UI updates were forcibly disabled by application "Vienna" for over 1.00 seconds. Server has re-enabled them.
4/3/16 6:32:37.640 PM WindowServer[182]: disable_update_likely_unbalanced: UI updates still disabled by application "Vienna" after 15.00 seconds (server forcibly re-enabled them after 1.00 seconds). Likely an unbalanced disableUpdate call.
4/3/16 6:32:37.640 PM Vienna[1393]: void CGSUpdateManager::log() const: conn 0x10707 token 0x6d1fffffffa80b8d
4/3/16 6:32:37.776 PM Vienna[1393]: Backtrace (at 94127.9):
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  0   CoreGraphics                        0x00007fff92e0ab98 CGSDisableUpdateToken + 155
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  1   AppKit                              0x00007fff92314524 ___disable_updates_sync_block_invoke_2 + 17
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  2   libdispatch.dylib                   0x00007fff9918e40b _dispatch_client_callout + 8
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  3   libdispatch.dylib                   0x00007fff9918f9f2 _dispatch_barrier_sync_f_invoke + 74
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  4   AppKit                              0x00007fff923143f2 NSCGSDisableUpdates + 213
4/3/16 6:32:37.776 PM Vienna[1393]: void CGSUpdateManager::log() const:  5   AppKit                              0x00007fff92314228 NSCGSTransactionRunPreCommitActionsForOrder_ + 156
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  6   AppKit                              0x00007fff9231416f NSCGSTransactionRunPreCommitActions_ + 21
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  7   AppKit                              0x00007fff92ac2d84 -[_NSCGSTransaction synchronize] + 33
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  8   AppKit                              0x00007fff92ac2ff9 NSCGSTransactionSynchronize + 76
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  9   AppKit                              0x00007fff92a1324b NSCGSOnScreenWindowCountForConnectionID + 20
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  10  AppKit                              0x00007fff92a1328a +[NSCGSWindow(NSCGSWindowOrdering) onScreenWindowCountForConnectionID:] + 11
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  11  AppKit                              0x00007fff9235cf38 NSCountWindowsForContext + 34
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  12  AppKit                              0x00007fff921c50ba -[NSApplication _enumerateWindowsInOrder:usingBlock:] + 86
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  13  AppKit                              0x00007fff921c5025 -[NSApplication _findWindowInOrder:passingTest:] + 165
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  14  AppKit                              0x00007fff923ac8e4 -[NSApplication _bestKeyWindowCandidateOnScreen:] + 107
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  15  AppKit                              0x00007fff924e909a -[NSApplication _findKeyWindowConsideringSpacesWithOriginatingDisplayHint:isAppleEventPending:makeKey:] + 145
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  16  AppKit                              0x00007fff926217cf -[NSApplication(NSAppleEventHandling) _handleAEReopen:] + 256
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  17  AppKit                              0x00007fff921cd947 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 250
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  18  Foundation                          0x00007fff96d8f62d -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 290
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  19  Foundation                          0x00007fff96d8f4a7 _NSAppleEventManagerGenericHandler + 102
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  20  AE                                  0x00007fff90a49261 _Z20aeDispatchAppleEventPK6AEDescPS_jPh + 531
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  21  AE                                  0x00007fff90a48fe8 _ZL25dispatchEventAndSendReplyPK6AEDescPS_ + 31
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  22  AE                                  0x00007fff90a48f04 aeProcessAppleEvent + 288
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  23  HIToolbox                           0x00007fff970ebaf9 AEProcessAppleEvent + 55
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  24  AppKit                              0x00007fff921c9394 _DPSNextEvent + 2245
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  25  AppKit                              0x00007fff921c832a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  26  AppKit                              0x00007fff921bce84 -[NSApplication run] + 682
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  27  AppKit                              0x00007fff9218646c NSApplicationMain + 1176
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  28  libdyld.dylib                       0x00007fff97f385ad start + 1
4/3/16 6:32:37.777 PM Vienna[1393]: void CGSUpdateManager::log() const:  29  ???                                 0x0000000000000001 0x0 + 1

Hopefully this is sufficient...

barijaona commented 8 years ago

Commits b702cce588320bceb1b3af69437db093eae38f01 and ebcad89e60dd28e040ce7fdd83341db56ad897e9 should help.

andlabs commented 8 years ago

Yep, everything seems to be working well now. Thanks!