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

ReplicationHandler replicateAfter startup not showing commits after SOLR-3911


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1
    • Fix Version/s: 4.2, 6.0
    • Component/s: replication (java)
    • Labels:


      In the process of upgrading to 4.1 from 3.6, I've noticed that our master servers do not show any commit points – e.g. via – available until after a new commit happens. So, for static indexes, replication doesn't happen and for dynamic indexes, we have to wait until an incremental update of master for slaves to see any commits.

      Tracing through the code, it looks like the change that may have effected us was part of SOLR-3911, specifically commenting out the initialization of the newIndexWriter in the replicateAfterStartup block [1]:

      // TODO: perhaps this is no longer necessary then?
      // core.getUpdateHandler().newIndexWriter(true);

      I'm guessing this is commented out because it is assumed that indexCommitPoint was going to be set by that block, but when a slave requests commits, that goes back to core.getDeletionPolicy().getCommits() to fetch the list of commits. If no indexWriter has been initialized, then, as far as I can tell, IndexDeletionPolicyWrapper#onInit will not have been called and there will be no commits available.

      By uncommenting this line, I was able to see commits on startup and slaves began to replicate successfully.

      [1] http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java?annotate=1420992&diff_format=h&pathrev=1420992#l880


          Issue Links



              • Assignee:
                markrmiller@gmail.com Mark Miller
                greggny3 Gregg Donovan
              • Votes:
                0 Vote for this issue
                3 Start watching this issue


                • Created: