Jian Wang created ZOOKEEPER-3192: ------------------------------------ Summary: zoo_multi/zoo_amulti crash Key: ZOOKEEPER-3192 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3192 Project: ZooKeeper Issue Type: Bug Components: c client Affects Versions: 3.4.13 Environment: VS2013 Building (/MD) Reporter: Jian Wang
In the zoo_amulti function (zookeeper.c) , it seems an initialization problem. {code:java} struct RequestHeader h = { STRUCT_INITIALIZER(xid, get_xid()), STRUCT_INITIALIZER(type, ZOO_MULTI_OP) }; struct MultiHeader mh = { STRUCT_INITIALIZER(type, -1), STRUCT_INITIALIZER(done, 1), STRUCT_INITIALIZER(err, -1) }; struct oarchive *oa = create_buffer_oarchive(); completion_head_t clist = { 0 }; {code} variable "clist" 's member cond and lock are not initialized correctly. They should be initialized by pthread_cond_init and pthread_mutex_init. Otherwise zoo_amulti would crash when queue_completion was called witch calls pthread_cond_boardcast using clist->cond -- This message was sent by Atlassian JIRA (v7.6.3#76005)