Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
We previously assumed that we had to proceed when facing ZNOAUTH in creating the parent path of the group because the parent could already exist.
See comment: https://github.com/apache/mesos/blob/b73591057d06c79f241ca81737bcb61e56963e2b/src/zookeeper/group.cpp#L407
This was because we used to recursively create the parent path without checking its existence first so if the path already existed and we didn't have ACLs to create its child we got ZNOAUTH.
Now we do an existence check first in that logic so the assumption no longer holds.
The result of it is that the nonretryable error is not exposed until Group::join is called, which then complains about the base path not exist. This can be confusing and we don't know why the base path wasn't created.
We should instead abort the group in the face of ZNOAUTH error when creating the group base path.