possible memory leak, too many listeners added

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 2.0.29
    • Affects Version/s: 2.0.27, 2.0.28
    • Component/s: None
    • Environment:
      node-v0.10.29
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      switching the default database on an open connection will quickly start
      emitting "too many listeners" node warnings. There needs to be a way of
      removing the listeners that are no longer needed.

      The context is a server where each request first selects the db to
      access the correct collections. There are many dbs and many
      concurrent requests.

      to reproduce:

      mongoClient = require('mongodb').MongoClient;
      
      mongoClient.connect("mongodb://localhost", function(err, db) {
        for (i=0; i<10; i++) {
          db.db("test")
        }
        db.close();
      });
      

      outputs 7 warnings from a set of mostly adjacent lines:

      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:163:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:164:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:165:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:166:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:168:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at once (events.js:185:8)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:169:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)
      (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
      Trace
      at addListener (events.js:160:15)
      at new Db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:170:12)
      at Db.db (/home/andras/node_modules/mongodb-2.0.28/lib/db.js:783:12)
      at /home/andras/mongo-listener-test.js:5:8
      at /home/andras/node_modules/mongodb-2.0.28/lib/mongo_client.js:403:11
      at process._tickCallback (node.js:419:13)

            Assignee:
            Christian Amor Kvalheim
            Reporter:
            Andras
            None
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: