Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-21162

Revert suspicious change to BoundedByteBufferPool and disable use of direct buffers for IPC reservoir by default

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 1.4.7
    • 1.4.8
    • None
    • None

    Description

      We had a production incident where we traced the issue to a direct buffer leak. On a hunch we tried setting hbase.ipc.server.reservoir.enabled = false and after that no native memory leak could be observed in any regionserver process under the triggering load.

      On HBASE-19239 (Fix findbugs and error-prone issues) I made a change to BoundedByteBufferPool that is suspicious given this finding. It was committed to branch-1.4 and branch-1. I'm going to revert this change.

      In addition the allocation of direct memory for the server RPC reservoir is a bit problematic in that tracing native memory or direct buffer leaks to a particular class or compilation unit is difficult, so I also propose allocating the reservoir on the heap by default instead. Should there be a leak it is much easier to do an analysis of a heap dump with familiar tools to find it.

      Attachments

        1. HBASE-21162-branch-1.patch
          3 kB
          Andrew Kyle Purtell
        2. HBASE-21162-branch-1.patch
          4 kB
          Andrew Kyle Purtell
        3. HBASE-21162-branch-1.patch
          3 kB
          Andrew Kyle Purtell

        Activity

          People

            apurtell Andrew Kyle Purtell
            apurtell Andrew Kyle Purtell
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: