-
Type: Bug
-
Resolution: Cannot Reproduce
-
Priority: Major - P3
-
None
-
Affects Version/s: 1.9.0
-
Component/s: Storage
-
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.