[
https://issues.apache.org/jira/browse/MAPREDUCE-1067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hemanth Yamijala updated MAPREDUCE-1067:
----------------------------------------
Status: Open (was: Patch Available)
I have some feedback:
- In QueueConfigurationParser.getQueueElement, we have specifically removed the
check queueState != null when appending a 'state' element to the Queue element.
It seems like the check is useful for preventing errors. Is there a specific
reason for doing this ? For e.g. would it not be true that there could be a
leaf queue given a null State on construction ? We should either prevent it in
the construction or here, no ?
- bq. Also, state of a container queue should not be allowed to change once the
hierarchy is built.
I think the way this works is when queue configuration is refreshed, a state
change for container queues will result in exceptions being thrown when the
QueueConfigurationParser parses and constructs Queue objects (using setState or
addChild). This results in a RuntimeException that will be handled only by the
IPC handler on the server. I think no useful information about the error will
reach the admin. Can you please verify if this is the case ? If yes, I think it
must be fixed to be handled more gracefully, and a better error message must be
given. Same holds for first time construction of hierarchy as well.
- testQueueState should be split into multiple test cases. Typically, it is
good practice to test one condition / aspect of a unit in one unit test case.
It makes test case maintenance easier. There are atleast 3 distinct tests I am
seeing in this test case
- The first part of the test testQueueState is verifying a message that doesn't
seem correct. For e.g. I think the XML is semantically correct, but since a
queue state is defined for a container queue, construction fails. Then why are
we getting an exception whose message is "Malformed xml formation queue tag and
acls tags or state tags are siblings" ? The code is incorrect if this test is
passing.
- Shouldn't there be test cases testing refresh of queue state for container
queues and verify they fail ?
- There should also be a case to test that when a queue is constructed with
state stopped, and then children are added to it, an exception is thrown. It is
arguable if this is the right design - i.e. we should probably have
ContainerQueue as a first class citizen and then we can always prevent an
invalid state for such an instance, but possibly that's a separate JIRA.
> Default state of queues is undefined when unspecified
> -----------------------------------------------------
>
> Key: MAPREDUCE-1067
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-1067
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: jobtracker
> Affects Versions: 0.21.0
> Reporter: V.V.Chaitanya Krishna
> Assignee: V.V.Chaitanya Krishna
> Priority: Blocker
> Fix For: 0.21.0
>
> Attachments: MAPREDUCE-1067-1.patch, MAPREDUCE-1067-2.patch,
> MAPREDUCE-1067-3.patch, MAPREDUCE-1067-4.patch, MAPREDUCE-1067-5.patch,
> MAPREDUCE-1067-6.patch
>
>
> Currently, if the state of a queue is not specified, it is being set to
> "undefined" state instead of running state.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.