Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-306

The com.mongodb.Mongo.close() method can return before the cleanup thread is finished

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 2.6
    • Affects Version/s: 2.5.2
    • Component/s: None
    • Labels:
      None

      The method com.mongodb.Mongo.close() sets a signal that eventually tells the internal DBCleaner thread to close; which it correctly does. However, since the DBCleaner thread often sleeps, and cleaning up cursors could take a while, the thread will frequently not finish execution until after the close method returns. When this happens in apache tomcat, the following error is seen in tomcat's log files:

      SEVERE: The web application [/someWebApp] appears to have started a thread named [MongoCleaner892931837] but has failed to stop it. This is very likely to create a memory leak.

            Assignee:
            antoine Antoine Girbal
            Reporter:
            seanjreilly Sean Reilly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: