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

Fix CGSPrivate (again) #2150

Merged
merged 2 commits into from Nov 7, 2015
Merged

Fix CGSPrivate (again) #2150

merged 2 commits into from Nov 7, 2015

Conversation

tiennou
Copy link
Member

@tiennou tiennou commented Nov 7, 2015

I've did it again. In my eagerness to silence warnings, I broke CGSPrivate.

I was trying to fix the Cube issues (since @skurfer was kinda expecting that from #2144) and noticed a hard crash (the same as #1811). So this one stops the crash, but the animation is still horrible (here I can see it jump down (topscreen/topwindow distance seem to become bottomscreen/bottomwindow) and turn to some invisible window side before getting a hold of itself...

I'll try to pinpoint what's going wrong with it, but I have no clue whatsoever about what. is. going. on.

I'll merge that ASAP because it's a quick fix. Just wanted a heads up to you guys.

tiennou added a commit that referenced this issue Nov 7, 2015
@tiennou tiennou merged commit 1c097d5 into master Nov 7, 2015
1 of 2 checks passed
@tiennou tiennou deleted the t/fix-cgsprivate branch Nov 7, 2015
skurfer added a commit that referenced this issue Nov 9, 2015
@skurfer
Copy link
Member

@skurfer skurfer commented Nov 9, 2015

OK, didn’t have a chance to look at this until now and didn’t catch the insta-merge. No problem with it, but you should probably update the release notes when doing this in case we miss it.

@tiennou
Copy link
Member Author

@tiennou tiennou commented Nov 9, 2015

You're right. I didn't actually think it was worth mentioning an unreleased bug fix ;-).

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Nov 10, 2015

Sorry I've been off the radar.
I've tried again and again to fiddle with CGSPrivate but it's always come
back to haunt me, hence why it's never been changed!
Hopefully you've got something working now... other places to check to make
sure they work are:

You're right. I didn't actually think it was worth mentioning an
unreleased bug fix ;-).


Reply to this email directly or view it on GitHub
#2150 (comment)
.

@skurfer
Copy link
Member

@skurfer skurfer commented Nov 10, 2015

Setup Assistant and built-in notifier appear to be working, though I am periodically seeing this in the Console.

2015/11/10 9:00:05.308 AM Quicksilver[3870]: void CGSUpdateManager::log() const: conn 0x29127 token 0x35fffffffffd807
2015/11/10 9:00:05.311 AM Quicksilver[3870]: Backtrace (at 306263):
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  0   CoreGraphics                        0x00007fff8bbab7c0 CGSDisableUpdateToken + 155
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  1   AppKit                              0x00007fff93ce831f ___disable_updates_sync_block_invoke_2 + 17
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  2   libdispatch.dylib                   0x00007fff924803c3 _dispatch_client_callout + 8
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  3   libdispatch.dylib                   0x00007fff924819aa _dispatch_barrier_sync_f_invoke + 74
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  4   AppKit                              0x00007fff93ce81ed NSCGSDisableUpdates + 1162
2015/11/10 9:00:05.311 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  5   AppKit                              0x00007fff93ce7c6e NSCGSTransactionRunPreCommitActionsForOrder_ + 156
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  6   AppKit                              0x00007fff93ce7bb5 NSCGSTransactionRunPreCommitActions_ + 21
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  7   AppKit                              0x00007fff93cc9cbe -[_NSCGSTransaction addActionWithOrder:usingBlock:] + 225
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  8   AppKit                              0x00007fff93cc9bcd NSCGSTransactionAddAction + 68
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  9   AppKit                              0x00007fff93cc9ff4 NSCGSWindowMark_ + 263
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  10  AppKit                              0x00007fff93cc9e5a -[_NSCGSWindow setFrame:] + 369
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  11  AppKit                              0x00007fff93d5422d _NXPlaceWindow + 153
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  12  AppKit                              0x00007fff93c56540 -[NSWindow _setFrame:updateBorderViewSize:] + 897
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  13  AppKit                              0x00007fff93c6f03d -[NSWindow _oldPlaceWindow:] + 1075
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  14  AppKit                              0x00007fff93c6e426 -[NSWindow _setFrameCommon:display:stashSize:] + 2719
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  15  AppKit                              0x00007fff93c6d979 -[NSWindow _setFrame:display:allowImplicitAnimation:stashSize:] + 222
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  16  AppKit                              0x00007fff93c6d894 -[NSWindow setFrame:display:] + 67
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  17  AppKit                              0x00007fff93d8e195 -[NSWindow setFrame:display:animate:] + 147
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  18  Nostromo                            0x000000011440c603 Nostromo + 9731
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  19  QSInterface                         0x000000010e6e4775 -[QSResizingInterfaceController adjustWindow:] + 320
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  20  QSEffects                           0x000000010e60c2a8 -[QSWindow makeFirstResponder:] + 241
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  21  QSInterface                         0x000000010e6d9942 -[QSInterfaceController showArray:withDirectObject:] + 267
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  22  Core Support                        0x0000000113d24e79 objc_unretainedPointer + 76656
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  23  QSCore                              0x000000010e67705d -[QSAction performOnDirectObject:indirectObject:] + 1144
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  24  QSCore                              0x000000010e62f570 -[QSCommand execute] + 299
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  25  QSCore                              0x000000010e66c94f __20-[QSTrigger execute]_block_invoke + 33
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  26  libdispatch.dylib                   0x00007fff9248b8f5 _dispatch_call_block_and_release + 12
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  27  libdispatch.dylib                   0x00007fff924803c3 _dispatch_client_callout + 8
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  28  libdispatch.dylib                   0x00007fff92484253 _dispatch_root_queue_drain + 1890
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  29  libdispatch.dylib                   0x00007fff92483ab8 _dispatch_worker_thread3 + 91
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  30  libsystem_pthread.dylib             0x00007fff99cb74f2 _pthread_wqthread + 1129
2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  31  libsystem_pthread.dylib             0x00007fff99cb5375 start_wqthread + 13
2015/11/10 9:00:14.276 AM Quicksilver[3870]: CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.

Still trying to track down exactly what triggers it.

@tiennou
Copy link
Member Author

@tiennou tiennou commented Nov 10, 2015

Non-main thread access to AppKit ? I chalked it up to "not this" because I had already seen it ;-).

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Nov 12, 2015

Is that just with Nostromo, or other interfaces as well? Maybe try running QS with a debug-built version of Nostromo so you can see exactly where the call in the Nostromo plugin is

2015/11/10 9:00:05.312 AM Quicksilver[3870]: void CGSUpdateManager::log() const:  18  Nostromo                            0x000000011440c603 Nostromo + 9731

@tiennou
Copy link
Member Author

@tiennou tiennou commented Nov 12, 2015

The hidden Nostromo call may (or may not) be expandWindow:. I was running Bezel and saw that too so I don't think it's interface-specific (I would say it's resizing-interface-specific, but there might be other symptoms). The issue lies here (from @skurfer stack) :

19 -[QSResizingInterfaceController adjustWindow:] + 320
20 -[QSWindow makeFirstResponder:] + 241
21 -[QSInterfaceController showArray:withDirectObject:] + 267

One of there should be wrapped in a QSGCDMainAsync (QSWindow looks half-way decent to me). By the time this thread finishes completes execution, it leaves its transaction behind, triggering the log. This is a consequence of the "always-threaded-execute" change we might have done, combined with dispatch queues and AppKit API all over the place.

@pjrobertson
Copy link
Member

@pjrobertson pjrobertson commented Nov 12, 2015

Cool, thanks for the explanation. I'm glad you understand what it means :D

On 12 November 2015 at 17:24, Etienne Samson notifications@github.com
wrote:

The hidden Nostromo call may (or may not) be expandWindow:. I was running
Bezel and saw that too so I don't think it's interface-specific (I would
say it's resizing-interface-specific, but there might be other symptoms).
The issue lies here (from @skurfer https://github.com/skurfer stack) :

19 -[QSResizingInterfaceController adjustWindow:] + 320
20 -[QSWindow makeFirstResponder:] + 241
21 -[QSInterfaceController showArray:withDirectObject:] + 267

One of there should be wrapped in a QSGCDMainAsync (QSWindow looks
half-way decent to me). By the time this thread finishes completes
execution, it leaves its transaction behind, triggering the log. This is a
consequence of the "always-threaded-execute" change we might have done,
combined with dispatch queues and AppKit API all over the place.


Reply to this email directly or view it on GitHub
#2150 (comment)
.

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

Successfully merging this pull request may close these issues.

None yet

3 participants