You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Jian Wang (JIRA)" <ji...@apache.org> on 2018/11/16 01:17:00 UTC
[jira] [Created] (ZOOKEEPER-3192) zoo_multi/zoo_amulti crash
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)