SocketException causes cleanup of the entire DBPortPool leading to OutOfMemoryErrors in high load applications

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Cannot Reproduce
    • Priority: Major - P3
    • None
    • Affects Version/s: 2.8.0, 2.9.1
    • Component/s: Connection Management
    • None
    • Environment:
      Oracle JVM, Linux 64bit
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Hi,

      I have an application under high load connected to a MongoDB (2.0.7) using the Java Driver. When the DB fails to allocate memory (mmap), the connection on the client side is reset. The SocketException thrown is causing a cleanup of the entire pool of socket connections in the DBPortPool implementation. Is there a reason for that?

      A cleanup of the entire pool leads to OutOfMemoryErrors since connection (de)allocation is expensive. A failure of a single DB operation can affect an entire client application.

      Would it not be better to clean up just the connection that was reset?

      Thanks

            Assignee:
            Unassigned
            Reporter:
            Robert Gacki
            None
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: