Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-3451

It might still be possible to create two DBs whose names differ only by case

    • Type: Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 1.9.0
    • Component/s: Storage
    • Environment:
    • ALL

      In production, our site developed a problem where we couldn't write any updates. The perl MongoDB driver merely returned: "db assertion failed". That's it. No errors logged in mongodb's log.

      That's my biggest complaint. I had taken mongod down, run a repair, restarted the app, restarted mongod, and it was still unable to take updates. I had no idea what was going on.

      The only reason I was able to figure out the illegal duplicate database (as a different capitalisation) was because I trashed our 14GB (in mongo) of data and re-imported the whole site again from scratch. This time, I got a hint:

      query error: db already exists with different case other: [foswiki__Marine__AusLarv] me [foswiki__Marine__Auslarv] at /usr/local
      /lib/perl/5.10.1/MongoDB/Collection.pm line 246.
      at /usr/local/lib/perl/5.10.1/MongoDB/Collection.pm line 246

      Attached a full backtrace, although it probably isn't very useful.

      Now, the timing of this coincides exactly with a user who tried to rename their 'area' (= mongod database). So what's happened is that the 'rename' code (really just a copy/delete, I suspect) in our perl app was somehow allowed to create a new database of the same name/different case, and afterward we are unable to write any updates at all to any database served by that mongod at all.

            Assignee:
            aaron Aaron Staple
            Reporter:
            csirac2 Paul Harvey
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: