Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-770

DGC Thread and Open File Leaks: sendHALogForWriteSet()

    XMLWordPrintable

    Details

      Description

      Asynchronous proxies leak native threads to the DGC mechanism and eventually cause the HAJournalServer process to fail in a variety of interesting ways, including refusing to replicate an HALog file that in fact exists in the file system and which can be read. We can get a lot of leaked threads for sendHALog() when resynching a service. Too many for this to be practical.

      We will need to use a ThickFuture and different mechanism to cancel the transfer. For example, a well known exception thrown back along the pipeline that is not stopped by the retrySend() logic in QuorumPipelineImpl or sending another message to cancel the transfer using a UUID (or the request object) for the transfer handle.

      Uses of asynchronous proxies include:


      - sendHALogForWriteSet()
      - getGlobalWriteLock()
      - rebuildFromLeader()
      - sendHAStore()
      - takeSnapshot()

      If we retain the ability to have asynchronous proxies, at least rename the method and make getProxy()/2 private so we can tell at a glance the code paths that are using asynchronous proxies.

        Attachments

          Activity

            People

            Assignee:
            bryanthompson bryanthompson
            Reporter:
            bryanthompson bryanthompson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: