Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Fix Version/s: 1.2.0 rc1
    • Component/s: None
    • Labels:
      None

      Description

      Auth.setup() triggers a request against the system_auth keyspace, request that is not an internal one, so it at least require TokenMetadata to be set up. However, Auth.setup() is call much too early, even before the commit log is replayed. The only reason this doesn't trigger an assertionError everytime is because Auth.setup() actually only schedul it's request after RING_DELAY, but still, replaying the commit log can take much more than that, and even without that I suspect this would be racy with normal bootstrap.

      1. 5049-v2.txt
        4 kB
        Aleksey Yeschenko
      2. 5049.txt
        4 kB
        Sylvain Lebresne

        Activity

        Hide
        Aleksey Yeschenko added a comment -

        Committed, thanks.

        Show
        Aleksey Yeschenko added a comment - Committed, thanks.
        Hide
        Sylvain Lebresne added a comment -

        Auth.setupSuperuser needs to be called in the 'isSurveyMode' of joinRing too, but otherwise +1.

        Show
        Sylvain Lebresne added a comment - Auth.setupSuperuser needs to be called in the 'isSurveyMode' of joinRing too, but otherwise +1.
        Hide
        Aleksey Yeschenko added a comment -

        Right, IAuthenticator#setup and IAuthorizer#setup should be called before that (where Auth#setup used to be), but superuser part should be scheduled after commit-log replay.

        Show
        Aleksey Yeschenko added a comment - Right, IAuthenticator#setup and IAuthorizer#setup should be called before that (where Auth#setup used to be), but superuser part should be scheduled after commit-log replay.
        Hide
        Sylvain Lebresne added a comment -

        Attaching a naive patch that call Auth.setup() only once we know it will work. I however suspect that the authenticator and authorizer should be setup much sooner than that. So the right approach is probably to split that setup() into two methods, but I'll wait for someone knowledgeable of the Auth thingy to confirm out of laziness.

        Show
        Sylvain Lebresne added a comment - Attaching a naive patch that call Auth.setup() only once we know it will work. I however suspect that the authenticator and authorizer should be setup much sooner than that. So the right approach is probably to split that setup() into two methods, but I'll wait for someone knowledgeable of the Auth thingy to confirm out of laziness.

          People

          • Assignee:
            Sylvain Lebresne
            Reporter:
            Sylvain Lebresne
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development