Lines exceeding 80 chars in various places.
indentation issues in yarn-default.xml
from hadoop-yarn-server-resourcemanager/pom.xml, versions of zookeeper should not be defined here.
would it be preferable to not have a default value for the zk acl and enforce the user to set it if zk state store is being used? Obviously, any additional configuration headache but safer in forcing users to set it explicitly.
the only user now reads and writes to zk state store is RM itself. in some sense we may trust RM. As you said, this may create more burden on user to configure.
why are some settings commented out in yarn-default.xml and some aren't? Also, the documented defaults do not seem to match the default values used in code.
Fixed. except yarn.resourcemanager.zk.state-store.address, which is expected for user to configure explicitly.
"throw new YarnRuntimeException("No ZK_RM_STATE_STORE_ADDRESS specified");" is not useful as it does not clarify the actual property name that was not specified.
How is using a default of "world:anyone:rwcda" different from the fallback usage to the acls defined by "Ids.OPEN_ACL_UNSAFE"? If an invalid acl is defined, does it get treated as an error or fallback to open acls? Unit test for this maybe?
added a test case to test invalid acl and should catch exception.
have not looked at the zk apis in detail, but why are we setting a watch using exists() before calling delete()? Also, return value of exists() is being ignored and delete called regardless?
the exists() call is only for the purpose of setting a watch, so that the following delete call will trigger the watch. In zookeeper , watch is one-time trigger. if the watch is already triggered, the watch event will not be sent unless the client sets the watch again
should there be some versioning info that should be stored with the data for future versions to understand how to deserialize data? To summarize, do we require a version id in the payload?
For now, each app or attempt info only have one version
Is there any area that you see which may create problems when handling either upgrades or downgrades of software?
may not support downgrade..
"Unknown child node with name" - should we throw an error instead or ignore unknowns?
In case other clients write un-related data under this path, maybe we don't want to crash RM because of this.
Is it really necessary to have "LOG.info("Storing info for " to be at the INFO level? DEBUG maybe?
Change the store* and remove* methods to use debug
the version info from getData() seems to be unused for future setData calls? It seems like setData is only called from the unit tests?
You mean the stat info ? yes, it's of no use now. setData is only used in unit tests.
rmstatestore and zk store both seem to be catching and logging the same exception before throwing it back down the chain. e.g Error storing info for attempt and Error storing appAttempt