RocketChat / RocketChat/Rocket.Chat
BulkWriteError: E11000 duplicate key error collection: rocketchat.rocketchat_room index: _id_ dup key
Open
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description:
What did we do so far... upgraded server from v3.3.0 to v3.10.4
And after the upgrade process this happened during the first start up of the rocketchat server .
Steps to reproduce:
- upgrade 3.3.0 to the newest version (e.g.: 3.10.4)
- start the server after the upgrade process
- take a look on logging
Expected behavior:
None logging error
Actual behavior:
BulkWriteError: E11000 duplicate key error collection: rocketchat.rocketchat_room index: _id_ dup key: {
: "rocket.catsNYZbWWBmK3wDAAec"
}
Server Setup Information:
- Version of Rocket.Chat Server: 3.3.0
- Operating System: centos-7
- Deployment Method: tar
- Number of Running Instances: 1
- DB Replicaset Oplog: ok
- NodeJS Version: 12.18.4
- MongoDB Version: 4.0.22
Client Setup Information
- Desktop App or Browser Version: NA
- Operating System: NA
Additional context
Relevant logs:
logging:
BulkWriteError: E11000 duplicate key error collection: rocketchat.rocketchat_room index: _id_ dup key: {
: "rocket.catsNYZbWWBmK3wDAAec"
}
at OrderedBulkOperation.handleWriteError(/opt/Rocket.Chat - 3.10 .4 / programs / server / npm / node_modules / meteor / npm - mongo / node_modules / mongodb / lib / bulk / common.js: 1257: 9)
at resultHandler(/opt/Rocket.Chat - 3.10 .4 / programs / server / npm / node_modules / meteor / npm - mongo / node_modules / mongodb / lib / bulk / common.js: 521: 23)
at / opt / Rocket.Chat - 3.10 .4 / programs / server / npm / node_modules / meteor / npm - mongo / node_modules / mongodb / lib / core / connection / pool.js: 405: 18
at processTicksAndRejections(internal / process / task_queues.js: 79: 11) => awaited here:
at Promise.await(/opt/Rocket.Chat - 3.10 .4 / programs / server / npm / node_modules / meteor / promise / node_modules / meteor - promise / promise_server.js: 60: 12)
at Server.apply(packages / ddp - server / livedata_server.js: 1638: 22)
at Server.call(packages / ddp - server / livedata_server.js: 1607: 17)
at DDPCommon.MethodInvocation. < anonymous > (server / lib / sendMessagesToAdmins.js: 16: 43)
at packages / dispatch_run - as - user.js: 211: 14
at Meteor.EnvironmentVariable.EVp.withValue(packages / meteor.js: 1234: 12)
at Object.Meteor.runAsUser(packages / dispatch_run - as - user.js: 210: 33)
at server / lib / sendMessagesToAdmins.js: 16: 12
at SynchronousCursor.forEach(packages / mongo / mongo_driver.js: 1138: 16)
at Cursor. < computed > [as forEach](packages / mongo / mongo_driver.js: 918: 44)
at sendMessagesToAdmins(server / lib / sendMessagesToAdmins.js: 13: 33)
at server / startup / migrations / v201.js: 41: 4
at Function.time(/opt/Rocket.Chat - 3.10 .4 / programs / server / profile.js: 273: 30)
at / opt / Rocket.Chat - 3.10 .4 / programs / server / boot.js: 415: 15
at / opt / Rocket.Chat - 3.10 .4 / programs / server / boot.js: 465: 7
at Function.run(/opt/Rocket.Chat - 3.10 .4 / programs / server / profile.js: 280: 14)
at / opt / Rocket.Chat - 3.10 .4 / programs / server / boot.js: 463: 13 {
driver: true,
code: 11000,
writeErrors: [WriteError {
err: [Object]
}],
result: BulkWriteResult {
result: {
ok: 1,
writeErrors: [Array],
writeConcernErrors: [],
insertedIds: [Array],
nInserted: 0,
nUpserted: 0,
nMatched: 0,
nModified: 0,
nRemoved: 0,
upserted: [],
lastOp: [Object]
}
}
}
I appears that all migrations has been applied:
{"line":"120","file":"migrations.js","message":"Migrations: Migrating from version 191 -> 213","time":{"$date":1610733109193},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 192","time":{"$date":1610733109197},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 193","time":{"$date":1610733109738},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 194","time":{"$date":1610733109756},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 195","time":{"$date":1610733109772},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 196","time":{"$date":1610733109870},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 197","time":{"$date":1610733109876},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 198","time":{"$date":1610733109967},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 199","time":{"$date":1610733109994},"level":"info"}
Changing schema of User records, this may take a long time ...
Migrating 0/507
Changing schema of User records finished.
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 200","time":{"$date":1610733111077},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 201","time":{"$date":1610733111147},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 202","time":{"$date":1610733111156},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 203","time":{"$date":1610733111175},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 204","time":{"$date":1610733111377},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 205","time":{"$date":1610733111392},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 206","time":{"$date":1610733111397},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 207","time":{"$date":1610733111422},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 208","time":{"$date":1610733111428},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 209","time":{"$date":1610733111435},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 210","time":{"$date":1610733111440},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 211","time":{"$date":1610733111479},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 212","time":{"$date":1610733112934},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Running up() on version 213","time":{"$date":1610733112947},"level":"info"}
{"line":"120","file":"migrations.js","message":"Migrations: Finished migrating.","time":{"$date":1610733113066},"level":"info"}
Not migrating, control is locked. Attempt 1/30. Trying again in 10 seconds.
{"line":"120","file":"migrations.js","message":"Migrations: Not migrating, already at version 213","time":{"$date":1610733123079},"level":"info"}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with server/startup/migrations/v201.js and server/lib/sendMessagesToAdmins.js, then reproduce the 3.3.0-to-3.10.4 upgrade using the reported MongoDB setup and inspect the E11000 duplicate-key path. Done means the upgrade completes without the rocketchat_room _id error and the migration logs remain successful.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mongodb, node.js
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100