RocketChat / RocketChat/Rocket.Chat
Upgrade mongodb 7.0.0 package to fix AWS IAM credentials
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_URIandAWS_CONTAINER_AUTHORIZATION_TOKEN_FILEset 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
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
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