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

Catalog Sources disappear #893

Closed
iandol opened this issue May 16, 2012 · 7 comments
Closed

Catalog Sources disappear #893

iandol opened this issue May 16, 2012 · 7 comments

Comments

@iandol
Copy link

iandol commented May 16, 2012

This is fairly recent, but I've noticed with 3928 that when adding a filetype to a custom folder scanner (that may have been coincidental) that every catalog source disappears in the catalog prefs UI, even if QS can still use the catalog. Lion 10.7.4, console output is the following:

17/05/2012 00:10:16.416 Quicksilver: Fetching plugin data from http://qs0.qsapp.com/plugins/info.php?qsversion=14632&sids=com.blacktree.Quicksilver.QSEventTriggersPlugIn
17/05/2012 00:10:17.441 Quicksilver: Downloaded info for 98 plug-in(s) 
17/05/2012 00:10:17.453 Quicksilver: Quicksilver is up to date.
17/05/2012 00:12:08.016 Quicksilver: Invalid URL passed to an open/save panel: '(null)'.  Using 'file://localhost/Volumes/Mac/Users/ian/Documents/Reading/' instead.
17/05/2012 00:12:16.750 Hear: 'QTKitServer-(942) Quick Look Helper' connected (pid=944, path='/System/Library/XPCServices/com.apple.qtkitserver.xpc')
17/05/2012 00:12:35.135 Quicksilver: *** Assertion failure in -[QSOutlineView _expandItemEntry:expandChildren:startLevel:], /SourceCache/AppKit/AppKit-1138.47/TableView.subproj/NSOutlineView.m:1293
17/05/2012 00:12:35.135 Quicksilver: (null) should not be expanded already!
17/05/2012 00:12:35.145 Quicksilver: (
    0   CoreFoundation                      0x941b7a67 __raiseError + 231
    1   libobjc.A.dylib                     0x90d27149 objc_exception_throw + 155
    2   CoreFoundation                      0x9411f289 +[NSException raise:format:arguments:] + 137
    3   Foundation                          0x919af233 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
    4   AppKit                              0x9c51666d -[NSOutlineView _expandItemEntry:expandChildren:startLevel:] + 1171
    5   AppKit                              0x9c5161d3 -[NSOutlineView _expandItemEntry:expandChildren:] + 68
    6   AppKit                              0x9c2db434 -[NSOutlineView _uncachedNumberOfRows] + 516
    7   AppKit                              0x9c2db22b -[NSOutlineView numberOfRows] + 33
    8   AppKit                              0x9c360973 -[NSOutlineView frameOfCellAtColumn:row:] + 64
    9   AppKit                              0x9c360756 -[NSTableView drawRow:clipRect:] + 1701
    10  QSInterface                         0x0012abe3 -[QSOutlineView drawRow:clipRect:] + 263
)
17/05/2012 00:12:35.173 Quicksilver: NSOutlineView Warning: reloadData called while in the middle of doing a reloadData (break on NSLog to debug)

http://i50.tinypic.com/rwpj4j.png

@skurfer
Copy link
Member

skurfer commented May 17, 2012

Well, I can’t get this to happen, but the error “reloadData called while in the middle of doing a reloadData” makes me wonder if it’s related to a recent change. @pjrobertson fixed things so the contents would get updated in real-time as you make changes to the entry.

Are you able to do this consistently? Is there a particular type you add that triggers it, or a particular path?

@pjrobertson
Copy link
Member

FWIW, I've occasionally seen my catalog get wiped, requiring me to restore
catalog.plist using Time Machine. I haven't looked into it though, and it's
not new. For me at lest, I think it's related to debugging Quicksilver and
force quitting the app before it has time to register the catalog. Or
starting QS with the catalog disabled (hold ⌥ on startup) then opening the
Catalog prefs

On 17 May 2012 14:35, Rob McBroom <
reply@reply.github.com

wrote:

Well, I can’t get this to happen, but the error “reloadData called while
in the middle of doing a reloadData” makes me wonder if it’s related to a
recent change. @pjrobertson fixed things so the contents would get updated
in real-time as you make changes to the entry.

Are you able to do this consistently? Is there a particular type you add
that triggers it, or a particular path?


Reply to this email directly or view it on GitHub:
#893 (comment)

@iandol
Copy link
Author

iandol commented May 17, 2012

In my case, I can still use the catalog contents so this is just a UI issue but everything is missing (Applications, Modules etc.). I've tried reproducing it on another machine and I get reliable crashes doing the following:

Add custom Folder to catalog, add a Type = *.avi — select outside then back into the Type box and I crash. I've sent 2 crash reports with this issue in the comment. I can't reproduce the catalog going blank yet, but in one case I noticed the Prefs window closed but QS was still running (not a full crash) so something is going wront with the prefs catalog UI. The crash is reproducible at the moment so can collect more info if needed.

@skurfer
Copy link
Member

skurfer commented May 17, 2012

Add custom Folder to catalog, add a Type = *.avi — select outside then back into the Type box and I crash.

I can reproduce this by entering *.avi, but you should just enter avi. Not only will that actually do what you intended, but it seems to prevent the crash.

We still need to investigate and fix the crash. I wonder if it’s as simple as removing *. from the input if that’s what someone types.

As for the original issue, it sounds like a rare race condition, so it could be hard to track down.

@skurfer
Copy link
Member

skurfer commented May 17, 2012

I just saw my catalog (in the preferences) go blank as well for a completely different reason. I went into Modules, selected iTunes and hit refresh. Everything disappeared.

From the Console:

2012/05/17 11:06:28.504 AM Quicksilver: *** Assertion failure in -[QSOutlineView _expandItemEntry:expandChildren:startLevel:], /SourceCache/AppKit/AppKit-1138.47/TableView.subproj/NSOutlineView.m:1293
2012/05/17 11:06:28.504 AM Quicksilver: (null) should not be expanded already!
2012/05/17 11:06:28.517 AM Quicksilver: (
    0   CoreFoundation                      0x99595a67 __raiseError + 231
    1   libobjc.A.dylib                     0x951fe149 objc_exception_throw + 155
    2   CoreFoundation                      0x994fd289 +[NSException raise:format:arguments:] + 137
    3   Foundation                          0x9855c233 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
    4   AppKit                              0x9c71f66d -[NSOutlineView _expandItemEntry:expandChildren:startLevel:] + 1171
    5   AppKit                              0x9c71f1d3 -[NSOutlineView _expandItemEntry:expandChildren:] + 68
    6   AppKit                              0x9c4e4434 -[NSOutlineView _uncachedNumberOfRows] + 516
    7   AppKit                              0x9c4e422b -[NSOutlineView numberOfRows] + 33
    8   AppKit                              0x9c4e41ef _NSOVRowEntryForRow + 44
    9   AppKit                              0x9c4e4180 -[NSOutlineView itemAtRow:] + 56
    10  AppKit                              0x9c56b52f -[NSOutlineView _dataSourceValueForColumn:row:] + 55
    11  AppKit                              0x9c559e47 -[NSTableView preparedCellAtColumn:row:] + 420
    12  AppKit                              0x9c56b359 -[NSOutlineView preparedCellAtColumn:row:] + 64
    13  AppKit                              0x9c56b23c -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 50
    14  AppKit                              0x9c56b1b0 -[NSOutlineView _drawContentsAtRow:column:withCellFrame:] + 87
    15  AppKit                              0x9c56968d -[NSTableView drawRow:clipRect:] + 1500
    16  QSInterface                         0x0012ac0b -[QSOutlineView drawRow:clipRect:] + 263
)

@iandol
Copy link
Author

iandol commented May 18, 2012

Can reproduce the iTunes > Refresh too...

@pjrobertson
Copy link
Member

OK, an easy way for me to reproduce this:

  • Open the Catalog preferences
  • Move ~/Library/Caches/Quicksilver to the trash
  • Open the Quicksilver interface and press ⌘R to rescan the catalog.

The bug seems to be that the QSOutlineView (that shows the catalog entry) isn't being told that the catalog entry is being updated. We probably either need to look out for if the data is 'nil', or use some kind of KVO.

skurfer added a commit that referenced this issue Jan 17, 2013
Reload catalog tables on the main thread. Fixes #893
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

No branches or pull requests

3 participants