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

Decrease RpcServer.callQueueSize before writeResponse causes OOM

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      In RpcServer, we use callQueueSizeInBytes to avoid queuing too many calls which causes OOM. But in CallRunner.run, we decrease it before send the response back. And even after calling sendResponseIfReady, the call object could stay in our heap for a long time if we can not write out the response(That's why we need a Responder thread...). This makes it possible that the actual size of all call object in heap is larger than maxQueueSizeInBytes and causes OOM.

      Attachments

        1. HBASE-16165.patch
          0.6 kB
          Guanghao Zhang
        2. HBASE-16165-branch-1.1.patch
          0.7 kB
          Guanghao Zhang

        Activity

          People

            zghao Guanghao Zhang
            zhangduo Duo Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: