[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mahadev konar updated ZOOKEEPER-319:
------------------------------------

    Attachment: ZOOKEEPER-319.patch

just a minor modification. my compiler fails on compiliing 
consta char* auth_data without initialization.

+1 to the patch.

one minor nit -- 
- we have some logging in auth_completion_func() in zookeeper.c

{noformat}
 zoo_lock_auth(zh);
    
    if(rc!=0){
        LOG_ERROR(("Authentication scheme %s failed. Connection closed.",
                zh->auth.scheme));
        zh->state=ZOO_AUTH_FAILED_STATE;
    }else{
        zh->auth.state=1;  // active
        LOG_INFO(("Authentication scheme %s succeeded", zh->auth.scheme));
    }

    if (zh->auth.completion) {
        auth_completion = zh->auth.completion;
        auth_data = zh->auth.data;
        zh->auth.completion=0;
    }

    zoo_unlock_auth(zh);
{noformat}
Should we get rid of logging within the lock?


> add locking around auth info in zhandle_t
> -----------------------------------------
>
>                 Key: ZOOKEEPER-319
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-319
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: c client
>    Affects Versions: 3.0.0, 3.0.1, 3.1.0
>            Reporter: Chris Darroch
>             Fix For: 3.1.1, 3.2.0
>
>         Attachments: ZOOKEEPER-319.patch, ZOOKEEPER-319.patch
>
>
> Looking over the zookeeper.c code it appears to me that the zoo_add_auth() 
> function may be called at any time by the user in their "main" thread.  This 
> function alters the elements of the auth_info structure in the zhandle_t 
> structure.
> Meanwhile, the IO thread may read those elements at any time in such 
> functions as send_auth_info() and auth_completion_func().  It seems 
> important, then, to add a lock which prevents data being read by the IO 
> thread while only partially changed by the user's thread.  The attached patch 
> add such a lock.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to