C client bug in zookeeper_init (if bad hostname is given)
---------------------------------------------------------
Key: ZOOKEEPER-1029
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1029
Project: ZooKeeper
Issue Type: Bug
Components: c client
Affects Versions: 3.3.2
Reporter: Dheeraj Agrawal
If you give invalid hostname to zookeeper_init method, it's not able to resolve
it, and it tries to do the cleanup (free buffer/completion lists/etc) . The
adaptor_init() is not called for this code path, so the lock,cond variables
(for adaptor, completion lists) are not initialized.
As part of the cleanup it's trying to clean up some buffers and acquires locks
and unlocks (where the locks have not yet been initialized, so unlocking fails)
lock_completion_list(&zh->sent_requests); - pthread_mutex/cond not
initialized
tmp_list = zh->sent_requests;
zh->sent_requests.head = 0;
zh->sent_requests.last = 0;
unlock_completion_list(&zh->sent_requests); trying to broadcast here on
uninitialized cond
It should do error checking to see if locking succeeds before unlocking it. If
Locking fails, then appropriate error handling has to be done.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira