Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13033

Thread local pools never cleaned up

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 3.0.11, 3.10
    • Component/s: None
    • Labels:
      None
    • Severity:
      Normal

      Description

      Netty 4.x uses (Fast)ThreadLocal instances to provide a pool of (direct) buffers per thread (io.netty.buffer.PooledByteBufAllocator.PoolThreadLocalCache. However, these per-thread pools need to be cleaned up when a thread terminates (FastThreadLocal.removeAll()) - which is missing.

      Although the possibility that such per-thread pools ever need to be cleaned up, since we rarely terminate threads, it still may actually happen and manifest in a late and hard to detect out-of-memory situation. One possibility to raise such a scenario is to regularly stop and restart the native protocol service.

        Attachments

          Activity

            People

            • Assignee:
              snazy Robert Stupp
              Reporter:
              snazy Robert Stupp
              Authors:
              Robert Stupp
              Reviewers:
              Jason Brown
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: