291823798 Error when deleting a collection

"An error has occurred. Please restart Firefox."

happened twice when deleting empty top level collections.

Ubuntu 8.10, current svn

Thanks,
Kent
  • Did you send that report in before restarting? There are no Zotero errors in it.
  • oops, I'd left the last dialog open, hadn't clicked 'Finish'
    should be coming down the tubes right now.
  • No, we got the report, but it doesn't contain any Zotero errors. So if you send that after the error occurred and before restarting, we'll need debug output sent to support@zot....org instead. Thanks.
  • Latest error report 1028604096, containing lines like:

    [JavaScript Error: "no element found" {file: "https://ktenney%40gmx%2Ecom:********@storage-file-eu.gmx.com/zotero/" line: 1}]

    [JavaScript Error: "no element found" {file: "https://ktenney%40gmx%2Ecom:********@storage-file-eu.gmx.com/zotero/" line: 1}]

    Console output after the error

    zotero(3): [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://zotero/content/xpcom/db.js :: anonymous :: line 218" data: no] [QUERY: INSERT INTO syncDeleteLog VALUES (?, ?, ?)] [ERROR: table syncDeleteLog has 4 columns but 3 values were supplied]
  • Your database schema isn't up-to-date. This shouldn't be possible if the codebase is fully updated, but you're using SVN, so all bets are off.

    For what it's worth, if you want to stay on the trunk, I'd recommend using the dev XPI unless you have a need to use SVN.
  • I don't need SVN, I didn't know about the nightly XPI, I now have it installed.

    Is there a way to force a schema upgrade?
  • At startup, Zotero checks the integer at the top of the various .sql files in the root. If a number is greater than the associated number stored in the 'version' table in the database, it performs an upgrade. syncDeleteLog uses the userdata.sql number and performs the upgrade using the migration steps in schema.js.

    So you might want to check the userdata version stored in the DB. If it's 47 or higher, the upgrade somehow went through without the migration step being processed. If it's lower than 47, it should have offered to automatically upgrade at Firefox startup.
  • userdata.sql starts with
    -- 49
  • How do I force a schema upgrade?

    Thanks,
    Kent
  • You could manually lower the stored 'userdata' version number in the 'version' table, but what you lower it to depends on the state of your database. You'd have to compare your database to the migration steps in schema.js to tell.

    The number in the migration step is the number the 'userdata' value gets set to after that step has completed.
  • zotero.sqlite versions table says
    userdata: 49

    the case block in schema.js goes to
    if (i == 49)
    ...

    Should I change the zotero.sqlite versions table to
    userdata: 47 ?

    If so, can I do this from Firefox's SQLite Manager, or should
    Firefox be closed when the change is made?

    Thanks,
    Kent
  • You should never make changes to the SQLite database with Firefox open.

    I can't advise you on this, I'm afraid, since you were using a development build and I don't know the state of your database. You'll need to examine your database and compare it to the SQL statements at the end of schema.js. It may be easier to just apply the necessary statements manually.
  • I did "Export database structure" on my zotero.sqlite and
    one from an install using the current .xpi, am looking at
    a diff of the sql.

    The only *table* change I see is in the syncDeleteLog table,
    all the other differences are additional triggers.

    to "apply the necessary statements manually" would
    I execute sql to create the triggers?
  • Yes. You can just copy the trigger statements from the exported SQL.
  • I did that; so far, so good.

    Thanks,
    Kent
Sign In or Register to comment.