Zotero-better-bibtex: Keep keys unique freezes with read-only shared DBs/groups

Created on 7 Nov 2019  Â·  9Comments  Â·  Source: retorquere/zotero-better-bibtex

When I try to keep my keys unique across all databases BTT crashes. I guess it tries to change keys in a read-only group database that I joined https://www.zotero.org/groups/113737/doing_digital_humanities_-_a_dariah_bibliography

To make it work again I had to delete my zotero profile locally and recreate/sync it with zotero.org.

Report ID:

BBT "freezes" before I can do step 6. you have included an error-report ID here generated by reproducing the problem, selecting the problematic reference(s), right-clicking, and submitting an BBT error report from that popup menu and the settings menu goes blank completely.

I can reproduce this behaviour on zotero 5.0.77 on macOS 10.14.6 and Ubunut 19.10 with the latest release of BBT.

Exporter used:

Error-log

Timestamp: 07.11.2019 10:15:34
Error: {better-bibtex! +18} Better BibTeX load failed <Error: Cannot edit item in read-only library Doing Digital Humanities - A DARIAH Bibliography#
Error: Cannot edit item in read-only library Doing Digital Humanities - A DARIAH Bibliography
    Zotero.DataObject.prototype.editCheck@chrome://zotero/content/xpcom/data/dataObject.js:812:11
    Zotero.DataObject.prototype._initSave<@chrome://zotero/content/xpcom/data/dataObject.js:937:5
    tryCatcher@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/util.js:16:16
    module.exports/PromiseSpawn.prototype._promiseFulfilled@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:97:18
    module.exports/Promise.coroutine/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:201:9
From previous event:
    captureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:829:23
    CapturedTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:721:5
    longStackTracesCaptureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:400:19
    module.exports/Promise.prototype._then@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:232:9
    module.exports/Promise.prototype._passThrough@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:94:12
    module.exports/Promise.prototype.finally@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:103:12
    PromiseSpawn@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:36:25
    module.exports/Promise.coroutine/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:197:21
    ["./db/upgrade.ts"]/upgrade/<@chrome://zotero-better-bibtex/content/common.js:56916:23> 

Debug-log

(3)(+0000004): {better-bibtex +84} dbUpgrade: old= 00036 bibtex: Wolfe2008Annotations biblatexdata[journaltitle=International Journal of Computer-Supported Collaborative Learning;langid=english;shortjournal=Computer Supported Learning]

(3)(+0000004): {better-bibtex +4} dbUpgrade: new= Citation Key: Wolfe2008Annotations tex.journaltitle= International Journal of Computer-Supported Collaborative Learning tex.langid= english tex.shortjournal= Computer Supported Learning 00036

(1)(+0000010): Rolled back DB transaction rKkUVKof

(1)(+0000004): Cannot edit item in read-only library Doing Digital Humanities - A DARIAH Bibliography

(1)(+0000006): {better-bibtex! +18} Better BibTeX load failed <Error: Cannot edit item in read-only library Doing Digital Humanities - A DARIAH Bibliography# Error: Cannot edit item in read-only library Doing Digital Humanities - A DARIAH Bibliography Zotero.DataObject.prototype.editCheck@chrome://zotero/content/xpcom/data/dataObject.js:812:11 Zotero.DataObject.prototype._initSave<@chrome://zotero/content/xpcom/data/dataObject.js:937:5 tryCatcher@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/util.js:16:16 module.exports/PromiseSpawn.prototype._promiseFulfilled@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:97:18 module.exports/Promise.coroutine/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:201:9 From previous event: captureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:829:23 CapturedTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:721:5 longStackTracesCaptureStackTrace@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/debuggability.js:400:19 module.exports/Promise.prototype._then@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/promise.js:232:9 module.exports/Promise.prototype._passThrough@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:94:12 module.exports/Promise.prototype.finally@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/finally.js:103:12 PromiseSpawn@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:36:25 module.exports/Promise.coroutine/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://zotero/bluebird/generators.js:197:21 ["./db/upgrade.ts"]/upgrade/<@chrome://zotero-better-bibtex/content/common.js:56916:23>

Expected behavior:

BBT makes sure that keys are unique across all databases (and does not try to overwrite read-only keys).

Actual behavior:

BBT tries to overwrite read-only keys and crashes.

bug

All 9 comments

It looks like you did not upload an debug report. The debug report is important; it gives @retorquere your current BBT settings and a copy of the problematic reference as a test case so he can best replicate your problem. Without it, @retorquere is effectively blind. Debug reports are useful for both bug analysis and enhancement requests; in the case of export enhancements, I need the copy of the references you have in mind.

  • If your issue relates to how BBT behaves around a specific reference(s), such as citekey generation or export, select at least one of the problematic reference(s), right-click it, and submit an BBT debug report from that popup menu. If the problem is with export, please do include a sample of what you see exported, and what you expected to see exported for these references.

  • If the issue does not relate to references and is of a more general nature, generate an debug report by restarting Zotero with debugging enabled (Help -> Debug Output Logging -> Restart with logging enabled), reproducing your problem, and selecting "Send Better BibTeX debug report..." from the help menu.

Once done, you will see a debug ID in red. Please post that debug id in the issue here.

Thank you!

@retorquere

BBT "freezes" before I can do step 6. you have included an error-report ID here generated by reproducing the problem, selecting the problematic reference(s), right-clicking, and submitting an BBT error report from that popup menu and the settings menu goes blank completely.

I can reproduce this behaviour on zotero 5.0.77 on macOS 10.14.6 and Ubunut 19.10 with the latest release of BBT.

Damn, sorry about that. I'll have a fix later tonight. The db upgrade is not optional though. I can make it so the upgrade doesn't fail even when it doesn't execute for a group, but the group will need to upgrade too if it has custom fields or pinned keys. If it's just old style pinned keys I can work around that, but custom fields not.

(note to self, try-catch around upgrade per group/library)

And I finally figured how to generate the report.

V2KLLIZR-euc

:robot: this is your friendly neighborhood build bot announcing test build 5.1.154.5092 ("skip read-only items in dbUpgrade")

Install in Zotero by downloading test build 5.1.154.5092, opening the Zotero "Tools" menu, selecting "Add-ons", open the gear menu in the top right, and select "Install Add-on From File...".

this is your friendly neighborhood build bot announcing test build 5.1.154.5092 ("skip read-only items in dbUpgrade")

Install in Zotero by downloading test build 5.1.154.5092, opening the Zotero "Tools" menu, selecting "Add-ons", open the gear menu in the top right, and select "Install Add-on From File...".

works like a charm!

Cool, a new release build is running.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

danieltomasz picture danieltomasz  Â·  8Comments

element4l picture element4l  Â·  7Comments

ghost picture ghost  Â·  7Comments

awesomeindustries picture awesomeindustries  Â·  3Comments

tea4or2wo picture tea4or2wo  Â·  7Comments