You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@aurora.apache.org by Bill Farner <wf...@apache.org> on 2014/11/07 23:03:24 UTC

Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/
-----------------------------------------------------------

Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.


Bugs: AURORA-920
    https://issues.apache.org/jira/browse/AURORA-920


Repository: aurora


Description
-------

Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.

Changes of note:
- We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
- Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
- Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
- Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
- Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`


Diffs
-----

  config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
  src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
  src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
  src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
  src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
  src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
  src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
  src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
  src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
  src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
  src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
  src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
  src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
  src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
  src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
  src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
  src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
  src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
  src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
  src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
  src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
  src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
  src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
  src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
  src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
  src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
  src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
  src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
  src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
  src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
  src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
  src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
  src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
  src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
  src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
  src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
  src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 

Diff: https://reviews.apache.org/r/27746/diff/


Testing
-------

./gradlew build -Pq
./gradlew run
./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh


Thanks,

Bill Farner


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60402
-----------------------------------------------------------

Ship it!


Master (03cb0d1) is green with this patch.
  ./build-support/jenkins/build.sh

- Aurora ReviewBot


On Nov. 7, 2014, 10:03 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 10:03 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Kevin Sweeney <ke...@apache.org>.

> On Nov. 7, 2014, 2:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java, line 123
> > <https://reviews.apache.org/r/27746/diff/1/?file=754888#file754888line123>
> >
> >     LOG.info("Retrying for ... in ...")
> 
> Bill Farner wrote:
>     Done.

Not worth such a high log level IMO - maybe fine. We expect this to happen frequently if startup takes longer than the initial delay.


- Kevin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60398
-----------------------------------------------------------


On Nov. 7, 2014, 2:59 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 2:59 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Bill Farner <wf...@apache.org>.

> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java, line 123
> > <https://reviews.apache.org/r/27746/diff/1/?file=754888#file754888line123>
> >
> >     LOG.info("Retrying for ... in ...")

Done.


> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/Driver.java, line 56
> > <https://reviews.apache.org/r/27746/diff/1/?file=754890#file754890line56>
> >
> >     is this really spelled as "blocK" with capital K?

It is, but it shouldn't be.  Fixed.


> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java, line 25
> > <https://reviews.apache.org/r/27746/diff/1/?file=754893#file754893line25>
> >
> >     Does it have to be public?

Yes, it's used by integration tests.  Marked `@VisibleForTesting`.


> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java, line 24
> > <https://reviews.apache.org/r/27746/diff/1/?file=754894#file754894line24>
> >
> >     in(Singleton.class)?

Unnecessary, i prefer to avoid singleton binding unless it's warranted.


> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java, line 111
> > <https://reviews.apache.org/r/27746/diff/1/?file=754896#file754896line111>
> >
> >     Can you elaborate on the "rm -rf" effect? It's not clear how that happens.

I'll refer to the mesos docs at risk of repeating them.


- Bill


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60398
-----------------------------------------------------------


On Nov. 7, 2014, 10:03 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 10:03 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Bill Farner <wf...@apache.org>.

> On Nov. 7, 2014, 10:39 p.m., Maxim Khutornenko wrote:
> > src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java, line 123
> > <https://reviews.apache.org/r/27746/diff/1/?file=754888#file754888line123>
> >
> >     LOG.info("Retrying for ... in ...")
> 
> Bill Farner wrote:
>     Done.
> 
> Kevin Sweeney wrote:
>     Not worth such a high log level IMO - maybe fine. We expect this to happen frequently if startup takes longer than the initial delay.

Sure, i'll move it down to fine.


- Bill


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60398
-----------------------------------------------------------


On Nov. 7, 2014, 10:59 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 10:59 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Maxim Khutornenko <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60398
-----------------------------------------------------------



src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java
<https://reviews.apache.org/r/27746/#comment101785>

    LOG.info("Retrying for ... in ...")



src/main/java/org/apache/aurora/scheduler/mesos/Driver.java
<https://reviews.apache.org/r/27746/#comment101776>

    is this really spelled as "blocK" with capital K?



src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java
<https://reviews.apache.org/r/27746/#comment101779>

    Does it have to be public?



src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
<https://reviews.apache.org/r/27746/#comment101788>

    in(Singleton.class)?



src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
<https://reviews.apache.org/r/27746/#comment101793>

    Can you elaborate on the "rm -rf" effect? It's not clear how that happens.


- Maxim Khutornenko


On Nov. 7, 2014, 10:03 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 10:03 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Bill Farner <wf...@apache.org>.

> On Nov. 7, 2014, 10:47 p.m., Kevin Sweeney wrote:
> > src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java, line 326
> > <https://reviews.apache.org/r/27746/diff/1/?file=754879#file754879line326>
> >
> >     typo in blockUntilStopped

Fixed.


> On Nov. 7, 2014, 10:47 p.m., Kevin Sweeney wrote:
> > src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java, line 19
> > <https://reviews.apache.org/r/27746/diff/1/?file=754894#file754894line19>
> >
> >     Technically it's dynamically-loaded.

Better yet, it's statically dynamically loaded :-)
    static {
      MesosNativeLibrary.load();
    }

I'll avoid the wording nuance.


- Bill


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60400
-----------------------------------------------------------


On Nov. 7, 2014, 10:03 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 10:03 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Kevin Sweeney <ke...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60400
-----------------------------------------------------------

Ship it!



src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java
<https://reviews.apache.org/r/27746/#comment101782>

    typo in blockUntilStopped



src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java
<https://reviews.apache.org/r/27746/#comment101794>

    Technically it's dynamically-loaded.



src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
<https://reviews.apache.org/r/27746/#comment101796>

    Futures.getUnchecked



src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java
<https://reviews.apache.org/r/27746/#comment101802>

    Futures.getUnchecked


- Kevin Sweeney


On Nov. 7, 2014, 2:03 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 2:03 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Maxim Khutornenko <ma...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60414
-----------------------------------------------------------

Ship it!


Ship It!

- Maxim Khutornenko


On Nov. 7, 2014, 11:05 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 11:05 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/#review60413
-----------------------------------------------------------


Master (03cb0d1) is red with this patch.
  ./build-support/jenkins/build.sh

  File "/usr/lib/python2.7/sysconfig.py", line 355, in _init_posix
    raise IOError(msg)
IOError: invalid Python installation: unable to open /x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/local/include/python2.7/pyconfig.h (No such file or directory)

Build operating on top level addresses: set([BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/BUILD, all)])
Problem executing PythonBuilder for targets OrderedSet([PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/admin/BUILD, host_maintenance)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, api)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, api)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, restarter)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, instance_watcher)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, scheduler_client)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/au
 th/BUILD, auth)), PythonThriftLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/thrift/org/apache/aurora/gen/BUILD, py-thrift)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, cluster)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, transport)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, scheduler_mux)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, error_handling_thread)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, task_util)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, base)), PythonLibrary
 (BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, http_signaler)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, updater_util)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, sla)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, common)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, aurora_job_key)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, cluster_option)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, clusters)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/
 workspace/AuroraBot/src/main/python/apache/aurora/common/BUILD, shellify)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/thrift/org/apache/aurora/gen/BUILD, py-thrift-packaged)), PythonThriftLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/thrift/org/apache/aurora/gen/BUILD, py-thrift-test)), PythonThriftLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/thrift/org/apache/aurora/gen/BUILD, py-thrift-storage)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, updater)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, job_monitor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, quota_check)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace
 /AuroraBot/src/main/python/apache/aurora/admin/BUILD, host_maintenance)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/admin/BUILD, util)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/admin/BUILD, admin_util)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/BUILD, binding_helper)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, binding_helper)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/config/BUILD, config)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/config/schema/BUILD, schema)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/config/BUI
 LD, schema)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/common/BUILD, planner)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/BUILD, config)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, config)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, api)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, disambiguator)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, disambiguator)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, instance_watcher)), PythonTests(BuildFileAddress(/x1/je
 nkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, job_monitor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/BUILD, fake_scheduler_proxy)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, mux)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, quota_check)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, restarter)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, scheduler_client)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, sla)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraB
 ot/src/test/python/apache/aurora/client/api/BUILD, updater)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/api/BUILD, updater_util)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, api)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, util)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/cli/BUILD, cli)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/api/BUILD, command_runner)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/config/BUILD, schema)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/hooks/BUILD, 
 hooks)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, factory)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/BUILD, options)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/common/BUILD, options)), PythonThriftLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/thrift/org/apache/thermos/BUILD, py-thrift)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/cli/BUILD, client_lib)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/cli/BUILD, bridge)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/bin/BUILD, aurora_admin_lib)), PythonLibrary(BuildFileAddress(/x1
 /jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, admin)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, help)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, maintenance)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/bin/BUILD, aurora_client_lib)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, all)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, core)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, run)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-
 slave/workspace/AuroraBot/src/main/python/apache/aurora/client/commands/BUILD, ssh)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, util)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, bridge)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, command_hooks)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, cron)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, help)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, inspect)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora
 /client/cli/BUILD, job)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, config)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, logging)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, plugins)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, quota)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, sla)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, task)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, supdate)), PythonTests(BuildFileAddress(/x1/jenkins/je
 nkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/cli/BUILD, update)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, admin)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, core)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, hooks)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, maintenance)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, run)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/commands/BUILD, ssh)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/
 python/apache/aurora/client/hooks/BUILD, hooked_api)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/client/hooks/BUILD, non_hooked_api)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_aurora_job_key)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_cluster)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_clusters)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_cluster_option)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_http_signaler)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/auror
 a/common/BUILD, test_shellify)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/common/BUILD, test_transport)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/config/BUILD, test_base)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/config/BUILD, test_constraint_parsing)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/config/BUILD, test_loader)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/config/BUILD, test_thrift)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, executor_base)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, executor_base)), Pyt
 honTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, executor_detector)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, executor_detector)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, executor_vars)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, executor_vars)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, status_manager)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, status_manager)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, status_checker)), PythonTe
 sts(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, thermos_task_runner)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, sandbox)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, thermos_task_runner)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/common/BUILD, common)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/common/BUILD, ckpt)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/common/BUILD, path)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, core)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-sla
 ve/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, inspector)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, muxer)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, runner)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, helper)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/core/BUILD, process)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/config/BUILD, config)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, monitor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD,
  task_info)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, task_runner)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, thermos_statuses)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, announcer)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, announcer)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, directory_sandbox)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, executor_timeout)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executo
 r/common/BUILD, executor_timeout)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, health_checker)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, fixtures)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, health_checker)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, status_checker)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/common/BUILD, task_info)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, gc_executor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/au
 rora/executor/BUILD, gc_executor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, detector)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, garbage)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/aurora/executor/BUILD, thermos_executor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/BUILD, aurora_executor)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/aurora/executor/common/BUILD, kill_manager)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/bin/BUILD, test_thermos)), PythonBinary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/bin/BUILD, thermo
 s)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, monitoring)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, disk)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, process)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, resource)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/monitoring/BUILD, process_collector_psutil)), PythonLibrary(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/main/python/apache/thermos/testing/BUILD, runner)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/common/BUILD, test_pathspec)), PythonTests(BuildFi
 leAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/common/BUILD, test_planner)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/common/BUILD, test_task_planner)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/config/BUILD, test_schema)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_process)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_ephemerals)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_failing_runner)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_failure_limit)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-sla
 ve/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_finalization)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_helper)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_runner_integration)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_angry)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/core/BUILD, test_staged_kill)), PythonTests(BuildFileAddress(/x1/jenkins/jenkins-slave/workspace/AuroraBot/src/test/python/apache/thermos/monitoring/BUILD, test_disk))]): Traceback (most recent call last):
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/commands/build.py", line 130, in _python_build
    debug=self._verbose)
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/python_builder.py", line 43, in build
    debug=debug).run()
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/test_builder.py", line 88, in run
    rv = self._run_tests([target], stdout, stderr)
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/test_builder.py", line 316, in _run_tests
    with self._test_runner(targets, stdout, stderr) as (pex, test_args):
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/test_builder.py", line 295, in _test_runner
    builder = chroot.dump()
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/python_chroot.py", line 191, in dump
    conn_timeout=self._conn_timeout)
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pants/backend/python/resolver.py", line 100, in resolve_multi
    platform=platform)
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pex/resolver.py", line 110, in resolve
    new_requirements.update(requires(highest_package, requirement))
  File "/x1/jenkins/jenkins-slave/workspace/AuroraBot/build-support/pants.venv/lib/python2.7/site-packages/pex/resolver.py", line 84, in requires
    raise Untranslateable('Package %s is not translateable.' % package)
Untranslateable: Package SourcePackage(u'https://pypi.python.org/packages/source/p/pystachio/pystachio-0.7.2.tar.gz#md5=cd66ead2f4cbd20e040a089e64a0dd32') is not translateable.


Usage: 
  pants build (options) [spec] (build args)
  pants build (options) [spec]... -- (build args)

Options:
  --version             show program's version number and exit
  --no-pantsrc          Specifies that pantsrc files should be ignored.
  --log-exit            Log an exit message on success or failure.
  -t CONN_TIMEOUT, --timeout=CONN_TIMEOUT
                        Number of seconds to wait for http connections.
  -i INTERPRETERS, --interpreter=INTERPRETERS
                        Constrain what Python interpreters to use.  Uses
                        Requirement format from pkg_resources, e.g.
                        'CPython>=2.6,<3' or 'PyPy'. By default, no
                        constraints are used.  Multiple constraints may be
                        added.  They will be ORed together.
  -v, --verbose         Show verbose output.
  -f, --fast            Run tests in a single chroot.

Builds the specified Python target(s). Use ./pants goal for JVM and other
targets.

- Aurora ReviewBot


On Nov. 7, 2014, 11:05 p.m., Bill Farner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27746/
> -----------------------------------------------------------
> 
> (Updated Nov. 7, 2014, 11:05 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.
> 
> 
> Bugs: AURORA-920
>     https://issues.apache.org/jira/browse/AURORA-920
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.
> 
> Changes of note:
> - We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
> - Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
> - Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
> - Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
> - Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`
> 
> 
> Diffs
> -----
> 
>   config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
>   src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
>   src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
>   src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
>   src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
>   src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
>   src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
>   src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
>   src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
>   src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
>   src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
>   src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
>   src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
>   src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
>   src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
>   src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
>   src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
>   src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
>   src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
>   src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
>   src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
>   src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
>   src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
>   src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
>   src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
>   src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
>   src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
>   src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
>   src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
>   src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
>   src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
>   src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
>   src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 
> 
> Diff: https://reviews.apache.org/r/27746/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew build -Pq
> ./gradlew run
> ./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh
> 
> 
> Thanks,
> 
> Bill Farner
> 
>


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Bill Farner <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/
-----------------------------------------------------------

(Updated Nov. 7, 2014, 11:05 p.m.)


Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.


Bugs: AURORA-920
    https://issues.apache.org/jira/browse/AURORA-920


Repository: aurora


Description
-------

Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.

Changes of note:
- We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
- Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
- Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
- Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
- Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`


Diffs (updated)
-----

  config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
  src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
  src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
  src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
  src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
  src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
  src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
  src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
  src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
  src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
  src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
  src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
  src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
  src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
  src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
  src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
  src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
  src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
  src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
  src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
  src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
  src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
  src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
  src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
  src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
  src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
  src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
  src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
  src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
  src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
  src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
  src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
  src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
  src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
  src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
  src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
  src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 

Diff: https://reviews.apache.org/r/27746/diff/


Testing
-------

./gradlew build -Pq
./gradlew run
./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh


Thanks,

Bill Farner


Re: Review Request 27746: Simplify management of the driver lifecycle using AbstractidleService.

Posted by Bill Farner <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27746/
-----------------------------------------------------------

(Updated Nov. 7, 2014, 10:59 p.m.)


Review request for Aurora, Kevin Sweeney and Maxim Khutornenko.


Bugs: AURORA-920
    https://issues.apache.org/jira/browse/AURORA-920


Repository: aurora


Description
-------

Apologies for the large diff - this is a thread that began with fixing a SchedulerDriver-related race that would exist if we moved to an async event bus.  Most of the green code is not new, but extracted from broken-apart and/or deleted files.  However, i think this refactor makes the lifecycle of the scheduler (and driver) easier to reason about.

Changes of note:
- We now use AbstractIdleService to manage the call order on the SchedulerDriver (as well as HistoryPruner, but that is only loosely related).
- Many mesos-specific classes were moved to `org.apache.aurora.scheduler.mesos`
- Command line args used directly from `DriverFactoryImpl` are now properly injected via `DriverSettings`
- Untestable code around creating the driver is cordoned off to `DriverFactoryImpl`, which is a minimal shim over the `MesosSchedulerDriver` constructor
- Extracted modules that should not be used in tests: `LibMesosLoadingModule` and `CommandLineDriverSettingsModule`


Diffs (updated)
-----

  config/legacy_untested_classes.txt f1d19210a722ee2c1838c4ffa0eec1f42d05c2d3 
  src/main/java/org/apache/aurora/scheduler/Driver.java b07378f3772136177c81a65497152e9d6524b0a7 
  src/main/java/org/apache/aurora/scheduler/DriverFactory.java 9cc04a84a37374ffca418e2ff767992ee23b9f3e 
  src/main/java/org/apache/aurora/scheduler/MesosSchedulerImpl.java c424ecdaefb1b872adb4ef32a2aca088cee26f7f 
  src/main/java/org/apache/aurora/scheduler/MesosTaskFactory.java ad07bcaa3a372efab1b6ba6165f5c44acf8de4cf 
  src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 453f22a8e97dbf535dd99598332e71e944ebf8d2 
  src/main/java/org/apache/aurora/scheduler/SchedulerModule.java 8d306409bc382fbe5c53bb394d03c923b8f75889 
  src/main/java/org/apache/aurora/scheduler/app/AppModule.java 9ec3f412a9a9210279a2ce666bd99f61481ab92d 
  src/main/java/org/apache/aurora/scheduler/app/SchedulerMain.java 048740953629a950c136179c9b880b8dce8fa932 
  src/main/java/org/apache/aurora/scheduler/async/AsyncModule.java 9bc42d3761d3fc72f009716cf087d4ac3c26dce4 
  src/main/java/org/apache/aurora/scheduler/async/GcExecutorLauncher.java feb70a9351fe804b6745304e4cbbf6d010c56579 
  src/main/java/org/apache/aurora/scheduler/async/JobUpdateHistoryPruner.java 0b023a25292907b8211274f1533d89de7c4b7ce4 
  src/main/java/org/apache/aurora/scheduler/async/KillRetry.java e656c7ec7349b54b07f8c734266445d1fc15fabb 
  src/main/java/org/apache/aurora/scheduler/async/OfferQueue.java 1a45d08c8854a335161476c8321c751f763dc12e 
  src/main/java/org/apache/aurora/scheduler/async/TaskTimeout.java 89140223f4f3acd02ade6fb95734744ef19d89bc 
  src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/Driver.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactory.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverFactoryImpl.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/DriverSettings.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/LibMesosLoadingModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverModule.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java PRE-CREATION 
  src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java 6d2ac494030018b100c1d01ce373c4896f2ed7d2 
  src/main/java/org/apache/aurora/scheduler/state/StateModule.java fe16d3a367b4b99b32a25d5ae55a3817a290e5e0 
  src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java 78a9670573261b2bdae0810c104ca7c1e4736ea8 
  src/main/java/org/apache/aurora/scheduler/storage/log/EntrySerializer.java cbb711fa555c94626963b4d9540a71e6a737abd8 
  src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java 855573efea68ba4f29b3c7fbfb8da56bbdad352b 
  src/test/java/org/apache/aurora/scheduler/DriverFactoryImplTest.java 0f6192269cc122580869ae7717acad161fac6f1d 
  src/test/java/org/apache/aurora/scheduler/DriverTest.java a96dd87421c32e4da4da4c953dda4c6be4e8e592 
  src/test/java/org/apache/aurora/scheduler/MesosSchedulerImplTest.java 8dd908e69c71e96d03806e0c4ceb00dab81d756f 
  src/test/java/org/apache/aurora/scheduler/MesosTaskFactoryImplTest.java aa026cf3b6ace5e0aaf9b239aff0c2f3210a0883 
  src/test/java/org/apache/aurora/scheduler/SchedulerLifecycleTest.java 986160133a3471fc36cad2615c2aa1a7d8983b5a 
  src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 713797182e22956640eeffb796e0a0ff7ec3ddc9 
  src/test/java/org/apache/aurora/scheduler/app/local/FakeMaster.java 98718c4c75c2bf5b4778b634f140eaa108eaf3b6 
  src/test/java/org/apache/aurora/scheduler/app/local/LocalSchedulerMain.java 43d73b1895bb0b539196c75344bec1c090fc6410 
  src/test/java/org/apache/aurora/scheduler/async/AsyncModuleTest.java 62d8aab3edb03c79777ed3fa1e38e92fd8a06064 
  src/test/java/org/apache/aurora/scheduler/async/GcExecutorLauncherTest.java 059a276b21bfc271ae45f923190a8eafbd98d723 
  src/test/java/org/apache/aurora/scheduler/async/KillRetryTest.java 8ad9f5c65ede1bacfdb0eec46aee9af00e625508 
  src/test/java/org/apache/aurora/scheduler/async/OfferQueueImplTest.java 15fb7ff617bdd25583c369385193fdcbbf5d8b36 
  src/test/java/org/apache/aurora/scheduler/async/TaskGroupsTest.java 1d84496e3213510668a82fc1d9a9734617c7eb3d 
  src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java 1caaf1487f1fdcdea6feff7d194fa6aae47078e3 
  src/test/java/org/apache/aurora/scheduler/async/TaskTimeoutTest.java e79327c3b8ead01495e063e5c0e9270568e16f69 
  src/test/java/org/apache/aurora/scheduler/mesos/SchedulerDriverServiceTest.java PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/quota/QuotaManagerImplTest.java 2fe257416e8fc11be3ebf0dabbf4f63628b3c670 
  src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java fa6d57404bb7905cb23e220edc8f1d59d47e6315 
  src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java d8a61458203ac696cb3c5ec61b0b4be6320523ca 
  src/test/java/org/apache/aurora/scheduler/state/TaskAssignerImplTest.java c7da5abc7457719e98c03e1217f99444cb29f4cb 
  src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java 88319ea869589323c4662d4f62b46b2bc964268b 

Diff: https://reviews.apache.org/r/27746/diff/


Testing
-------

./gradlew build -Pq
./gradlew run
./src/test/sh/org/apache/aurora/e2e/test_end_to_end.sh


Thanks,

Bill Farner