RocketChat / RocketChat/Rocket.Chat

BulkWriteError: E11000 duplicate key error collection: rocketchat.rocketchat_room index: _id_ dup key

Open
#20,217 0 comments 1 reaction 0 assignees View on GitHub

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:
  1. upgrade 3.3.0 to the newest version (e.g.: 3.10.4)
  2. start the server after the upgrade process
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.