mongodump error – assertionCode: 10057, errmsg: “db assertion failure”
Short Answer
Mongo DB (as of v2.2.2) mongodump cannot be run by a read-only user.
Description
On running mongodump with the usual basic options:
mongodump --host localhost -u backup -p PASSWORD -o /tmp
the dump failed with this error message being produced:
foobar.system.users to /tmp/foobar/system.users.bson assertion: 11010 count fails:{ assertion: "unauthorized db:foobar ns:popcorn.system.users lock type:1 client:127.0.0.1", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }
Resolution
The error message indicates that the backup
user doesn’t have access to the required database, despite having been created on the admin
:
$ mongo localhost/admin -u admin -p MongoDB shell version: 2.2.2 Enter password: connecting to: localhost/admin > db.system.users.find() { "_id" : ObjectId("51091aeaffa4fb9aaf9aaca4"), "user" : "admin", "readOnly" : false, "pwd" : "2f1bffb1d28a2cca2167910c652b1040" } { "_id" : ObjectId("5125ef7b9b9f8d321e38ab91"), "user" : "backup", "readOnly" : true, "pwd" : "7154c21931479e96f970ccea160d5469" } >
Note that for user backup
, its “readOnly” attribute is set to “true”. This will prevent the user from properly accessing the database with the mongodump
command, and the backup will fail. It seems a little ill-advised to have to use a user account with full admin permissions just to run backups, but for now, this seems to be the way Mongo DB does things.