RocketChat / RocketChat/Rocket.Chat

Upgrade mongodb 7.0.0 package to fix AWS IAM credentials

Open
#37,456 1 comment 0 reactions 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

Hi team

Description:

Hi team,
I have a mongoDB Atlas cluster, and I want to connect to it using an IAM role. Everything on the MongoDB Atlas side is configured, and using mongosh I can indeed connect using IAM.

HOWEVER, rocketchat uses mongo package 6.1.0 and the aws_temporary_credentials.ts which should handle things when the provider import fails, well... IMHO they should stop just not try to do anything with AWS anymore.

In a nutshell, tries to capture a VERY limited set of sources for credentials, and for container, does it so poorly, it's incomplete.

Steps to reproduce:
  • Configure MongoDB Atlas to accept IAM auth
  • Configure the MONGO_URL to use the connection string provided.
  • Have the AWS_CONTAINER_CREDENTIALS_FULL_URI and AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE set and functional
  • Start rocketchat.
Expected behavior:

Rocketchat mongodb driver uses the default aws credentials chain

Actual behavior:

See logs.

I have been able to demonstrate that the credentials endpoint is fully functional with the "default" SDK client config and that the credentials are served and valid.

Server Setup Information:
  • Version of Rocket.Chat Server: latest (from docker)
  • License Type: Free/Community
  • Number of Users: 4 (evaluating still)
  • Operating System: Linux (using the docker image though)
  • Deployment Method: docker
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • NodeJS Version: 22+ (as per docker image)
  • MongoDB Version: MongoDB Atlas (8.0.15)
Additional context

Using credproxy to serve the credentials. Node is one of the tested clients and it works out of the box without faffing with it.

Relevant logs:
rocketchat-1  | MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |     at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |     at Object.onceWrapper (node:events:632:28)
rocketchat-1  |     at ClientRequest.emit (node:events:518:28)
rocketchat-1  |     at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |     at Object.onceWrapper (node:events:632:28)
rocketchat-1  |     at Socket.emit (node:events:530:35)
rocketchat-1  |     at Socket._onTimeout (node:net:609:8)
rocketchat-1  |     at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |     at processTimers (node:internal/timers:523:7) {
rocketchat-1  |   connectionGeneration: 0,
rocketchat-1  |   [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |   [cause]: undefined
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | PoolClearedError [MongoPoolClearedError]: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"
rocketchat-1  |     at ConnectionPool.processWaitQueue (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:762:65)
rocketchat-1  |     at ConnectionPool.clear (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/cmap/connection_pool.ts:493:10)
rocketchat-1  |     at updateServers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:842:21)
rocketchat-1  |     at Topology.serverUpdateHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:700:5)
rocketchat-1  |     at Server.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/topology.ts:818:66)
rocketchat-1  |     at Server.emit (node:events:518:28)
rocketchat-1  |     at markServerUnknown (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:501:10)
rocketchat-1  |     at Server.handleError (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:381:9)
rocketchat-1  |     at Server.command (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/sdam/server.ts:320:64)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at CreateIndexesOperation.executeCommand (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/command.ts:169:12)
rocketchat-1  |     at CreateIndexesOperation.execute (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/indexes.ts:319:5)
rocketchat-1  |     at tryOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:263:14)
rocketchat-1  |     at executeOperation (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/operations/execute_operation.ts:109:12)
rocketchat-1  |     at Collection.createIndex (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/collection.ts:585:21)
rocketchat-1  |     at MongoConnection.createIndexAsync (packages/mongo/mongo_connection.js:506:3) {
rocketchat-1  |   address: 'something.mongodb.net:27017',
rocketchat-1  |   [Symbol(errorLabels)]: Set(1) { 'PoolRequstedRetry' },
rocketchat-1  |   [cause]: MongoNetworkTimeoutError: Network request to http://169.254.169.254/latest/api/token timed out after undefined ms
rocketchat-1  |       at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/src/utils.ts:1246:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at ClientRequest.emit (node:events:518:28)
rocketchat-1  |       at Socket.emitRequestTimeout (node:_http_client:863:9)
rocketchat-1  |       at Object.onceWrapper (node:events:632:28)
rocketchat-1  |       at Socket.emit (node:events:530:35)
rocketchat-1  |       at Socket._onTimeout (node:net:609:8)
rocketchat-1  |       at listOnTimeout (node:internal/timers:588:17)
rocketchat-1  |       at processTimers (node:internal/timers:523:7) {
rocketchat-1  |     connectionGeneration: 0,
rocketchat-1  |     [Symbol(errorLabels)]: Set(3) { 'HandshakeError', 'RetryableWriteError', 'ResetPool' },
rocketchat-1  |     [cause]: undefined
rocketchat-1  |   }
rocketchat-1  | }
rocketchat-1  | 
rocketchat-1  | packages/core-runtime.js:189
rocketchat-1  |             throw error;
rocketchat-1  |             ^
rocketchat-1  | errorClass [Error]: [An error occurred when creating an index for collection "users: Connection pool for something
.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"]
rocketchat-1  |     at Collection.createIndexAsync (packages/mongo/collection/methods_index.js:62:15)
rocketchat-1  |     at processTicksAndRejections (node:internal/process/task_queues:105:5)
rocketchat-1  |     at module.wrapAsync.self (packages/accounts-password/password_server.js:1342:1) {
rocketchat-1  |   isClientSafe: true,
rocketchat-1  |   error: 'An error occurred when creating an index for collection "users: Connection pool for something.mongodb.net:27017 was cleared because another operation failed with: "Network request to http://169.254.169.254/latest/api/token timed out after undefined ms"',
rocketchat-1  |   reason: undefined,
rocketchat-1  |   details: undefined,
rocketchat-1  |   errorType: 'Meteor.Error'
rocketchat-1  | }
rocketchat-1  | 

PS: I have manged to hack this through creating my own .ts and .js files, and forceably load them into the docker image, using the rocketchat one as source, and this then works great. So it definitely works when implemented properly.

I imagine the best course of action for you guys is upgrade the mongodb client which by the look of what's in the main branch seems to leave the job to the real SDK credentials provider.

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

Locate the dependency declaration for the MongoDB package and the aws_temporary_credentials.ts implementation mentioned in the issue. Reproduce the connection with AWS_CONTAINER_CREDENTIALS_FULL_URI and AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE, then verify that the upgraded driver uses the configured credentials chain instead of timing out against the metadata endpoint.

Written by the indexing model from the issue text.

Assessment

Tech stack
mongodb, typescript
Domain
authentication, backend, databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.