> On March 27, 2014, 7:09 p.m., Bill Farner wrote: > > src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java, line > > 107 > > <https://reviews.apache.org/r/19648/diff/4/?file=538565#file538565line107> > > > > Would it take much to make this private? It would be nice if nothing > > (including the unit test) knew about this detail. > > Maxim Khutornenko wrote: > That would make tests much harder, especially testing legal transitions > to DELETED state. Gain on the source side would be a loss on the test side. > Given the complexity of the state machine I would rather go with better tests > here. > > Bill Farner wrote: > Is this true? If other callers can manage to effect a transition attempt > to DELETED, why would it be harder for tests? > > Maxim Khutornenko wrote: > I am not saying it's impossible, it just does not feel right here. If we > hide the enum the TaskStateMachineTest would not be able to define > transitions similar to this: > .put(new TestCase(true, KILLED, DELETED), DELETE_TASK) > > I am not even sure how to test transitions like this one: > .put(new TestCase(false, DELETED, ASSIGNED), ILLEGAL_KILL) > .put(new TestCase(false, DELETED, STARTING), ILLEGAL_KILL) > .put(new TestCase(false, DELETED, RUNNING), ILLEGAL_KILL) > > The only way would be to force the task state into DELETED by issuing an > updateState(), assume the state is DELETED and then attempt to move into one > of the non-terminal states expecting the ILLEGAL_KILL. This approach will > lose readability and coverage confidence.
I'd appreciate a TODO and @VisibleForTesting on the enum. I think we can do better here, but it might be more effort than it's worth right now. - Bill ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/19648/#review38779 ----------------------------------------------------------- On March 27, 2014, 7:59 p.m., Maxim Khutornenko wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/19648/ > ----------------------------------------------------------- > > (Updated March 27, 2014, 7:59 p.m.) > > > Review request for Aurora, Kevin Sweeney, Suman Karumuri, and Bill Farner. > > > Bugs: AURORA-261 > https://issues.apache.org/jira/browse/AURORA-261 > > > Repository: aurora > > > Description > ------- > > Part 2: > - Renaming UNKNOWN to SANDBOX_DELETED; > - Persisting SANDBOX_DELETED on legal transitions to ensure history is > retained; > - Adding a new DELETED volatile state to guide task deletion on absent > ScheduleStatus value; > - Dropping "delete" methods from SchedulerCore and StateManager interfaces to > ensure all task deletion goes through DELETED state change; > - UI changes to report terminal state in case of GC deletion (screenshots > attached). > > > Diffs > ----- > > src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java > 772511f74fc12cf320f9eb4dcc857c58a3546aa1 > src/main/java/org/apache/aurora/scheduler/base/Jobs.java > 4ac218b8f25be5e9e6b6243558af4258efe6e61a > src/main/java/org/apache/aurora/scheduler/base/Tasks.java > 003d475a1bd4ecc099d9a641fd239a8189f71cdb > src/main/java/org/apache/aurora/scheduler/http/SchedulerzJob.java > 2ccc6f367b9715a0abb3e0673069289ae4860087 > src/main/java/org/apache/aurora/scheduler/state/SchedulerCore.java > 7a13a8b9e8c9b7a767ec4bc4201e97de17809b82 > src/main/java/org/apache/aurora/scheduler/state/SchedulerCoreImpl.java > 3ca4ee529aaf3491118da216116b19d7c6a49d09 > src/main/java/org/apache/aurora/scheduler/state/StateManager.java > 4249707b283da078321faaaed006de54519238bc > src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java > 0161fac838ff5166161acd2960058de6856b0e9c > src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java > d2becea60e5d7bb59a2e5adb66e10cd50f6b56f3 > src/main/python/apache/aurora/executor/gc_executor.py > 4a866b2d6041a592692812eb3472db744d21e194 > src/main/resources/org/apache/aurora/scheduler/http/schedulerzjob.st > 28b56671b2e825912a6427e609c2bbe1e7758e26 > src/main/thrift/org/apache/aurora/gen/api.thrift > c0618e4edebd6f282698abfd9bdc3c36fff16920 > src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java > 534b2b62cc2ae0ae9baab0247c9679350f03042b > src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java > a4e9464f7d5d3f5a640b62557c3e29f2f1566985 > src/test/java/org/apache/aurora/scheduler/async/HistoryPrunerTest.java > 378ece964081a7cb475dc6edd9b19ed506f03ec8 > src/test/java/org/apache/aurora/scheduler/base/JobsTest.java > effe14bf36d967b64a30af77378f106b862944cd > src/test/java/org/apache/aurora/scheduler/base/TaskTestUtil.java > 2006ddb7f83a8ad2a1ce6ff3a96faf3c0bd8d8e9 > src/test/java/org/apache/aurora/scheduler/base/TasksTest.java > 102fe04f8d3a7142a0cd58251e16d31e8d4a433d > > src/test/java/org/apache/aurora/scheduler/state/BaseSchedulerCoreImplTest.java > 033ebd29a4e95914347c1f5f8ade73115585a26f > src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java > 24949c043b16a35a7960ed0a40b79f0981179eae > src/test/java/org/apache/aurora/scheduler/state/TaskStateMachineTest.java > e77063a9c8e40e015ec264b151a7ed76f1c7f00f > src/test/resources/org/apache/aurora/gen/api.thrift.md5 > 05c6e8a1e2407f2822b3844c555d8995f1cd1d49 > > Diff: https://reviews.apache.org/r/19648/diff/ > > > Testing > ------- > > ./build-support/jenkins/build.sh > > > File Attachments > ---------------- > > Finished > > https://reviews.apache.org/media/uploaded/files/2014/03/25/c5dd85ec-14df-4744-a2f9-d3af089e6286__CompletedFinished.png > Deleted > > https://reviews.apache.org/media/uploaded/files/2014/03/25/5bd3f5ec-89f8-4c91-a034-499a8db4caf9__CompletedDeleted.png > > > Thanks, > > Maxim Khutornenko > >