lkml.org 
[lkml]   [2013]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 35/48] libceph: fix authorizer invalidation
    Date
    From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    3.9-stable review patch. If anyone has any objections, please let me know.

    ------------------

    From: Sage Weil <sage@inktank.com>

    commit 4b8e8b5d78b8322351d44487c1b76f7e9d3412bc upstream.

    We were invalidating the authorizer by removing the ticket handler
    entirely. This was effective in inducing us to request a new authorizer,
    but in the meantime it mean that any authorizer we generated would get a
    new and initialized handler with secret_id=0, which would always be
    rejected by the server side with a confusing error message:

    auth: could not find secret_id=0
    cephx: verify_authorizer could not get service secret for service osd secret_id=0

    Instead, simply clear the validity field. This will still induce the auth
    code to request a new secret, but will let us continue to use the old
    ticket in the meantime. The messenger code will probably continue to fail,
    but the exponential backoff will kick in, and eventually the we will get a
    new (hopefully more valid) ticket from the mon and be able to continue.

    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Alex Elder <elder@inktank.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/ceph/auth_x.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/net/ceph/auth_x.c
    +++ b/net/ceph/auth_x.c
    @@ -630,7 +630,7 @@ static void ceph_x_invalidate_authorizer

    th = get_ticket_handler(ac, peer_type);
    if (!IS_ERR(th))
    - remove_ticket_handler(ac, th);
    + memset(&th->validity, 0, sizeof(th->validity));
    }





    \
     
     \ /
      Last update: 2013-06-18 19:01    [W:3.485 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site