Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-4608

Update Log replay should use the default processor chain

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.1, 4.2
    • 4.2.1, 4.3, 6.0
    • SolrCloud
    • None

    Description

      If a processor chain is used with custom processors,
      they are not used in case of node failure during log replay.

      Here is the code:

      UpdateLog.java
          public void doReplay(TransactionLog translog) {
            try {
              loglog.warn("Starting log replay " + translog + " active="+activeLog + " starting pos=" + recoveryInfo.positionOfStart);
      
              tlogReader = translog.getReader(recoveryInfo.positionOfStart);
      
              // NOTE: we don't currently handle a core reload during recovery.  This would cause the core
              // to change underneath us.
      
              // TODO: use the standard request factory?  We won't get any custom configuration instantiating this way.
              RunUpdateProcessorFactory runFac = new RunUpdateProcessorFactory();
              DistributedUpdateProcessorFactory magicFac = new DistributedUpdateProcessorFactory();
              runFac.init(new NamedList());
              magicFac.init(new NamedList());
      
              UpdateRequestProcessor proc = magicFac.getInstance(req, rsp, runFac.getInstance(req, rsp, null));
      

      I think this is a big issue, because a lot of people will discover it when a node will crash in the best case... and I think it's too late.

      It means to me that processor chains are not usable with Solr Cloud currently.

      Attachments

        1. SOLR-4608.patch
          4 kB
          Yonik Seeley

        Activity

          People

            yseeley@gmail.com Yonik Seeley
            lboutros Ludovic Boutros
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: