ZOOKEEPER-2891: Invalid processing of zookeeper_close for mutli-request

When I call `zookeeper_close()` while there is a pending multi request, I expect the request completes with `ZCLOSING` status.

But with the existing code I actually get the following:
* the program exits with `SIGABRT` from `assert(entry)` in `deserialize_multi()`
* and even if I remove this assertion and just break the enclosing loop, the returned status is `ZOK` but not `ZCLOSING`

So, there are two defects with processing calls to `zookeeper_close()` for pending multi requests: improper assertion in implementation and invalid status in confirmation.

Proposed changes remove these defects.

For more details see: https://issues.apache.org/jira/browse/ZOOKEEPER-2891

Author: Alexander A. Strelets <streletsaa@gmail.com>

Reviewers: Michael Han <hanm@apache.org>

Closes #999 from xoiss/ZOOKEEPER-2891
1 file changed
tree: 29cd2935891943941cb4c42f7e47eed7c3848979
  1. bin/
  2. conf/
  3. src/
  4. zookeeper-client/
  5. zookeeper-contrib/
  6. zookeeper-docs/
  7. zookeeper-it/
  8. zookeeper-jute/
  9. zookeeper-recipes/
  10. zookeeper-server/
  11. .gitattributes
  12. .gitignore
  13. .travis.yml
  14. build.xml
  15. excludeFindBugsFilter.xml
  16. ivy.xml
  17. ivysettings.xml
  18. LICENSE.txt
  19. NOTICE.txt
  20. owaspSuppressions.xml
  21. pom.xml
  22. README.md
  23. README_packaging.txt
  24. source-package.xml
README.md

For the latest information about ZooKeeper, please visit our website at:

http://zookeeper.apache.org/

and our wiki, at:

https://cwiki.apache.org/confluence/display/ZOOKEEPER

Full documentation for this release can also be found in docs/index.html


Packaging/release artifacts - Maven

A buildable tarball is located under zookeeper/target/ directory

The artifacts for the modules are uploaded to maven central.

Packaging/release artifacts - Ant

The release artifact contains the following jar file at the toplevel:

zookeeper-.jar - legacy jar file which contains all classes and source files. Prior to version 3.3.0 this was the only jar file available. It has the benefit of having the source included (for debugging purposes) however is also larger as a result

The release artifact contains the following jar files in “dist-maven” directory:

zookeeper-.jar - bin (binary) jar - contains only class (.class) files zookeeper--sources.jar - contains only src (.java) files zookeeper--javadoc.jar - contains only javadoc files

These bin/src/javadoc jars were added specifically to support Maven/Ivy which have the ability to pull these down automatically as part of your build process. The content of the legacy jar and the bin+sources jar are the same.

As of version 3.3.0 bin/sources/javadoc jars contained in dist-maven directory are deployed to the Apache Maven repository after the release has been accepted by Apache: http://people.apache.org/repo/m2-ibiblio-rsync-repository/