Crash when loading really large author list
Hi,
Not sure if this is a beta issue or not. I tried adding the paper here:
http://arxiv.org/abs/0901.0512
When adding it, firefox seemed to freeze. After a long time, I force quit it. However, the entry has been entered into my database. Any time I click on it, the program seems to freeze again. I'm guessing the problem is that there are over 2000 authors on the paper, and that this is causing something to overflow.
Maybe it isn't crashing. Maybe clicking on it just starts a load, and it takes a very long time. However, either way its unusable.
I can read the author list online, from my synced account information. It seems to have uploaded at least a large portion of the author list.
I'm running on the latest firefox and Ubuntu 9.04.
Any ideas what to do? Can I at least delete the item somehow from my database so I don't accidental click it and freeze anything? I don't know how to delete it without clicking on it.
Not sure if this is a beta issue or not. I tried adding the paper here:
http://arxiv.org/abs/0901.0512
When adding it, firefox seemed to freeze. After a long time, I force quit it. However, the entry has been entered into my database. Any time I click on it, the program seems to freeze again. I'm guessing the problem is that there are over 2000 authors on the paper, and that this is causing something to overflow.
Maybe it isn't crashing. Maybe clicking on it just starts a load, and it takes a very long time. However, either way its unusable.
I can read the author list online, from my synced account information. It seems to have uploaded at least a large portion of the author list.
I'm running on the latest firefox and Ubuntu 9.04.
Any ideas what to do? Can I at least delete the item somehow from my database so I don't accidental click it and freeze anything? I don't know how to delete it without clicking on it.
What's the maximum number of authors that would ever need to be displayed in a bibliography?
By displayed in a bibliography, do you mean what would show up on a web site, or what I'd want to get out of zotero when making a bibliography on a paper of mine? I'm not sure about the first. As for the second, I believe when citing such papers as this its usually okay to just cite as "The ATLAS Collaboration" with a single author name and "et al". On the spires website the Bibtex entry it provides for this paper is:
@Article{Aad:2009wy,
author = "Aad, G. and others",
collaboration = "The ATLAS",
title = "{Expected Performance of the ATLAS Experiment - Detector,
Trigger and Physics}",
year = "2009",
eprint = "0901.0512",
archivePrefix = "arXiv",
primaryClass = "Unknown",
SLACcitation = "%%CITATION = 0901.0512;%%"
}
I think this information would be fine. I don't personally really need all the author info in Zotero. I just would like to be able to automatically add the paper to Zotero, without the fuss its currently causing.
Thanks
Your example, however, suggests that there also needs to be a way to quickly remove all of an item's creators.
Author: Author 1
Author: Author 2
Author: Author 3
(...) Authors: 97 more...
or, if the last author is deemed of particular significance:
Author: Author 1
Author: Author 2
Author: Author 3
(...) Authors: 96 more...
Author: Author 100
Not entirely sure though how you'd tell Zotero to collapse the author-list again (maybe right-clicking an author will collapse starting with the next author?).
An expand/collapse mechanism similar to the Abstract field is probably necessary for the GUI, though some heavy optimization would be required to support the expanded view with thousands of creators.
Would this be a useful command to implement? (If so, it would be helpful to have a sample of the response object that the processor should deliver.)
Re transferring all of the author names, that sounds like it really wouldn't scale very well. Zotero currently has a speed issue with large documents, which I have ambitions of seeing solved with the new processor. It would be a shame to trade up complaints from the historians for complaints from the folks in high energy physics. Surely there must be some more efficient way of coping? Can "real" bib data be (transferred only once and) stored in a separate segment from mangled data used for citation rendering, or something?
Cheers,
Caleb
I saved my debug output to id D379914512 (if that helps; it says it uploaded, but I don't know where to find that publicly). I'm not sure how to read the debug output, but I suspect the second number is the milliseconds. If so, then the 711 lines of "Switching lastCreatorFieldMode to 0" add up to 58.24 seconds, which is about the total hang time; so presumably all those switches are causing the problem. Also, the time each one takes increases as you go down the list.(*)
What really confuses me is that lastCreatorFieldMode is apparently a hidden preference set in about:config. Why does it need to be reset to the same thing 711 times? Is that what's actually slowing it down, or is that just in the loop that's slow?
Googling the debug message, it looks like maybe this is all coming from the zotero GUI changing the format of the display on each author's name. Is that right? Maybe a preference for maximum number of authors displayed, as Rintze suggested, would fix it?
Running Zotero 2.1.8 under Firefox 6.0 with Mac OS X 10.6.8 on a recent MacBook Pro.
(*) Geek alert: time taken per switch = (10 + 0.086*i + 0.00025*i^2) ms, where i is the number of times the switch has been made.
It might help that I've traced the problem to the 'getPropertyValue' calls in 'chrome/content/zotero/bindings/itembox.xml'. I gather that defaulting to single-field creator names would be a workaround. I don't know how to do that.
Still, the more I think about it, the more I think a shortened (but expandable) creator list would be best. I tested out limiting the loop over creators and it worked, so that would be alright.
[To be specific, I replaced
for (var i = 0, len=this.item.numCreators(); i<len; i++)
with
for (var i = 0, len=Math.min(this.item.numCreators(),10); i<len; i++)
and items that took a minute are just as fast as any other item. Also, that loop could be optimized significantly.]
https://www.zotero.org/trac/changeset/10412
Thanks Dan, this was very helpful. However, note that there are still problems with the most recent version of Zotero. If I delete one of the authors on an item with ~2,000 authors (particle physics, of course), Zotero hangs. (I waited about 10 minutes before killing it.) Presumably it was busy trying to load the very long author list so it could find the next author to display in the list of 10.
Also, when Zotero exports this to a BibTeX file, the very long author list makes BibTeX choke. I know this might be BibTeX's fault, but it would nice to have an option (i.e. along with "Include notes") on the export function that truncates very large author lists. Actually, you might just want to do it automatically with a warning given to the user the first time. After all, if the standard version of BibTeX always chokes on lists above a certain size, there's no use in ever exporting to a .bib file that is doomed.
Thanks again for the priceless tool!