Solr
  1. Solr
  2. SOLR-3782

A leader going down while updates are coming in can cause shard inconsistency.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0, 6.0
    • Component/s: SolrCloud
    • Labels:
      None

      Description

      Harpoon into the head of the great whale I have been chasing for a couple weeks now.

      ChaosMonkey test was exposing this.

      Turns out the problem was the solr cmd distrib executor - when closing the leader CoreContainer, we would close the zkController while updates can still flow through the distrib executor. The result was that we would send updates from the leader briefly even though there was a new leader.

      I had suspected something similar to this at one point in the hunt and started adding some defensive state checks that we wanted to add anyway. I don't think they caught all of this issue due to the limited tightness one of the state checks can get to (checking the cloudstate leader from a replica against the leader indicated by the request).

      So the answer is to finally work out how to stop the solr cmd distrib executor - because we need to stop it before closing zkController and giving up our role as leader.

      I've worked that all out and the issue no longer seems to be a problem.

        Activity

        Hide
        Markus Jelsma added a comment -

        hi - this is in CHANGES but is it resolved?

        Show
        Markus Jelsma added a comment - hi - this is in CHANGES but is it resolved?
        Hide
        Mark Miller added a comment -

        I committed a first iteration - I have more refinement/improvement coming.

        Show
        Mark Miller added a comment - I committed a first iteration - I have more refinement/improvement coming.
        Hide
        Mark Miller added a comment -

        I only solved the issue when stopping the leader - there was also a similar issue on session expiration (the leaders update queue could to be emptying as we elect a new leader and beyond). I fixed this as well by shutting down the executor on session expiration and creating a new one for further use.

        Show
        Mark Miller added a comment - I only solved the issue when stopping the leader - there was also a similar issue on session expiration (the leaders update queue could to be emptying as we elect a new leader and beyond). I fixed this as well by shutting down the executor on session expiration and creating a new one for further use.
        Hide
        Mark Miller added a comment -

        Have not committed yet though. Coming soon...

        Show
        Mark Miller added a comment - Have not committed yet though. Coming soon...
        Hide
        Mark Miller added a comment -

        I've committed the rest of my work.

        Show
        Mark Miller added a comment - I've committed the rest of my work.
        Hide
        Uwe Schindler added a comment -

        Closed after release.

        Show
        Uwe Schindler added a comment - Closed after release.

          People

          • Assignee:
            Mark Miller
            Reporter:
            Mark Miller
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development