Lucene - Core
  1. Lucene - Core
  2. LUCENE-4071

DWStallControl can deadlock IW if no flushes are running / pending


    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 4.0-ALPHA
    • Fix Version/s: 4.0-ALPHA
    • Component/s: core/index
    • Labels:
    • Lucene Fields:
      New, Patch Available


      DWStallControl currently only checks if the net bytes used by all the DWPT and deletes exceeds the stall limit (2*MAX_RAM_BUFFER). This is generally a very good default but in certain situations we can exceed this limit even without an ongoing flush. Stalling is used to prevent IW overloading due to slow flushes etc. which should not happen too often in practice. With a smallish RAM Buffer and a bigger document we can easily get into the stage where we stall the DW without a chance to free up the memory.

      I think we should make sure that a pending or running flush can free up enough memory to unstall.

      1. LUCENE-4071.patch
        7 kB
        Simon Willnauer
      2. LUCENE-4071.patch
        5 kB
        Simon Willnauer


        Uwe Schindler made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Simon Willnauer made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Simon Willnauer made changes -
        Attachment LUCENE-4071.patch [ 12528477 ]
        Simon Willnauer made changes -
        Field Original Value New Value
        Attachment LUCENE-4071.patch [ 12528402 ]
        Simon Willnauer created issue -


          • Assignee:
            Simon Willnauer
            Simon Willnauer
          • Votes:
            0 Vote for this issue
            4 Start watching this issue


            • Created: