Uploaded image for project: 'JBoss Remoting (3+)'
  1. JBoss Remoting (3+)
  2. REM3-208

ByteBuffer leaks via HttpUpgradeConnectionProvider and RemoteConnectionProvider

XMLWordPrintable

    • Workaround Exists
    • Hide

      Use -Djboss.remoting.pooled-buffers=false on the command line to disable the byte buffer pooling.

      Show
      Use -Djboss.remoting.pooled-buffers=false on the command line to disable the byte buffer pooling.

      ByteBufferSlicePool uses a ThreadLocal-based ByteBuffer caching scheme that pretty much results in uncollectable ByteBuffers. That's ok, if the number of ByteBufferSlicePool instances is limited, which I believe was the design intent.

      But HttpUpgradeConnectionProvider is not limiting the number of instances. One is created per channel creation, in ConnectionAdaptorImpl.adapt(). This is the cause of WFLY-4881.

      Possible solution is to cache the ByteBufferSlicePool in the outer HttpUpgradeConnectionProvider and reuse it for each ConnectionAdaptorImpl.adapt call.

      RemoteConnectionProvider.connect also creates a pool for each connect call. Perhaps it could be cached in RemoteConnectionProvider and reused.

      David in chat mentioned switching to using global pools as the solution.

            dlloyd@redhat.com David Lloyd
            bstansbe@redhat.com Brian Stansberry
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: