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

Aliases and eventual consistency (should use sync())

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 7.3.1
    • SolrCloud
    • None

    Description

      ZkStateReader.AliasesManager.update() reads alias info from ZK into the ZkStateReader.  This method is called in ~5 places (+2 for tests).  In at least some of these places, the caller assumes that the alias info is subsequently up to date when in fact this might not be so since ZK is allowed to return a stale value.  ZooKeeper.sync() can be called to force an up to date value.  As with sync(), AliasManager.update() ought not to be called aggressively/commonly, only in certain circumstances (e.g. after failing to resolve stuff that would otherwise return an error).

      And related to this eventual consistency issue, SetAliasPropCmd will throw an exception if the alias doesn't exist.  Fair enough, but sometimes (as seen in some tests), the node receiving the command to update Alias properties is simply "behind"; it does not yet know about an alias that other nodes know about.  I believe this is the cause of some failures in AliasIntegrationTest; perhaps others.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            dsmiley David Smiley
            dsmiley David Smiley
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment