2 years agoApache version moved into the Attic (#106) master
Renán I. Del Valle [Fri, 21 Feb 2020 18:19:34 +0000 (10:19 -0800)] 
Apache version moved into the Attic (#106)

Disabling Actions to not take time up from other Apache projects.
Putting a notice that the Apache version of this project has been moved to the Apache Attic.
Putting a link to the spiritual successor of the project.

2 years agoUpgrading npm dependencies with ciritical vulnerabililities (#103)
Renan I. Del Valle [Mon, 13 Jan 2020 15:49:50 +0000 (07:49 -0800)] 
Upgrading npm dependencies with ciritical vulnerabililities (#103)

* Upgrading two npm packages which contained critical vulnerabilities.

* Upgrading webpack.

* Setting ajv-keywords and ajv versions for version resolution.

* Adding required webpack-cli to dependencies as its required by the latest version of webpack.

* Pinning node version to be the latest LTS.

2 years agoUpdating information to reflect our new practices and our move to using the Github...
Renan I. Del Valle [Sat, 4 Jan 2020 00:20:31 +0000 (16:20 -0800)] 
Updating information to reflect our new practices and our move to using the Github workflow for the project. (#102)

* Updating or documentation to reflect our new practices and our move to using the Github workflow for the project.

2 years agoDropping support for making Trusty eggs. Upgrading Jessie to Stretch. (#100)
Renan I. Del Valle [Sat, 21 Dec 2019 00:53:36 +0000 (16:53 -0800)] 
Dropping support for making Trusty eggs. Upgrading Jessie to Stretch. (#100)

* Mesos Python eggs generation for Ubuntu Trusty has now been dropped because Trusty has reached EOL.
* Mesos Python eggs generation for Debian has been upgraded from Jessie to Stretch since Jessie is also EOL.

2 years agoGradle upgrade to 4.10.2 (#101)
Renan I. Del Valle [Thu, 19 Dec 2019 19:41:32 +0000 (11:41 -0800)] 
Gradle upgrade to 4.10.2 (#101)

* Mark gradle-wrapper.jar as a binary file so the line endings don't get changed.

* Upgrade gradlew to 4.10.2

* Upgrading spotbugs plugin and changing task name for ui in order to not collide with ther reserved function name test (this was a change in gradle).

2 years agoBatch Auto Pause improvements (#98)
Renan I. Del Valle [Thu, 19 Dec 2019 01:26:39 +0000 (17:26 -0800)] 
Batch Auto Pause improvements (#98)

* Fixing auto pause leaving an instance without processing before pausing the update.

* Simplifying code. Removing final pause after update has reached a terminal state.

2 years agoIncrementing snapshot version to 0.23.0-SNAPSHOT.
Renan DelValle [Tue, 3 Dec 2019 21:29:46 +0000 (13:29 -0800)] 
Incrementing snapshot version to 0.23.0-SNAPSHOT.

2 years agoUpdating CHANGELOG for 0.22.0 release.
Renan DelValle [Tue, 3 Dec 2019 21:29:46 +0000 (13:29 -0800)] 
Updating CHANGELOG for 0.22.0 release.

2 years agoPreparing for release.
Renan DelValle [Tue, 3 Dec 2019 21:27:22 +0000 (13:27 -0800)] 
Preparing for release.

2 years agoFixing flaky Kerberos end to end tests (#96)
Renan I. Del Valle [Tue, 3 Dec 2019 17:08:15 +0000 (09:08 -0800)] 
Fixing flaky Kerberos end to end tests (#96)

Changing key servers for GPG key retrieval to a more reliable one.
Setting LC_ALL in kerberos test script to satisfy new Pants locale requirement.

2 years agoIncreasing initial timeout for health check in order to allow docker based tasks...
Renan I. Del Valle [Fri, 29 Nov 2019 02:31:06 +0000 (18:31 -0800)] 
Increasing initial timeout for health check in order to allow docker based tasks to pass. (#95)

Docker based tasks in our end to end testing were previously not coming up fast enough to pass the health check. Increasing the initial timeout for the health check allows these tasks used by our end to end tests to pass successfully.

2 years agoVagrant box update (#94)
Renan I. Del Valle [Thu, 7 Nov 2019 21:55:05 +0000 (13:55 -0800)] 
Vagrant box update (#94)

* Upgrading kerberos to 1.17.

* Updating Vagrant box to latest bento box.

2 years agoSwitching from TravisCI to Actions (#92)
Renan I. Del Valle [Tue, 5 Nov 2019 16:06:02 +0000 (08:06 -0800)] 
Switching from TravisCI to Actions (#92)

* Replacing Travis CI with Github Actions.

* Replacing TravisCI badge with Actions badge.

2 years agoRevert "Release candidate changes"
Renan DelValle [Mon, 4 Nov 2019 22:28:55 +0000 (14:28 -0800)] 
Revert "Release candidate changes"

This reverts commits:
due to the failure of RCO.

2 years agoIncrementing snapshot version to 0.23.0-SNAPSHOT.
Renan DelValle [Tue, 22 Oct 2019 20:03:30 +0000 (13:03 -0700)] 
Incrementing snapshot version to 0.23.0-SNAPSHOT.

2 years agoUpdating CHANGELOG for 0.22.0 release.
Renan DelValle [Tue, 22 Oct 2019 20:03:30 +0000 (13:03 -0700)] 
Updating CHANGELOG for 0.22.0 release.

2 years agoRemoving (unreleased) from Relase notes.
Renan DelValle [Tue, 22 Oct 2019 20:03:15 +0000 (13:03 -0700)] 
Removing (unreleased) from Relase notes.

2 years agoAllow configuration manager to accept non-prod jobs with SLAPolicy (#87)
Renan DelValle [Mon, 14 Oct 2019 22:19:09 +0000 (15:19 -0700)] 
Allow configuration manager to accept non-prod jobs with SLAPolicy (#87)

* Allow non-production tasks to be accepted when they have SLAPolicy attached to them and the -sla_aware_kill_non_prod is set to true.

3 years agoUpdating relese notes and scheduler documentation (#69)
Renan DelValle [Tue, 17 Sep 2019 00:11:46 +0000 (17:11 -0700)] 
Updating relese notes and scheduler documentation (#69)

* Updated RELEASE-NOTES with information about the new flag which allows operators to enable SLA aware killing for non-production tasks.
* Fixed a typo in SchedulerMain.
* Updated documentation to reflect the output of the scheduler when run with the `-help` flag.

3 years agoAdding flag to enable SLA aware killing for non production workloads. (#67)
Renan DelValle [Mon, 16 Sep 2019 18:23:32 +0000 (11:23 -0700)] 
Adding flag to enable SLA aware killing for non production workloads. (#67)

Added a flag that allows operators to enable SLA aware killing for non-production tasks.
The flag is disabled by default.

3 years agoAdd observer flag to disable resource metric collection (#66)
Stephan Erb [Thu, 5 Sep 2019 12:00:17 +0000 (14:00 +0200)] 
Add observer flag to disable resource metric collection (#66)

3 years agoAuto Pause for Batch based update strategies (#54)
Renan DelValle [Wed, 28 Aug 2019 19:34:07 +0000 (12:34 -0700)] 
Auto Pause for Batch based update strategies (#54)

Auto pause feature for VariableBatch strategy and Batch strategy. With this feature enabled, when an update is ROLLING_FORWARD, the update will automatically pause itself right before a new batch is started.

(This feature is being released as tested but in beta state. We are looking to collect feedback before we consider it fully stable.)

3 years agoDocfix: update thermos_profile cmdline (#64)
Raúl Cuza [Tue, 27 Aug 2019 15:23:45 +0000 (11:23 -0400)] 
Docfix: update thermos_profile cmdline (#64)

* update setup_env cmdline

Changed the `setup_env` command line to be more easily read.

3 years agoMake python3 compatible (#65)
psontag [Tue, 13 Aug 2019 20:59:01 +0000 (22:59 +0200)] 
Make python3 compatible (#65)

3 years agoMesos Fetcher file name output support (#6) (#63)
Renan DelValle [Thu, 1 Aug 2019 21:16:30 +0000 (14:16 -0700)] 
Mesos Fetcher file name output support (#6) (#63)

* Mesos Fetcher file name output support (#63

* User can decide what the final name of a downloaded artifact will be.

3 years agoEnsure resource ordering in PreemptionVictimFilter is deterministic (#61)
Stephan Erb [Wed, 24 Jul 2019 07:07:50 +0000 (09:07 +0200)] 
Ensure resource ordering in PreemptionVictimFilter is deterministic (#61)

3 years agoUpgrade Pants (#60)
Stephan Erb [Mon, 24 Jun 2019 20:51:26 +0000 (22:51 +0200)] 
Upgrade Pants (#60)

* Update to latest virtualenv for installing Python helpers

* Update to Pants 1.15.0

This pulls in a few updated code quality checks that requires a few
adjustments of our code base.

* Run Travis tests on Xenial, in line with our Vagrant environment

3 years agoFix failing CI builds (#55)
Stephan Erb [Tue, 12 Mar 2019 22:46:15 +0000 (23:46 +0100)] 
Fix failing CI builds (#55)

* Use pytest version with Python 2 compatible requirements

* Resort imports according to latest isort release

3 years agoUpdate to Pystachio 0.8.5 (#52)
Stephan Erb [Fri, 1 Feb 2019 21:54:56 +0000 (22:54 +0100)] 
Update to Pystachio 0.8.5 (#52)

This picks up a few performance improvements

3 years agoSet IsProd when Job is received by Scheduler (#50)
Renan DelValle [Mon, 3 Dec 2018 20:19:58 +0000 (12:19 -0800)] 
Set IsProd when Job is received by Scheduler (#50)

* Setting a task's tier automatically to the default tier if none has been provided.

* Removing backfill code.

3 years agoUpgrade dev enviornment to Mesos 1.6.1 (#42)
Renan DelValle [Tue, 13 Nov 2018 21:58:36 +0000 (13:58 -0800)] 
Upgrade dev enviornment to Mesos 1.6.1 (#42)

* Upgrade fo Mesos 1.6.1

* Upgrading Vagrantfile to use box 0.0.17.

* Changing permissions for Docker sandbox to match the permissions of pre Mesos 1.6

* Adding link to issue that causes this problem as well as a TODO since we want a cleaner solution.

* Updating release notes to have the Mesos 1.6.1 at the top.

3 years agoMiscellaneous cosmetic fixes and Travis CI badge (#45)
Renan DelValle [Wed, 31 Oct 2018 22:12:15 +0000 (15:12 -0700)] 
Miscellaneous cosmetic fixes and Travis CI badge (#45)

* Mimicking ReviewBoard format in github PR template.

* Adding Travis CI badge to README page.

* Getting rid of stray spaces in RELEASE-NOTES.

3 years agoUpdate Pystachio to 0.8.4 (#46)
Stephan Erb [Tue, 16 Oct 2018 19:30:59 +0000 (21:30 +0200)] 
Update Pystachio to 0.8.4 (#46)

This fixes a few inconsistencies with hashing and equality This is not directly
applicable for Aurora but will be for downstream packages that try
to consume schema definitions in Python 3.

3 years agoCustom executor UI fix (#43)
Renan DelValle [Mon, 15 Oct 2018 21:14:04 +0000 (14:14 -0700)] 
Custom executor UI fix (#43)

* Allowing getTasksWithoutConfig api to return executor name used by task.

* Do not render a link when a task is not thermos based.

* Fixing test that expected all of the executor config to be unset.

3 years agoFix Mesos egg building for CentOS6 (#44)
se choi [Mon, 15 Oct 2018 17:51:05 +0000 (02:51 +0900)] 
Fix Mesos egg building for CentOS6 (#44)

* Change devtoolset-7 (scl-rh)


3 years agoStaggered (Variable batch) Updates (#37)
Renan DelValle [Tue, 9 Oct 2018 00:53:13 +0000 (17:53 -0700)] 
Staggered (Variable batch) Updates (#37)

Updates can now be carried out in batch sizes of differing sizes.


* Adding an example of an update schema with a variable batch update.

* UI now displays the update strategy used by the update along with the max amount of parallel instances being updated at once, batch size, or variable batch update sizes.

Compatibility with 0.21.0:

* Converting old schema to new schema upon receiving it for compatibility with clients using the older schema to ease transition from 0.21.0 to 0.22.0.

* Back-fill will port old thrift schema to new update strategies.

*  batch size is set from update strategy in order to ensure backwards compatibility in case of rolling back to version 0.21.0.

Tests added:

* Added tests that use variable update to verify that it works as expected both in rolling_forward and rolling_backwards cases and various corner cases.

* Added a fail fast tests when combining update strategies and wait_for_batch_completion or batch size.

Future TODO:

* Added TODO to add verification to the number of instances running on end to end tests during batch updates.

* Remove deprecated Thrift fields once 0.22.0 is released.

3 years agoMemoize loader.load and loader.load_json (#41)
Daniel Knightly [Tue, 2 Oct 2018 22:55:54 +0000 (15:55 -0700)] 
Memoize loader.load and loader.load_json (#41)

* Memoize loader.load and loader.load_json

Problem: when reusing the aurora.client.cli.context to process multiple jobkeys from a config_file, the client currently reloads and processes the config file for each jobkey. For large complicated aurora files this can take ~40s to process which makes it expensive to do this every time for each jobkey.

Solution: memoize the loader.load() on the config file path so that we only load and process each config file once.

Result: We only need to load and process each config file once. For config files with ~50keys and a 40s load time, this significantly reduces the overall time spent inspecting the jobs.

3 years agoMove Mesos Egg generation from Vagrant to Docker (#40)
Renan DelValle [Mon, 1 Oct 2018 20:02:42 +0000 (13:02 -0700)] 
Move Mesos Egg generation from Vagrant to Docker (#40)

* Verified Ubuntu Xenial and Trusty both work.

* Verified Debian Jessie works.

* Verified CentOS7 build is working

* Adding CentOS6 but it has been broken for some time. Will leave in for now but it's a candidate to be removed unless fixed.

4 years agoIncrementing snapshot version to 0.22.0-SNAPSHOT.
Renan DelValle [Thu, 6 Sep 2018 20:56:09 +0000 (13:56 -0700)] 
Incrementing snapshot version to 0.22.0-SNAPSHOT.

4 years agoUpdating CHANGELOG for 0.21.0 release.
Renan DelValle [Thu, 6 Sep 2018 20:56:09 +0000 (13:56 -0700)] 
Updating CHANGELOG for 0.21.0 release.

4 years agoChanging git repository location for release and release-candidate scripts.
Renan DelValle [Thu, 6 Sep 2018 20:54:36 +0000 (13:54 -0700)] 
Changing git repository location for release and release-candidate scripts.

4 years agoRevert "Updating CHANGELOG for 0.21.0 release."
Renan DelValle [Wed, 5 Sep 2018 18:40:06 +0000 (11:40 -0700)] 
Revert "Updating CHANGELOG for 0.21.0 release."

This reverts commit ed8a33b40778e76c7577437545572fe5bf28f611.

4 years agoRevert "Incrementing snapshot version to 0.22.0-SNAPSHOT."
Renan DelValle [Wed, 5 Sep 2018 18:39:37 +0000 (11:39 -0700)] 
Revert "Incrementing snapshot version to 0.22.0-SNAPSHOT."

This reverts commit d9495e52815837f6ff2740fb5c3db7ae9fe53972.

4 years agoFix sandbox permission errors with Mesos 1.6.0
Stephan Erb [Thu, 9 Aug 2018 10:34:06 +0000 (12:34 +0200)] 
Fix sandbox permission errors with Mesos 1.6.0

Mesos 1.6.0 creates sandboxes with permissions 750 rather than 755. This
breaks the assumption of Thermos that non-privileged processes can still
read the sandbox content.

This change is necessary even when container images are used via the
Mesos containerizer, as certain processes such as the stdout log
rotation continue to run outside of the image.

4 years agoRefactor DirectorySandbox to take the Mesos sandbox path
Stephan Erb [Thu, 9 Aug 2018 10:33:22 +0000 (12:33 +0200)] 
Refactor DirectorySandbox to take the Mesos sandbox path

Rather than taking "/path/to/mesos_task_dir/sandbox" as a constructor
argument, the sandbox objects are now passed just "/path/to/mesos_task_dir"
as this simplifies a few operations that need the folder created by

The "sandbox" subfolder is still created with the same name, but this is
now only handled internally. There is no user-visible behaviour change.

4 years agoLog full stack traces when a Thermos process fails
Stephan Erb [Thu, 9 Aug 2018 10:09:41 +0000 (12:09 +0200)] 
Log full stack traces when a Thermos process fails

For example, rather than just a "Permission denied" one gets a full
stacktrace of which access or operation caused the issue.

4 years agoSwitch Thermos runner to simple disk log layout
Stephan Erb [Thu, 9 Aug 2018 10:07:09 +0000 (12:07 +0200)] 
Switch Thermos runner to simple disk log layout

This simplifies debugging of Thermos runner issues significantly, as
there is just one relevant log file to look at.

For further details, please see the prior discussion at

4 years agoIncrementing snapshot version to 0.22.0-SNAPSHOT.
Renan DelValle [Tue, 4 Sep 2018 19:19:54 +0000 (12:19 -0700)] 
Incrementing snapshot version to 0.22.0-SNAPSHOT.

4 years agoUpdating CHANGELOG for 0.21.0 release.
Renan DelValle [Tue, 4 Sep 2018 19:19:53 +0000 (12:19 -0700)] 
Updating CHANGELOG for 0.21.0 release.

4 years agoRemoving MD5 check from verify release candidate script and release script (#36)
Renan DelValle [Tue, 4 Sep 2018 19:16:27 +0000 (12:16 -0700)] 
Removing MD5 check from verify release candidate script and release script (#36)

* Removing MD5 check from release verification script.

* Replacing MD5 with SHA-512 on release script.

4 years agoRemoving MD5 hash from releases as required by new Apache policy.
Renan DelValle [Wed, 29 Aug 2018 23:39:07 +0000 (16:39 -0700)] 
Removing MD5 hash from releases as required by new Apache policy.

Changing location of checksum and type of checksum for release.

4 years agoFixup the pycharm setup script.
John Sirois [Tue, 21 Aug 2018 19:03:15 +0000 (13:03 -0600)] 
Fixup the pycharm setup script.

With modern PyCharm (2018+), virtualenv support for wheels and namespace
packages works, so kill the obsolete `--egg` in our pip installs. Also
leverage `./pants options` to grab the appropriate `pytest`

4 years agoMerge pull request #33 from jordanly/jly/fix-npe-in-sla-aware-updates
David McLaughlin [Fri, 17 Aug 2018 05:49:52 +0000 (22:49 -0700)] 
Merge pull request #33 from jordanly/jly/fix-npe-in-sla-aware-updates

Fix possible NullPointerException in InstanceActionHandler

4 years agoBetter naming in e2e test 33/head
Jordan Ly [Thu, 16 Aug 2018 23:15:05 +0000 (16:15 -0700)] 
Better naming in e2e test

4 years agoFix possible NullPointerException in InstanceActionHandler, add e2e tests around...
Jordan Ly [Thu, 16 Aug 2018 22:30:02 +0000 (15:30 -0700)] 
Fix possible NullPointerException in InstanceActionHandler, add e2e tests around feature

4 years agoAdd Travis file for Aurora tests (#29)
Stephan Erb [Sat, 11 Aug 2018 19:18:26 +0000 (21:18 +0200)] 
Add Travis file for Aurora tests (#29)

4 years agoDeleting message discouraging PRs on github now that we are able to take them.
Renan DelValle [Wed, 1 Aug 2018 00:28:56 +0000 (17:28 -0700)] 
Deleting message discouraging PRs on github now that we are able to take them.

4 years agoUpdate URLS for git repositories.
Jordan Ly [Tue, 31 Jul 2018 23:04:56 +0000 (16:04 -0700)] 
Update URLS for git repositories.

Updating the references from the old git URL to the new gitbox one.

Reviewed at

4 years agoPrune updates that have no surviving job keys in the TaskStore.
David McLaughlin [Thu, 26 Jul 2018 23:50:12 +0000 (16:50 -0700)] 
Prune updates that have no surviving job keys in the TaskStore.

We are running into a situation where we have a lot of short-lived ad-hoc services launched and their updates are sticking around for 30 days, even though the tasks are garbage collected much sooner. This change picks up those updates and prunes them as soon as the tasks are gone.

Reviewed at

4 years agoAdd size metric for memory stores, add MemSchedulerStoreTest
Jordan Ly [Thu, 26 Jul 2018 23:01:16 +0000 (16:01 -0700)] 
Add size metric for memory stores, add MemSchedulerStoreTest

Currently, we only track the size metrics for:
- # of tasks via `task_store_index_(host|job)`
- # of crons via `mem_storage_cron_size`

I am hoping to add:
- # of attributes via `mem_storage_attributes_size`
- # of maintenance requests via `mem_storage_maintenance_size`
- # of job updates via `mem_storage_update_size`
- # of quotas via `mem_storage_quota_size`

This will help us track the growth of stores over time. Additionally, I added
a `MemSchedulerStoreTest` since one did not exist previously and nothing was
extending the abtract version of the test.

Reviewed at

4 years agoEnable SLA-aware updates
Jordan Ly [Thu, 19 Jul 2018 21:28:40 +0000 (14:28 -0700)] 
Enable SLA-aware updates

This patch enables SLA-aware updates.

Following, tasks may now specify custom SLA
policies that will be respected by the scheduler during maintenance. This patch
integrates into the same system to allow users to specify if they want their
updates to also respect SLA. Please see
for a more detailed description.

This patch adds two optional Thrift fields, `slaAware` to `JobUpdateSettings`
and `message` to `JobInstanceUpdateEvent`. These should be forward and
backwards compatible.

Reviewed at

4 years agoUnhandled exception should not strand runner in STARTING state.
Santhosh Kumar Shanmugham [Wed, 18 Jul 2018 22:23:27 +0000 (15:23 -0700)] 
Unhandled exception should not strand runner in STARTING state.

If the ThermoTaskRunner encounters an Exception when trying to
fork the process, it bubbles this up to the Executor which does
not handle execptions other than TaskError. This leads to the
executor leaving the task in STARTING state and we end up with
tasks that get stranded in this state.

Fix it so that any unknown expection that is thrown when starting
a runner leads to task failure and get marked as FAILED.

Testing Done:
./gradlew test
./pants test src/test/python/apache::

Reviewed at

4 years agoTaskQuery struct needs to be optional
Ezequiel Torres [Tue, 17 Jul 2018 08:40:04 +0000 (10:40 +0200)] 
TaskQuery struct needs to be optional

In languages like Go, types are not optionals by default.
The actual api.thift don't let create queries with just a
few fields in Go since all the fields are required

Bugs closed:

Reviewed at

4 years agoUpdated restore instructions to reflect using offline rehydration tool.
Renan DelValle [Fri, 29 Jun 2018 22:36:03 +0000 (15:36 -0700)] 
Updated restore instructions to reflect using offline rehydration tool.

Rewrote the instructions for recovering from backup based upon using Bill's tool to recover with all instances offline.

Reviewed at

4 years agoDisplay negation of constraint in TaskConfigSummary.
Santhosh Kumar Shanmugham [Tue, 26 Jun 2018 00:21:42 +0000 (17:21 -0700)] 
Display negation of constraint in TaskConfigSummary.

Testing Done:
./gradlew test

Reviewed at

4 years agoFix style of TaskConfigSummary.
Santhosh Kumar [Fri, 22 Jun 2018 19:54:08 +0000 (12:54 -0700)] 
Fix style of TaskConfigSummary.

4 years agoIntroduce a `countdown-ms` param in Coordinator request.
Santhosh Kumar Shanmugham [Thu, 21 Jun 2018 00:27:48 +0000 (17:27 -0700)] 
Introduce a `countdown-ms` param in Coordinator request.

With the introduction of `timeoutSecs` for HostMaintenanceRequest
and the `CoordinatorSlaPolicy`, it will be beneficial to expose the
time remaining until forced maintenance to the Coordinator. Send
the time remaining until force task maintenance as an extra query
param to the Coordinator.

Testing Done:
./gradlew test

**Tested on Vagrant**

***Logs from Coordinator***
Request received for {'task': ['devcluster/vagrant/test/coordinator/0']}
  "forceMaintenanceCountdownMs": "604755646",
  "task": "devcluster/vagrant/test/coordinator/0",
  "taskConfig": {
    "assignedTask": {
      "assignedPorts": {},
      "instanceId": 0,
      "slaveHost": "",
      "slaveId": "f0336813-864b-4c8f-914c-80f8cef3b61d-S0",
      "task": {
Responded: True

Reviewed at

4 years agoExport count-down to forceful Maintenace as a metric.
Santhosh Kumar Shanmugham [Tue, 19 Jun 2018 17:31:50 +0000 (10:31 -0700)] 
Export count-down to forceful Maintenace as a metric.

Since the scheduler enforces a maximum timeout on each
maintenance request and we now allow CoordinatorSlaPolicy
to block maintenance, we need to know which tasks are
running into the force maintenance timeout. Export maintenace
count down time as a metric brokwen down by task keys.

Testing Done:
./gradlew test

**Tested in Vagrant**
sshanmugham::tw-mbp-sshanmugham {~}$ curl | grep maintenance_countdown
######################################################################## 100.0%
maintenance_countdown_ms_vagrant/test/coordinator/0 264523
maintenance_countdown_ms_vagrant/test/coordinator/1 24476
sshanmugham::tw-mbp-sshanmugham {~}$ curl | grep maintenance_countdown
######################################################################## 100.0%
maintenance_countdown_ms_vagrant/test/coordinator/0 264523
maintenance_countdown_ms_vagrant/test/coordinator/1 24476
sshanmugham::tw-mbp-sshanmugham {~}$ curl | grep maintenance_countdown
######################################################################## 100.0%
maintenance_countdown_ms_vagrant/test/coordinator/0 264523
maintenance_countdown_ms_vagrant/test/coordinator/1 0

Reviewed at

4 years agoExport number of tasks lost per dedicated role.
Santhosh Kumar Shanmugham [Mon, 18 Jun 2018 23:39:34 +0000 (16:39 -0700)] 
Export number of tasks lost per dedicated role.

When there are 100s of dedicated roles in a cluster
the task_LOST_<job> metric is not enough. Introduce
per dedicated role metric for easier diagnosis.

Testing Done:
./gradlew test

**Tested on Vagrant**
tasks_lost_dedicated____web.multi 0
tasks_lost_dedicated_vagrant 2

Reviewed at

4 years agoUpdate to Mesos 1.5
Stephan Erb [Sat, 16 Jun 2018 03:02:44 +0000 (20:02 -0700)] 
Update to Mesos 1.5

This is an upgrade to Mesos 1.5.0. While 1.5.1 is already released, there are no Debian
packages and jars available yet.

The mesos.interface Python package has a requirement on a newer protobuf version.
I applied the same update to Java for consistency.

* Mesos 1.5 changelog:
* Mesos update instructions:
* Protobuf changelog:

Reviewed at

4 years agoClose AsyncHttpClient on scheduler shutdown.
Santhosh Kumar Shanmugham [Fri, 15 Jun 2018 22:08:22 +0000 (15:08 -0700)] 
Close AsyncHttpClient on scheduler shutdown.

Convert SlaManager into an AbstractIdleService and explicitly
close the AsyncHttpClient on scheduler shutdown. Otherwise
we run the rise of having a stuck scheduler JVM that is unable
to shutdown due to any on the remaining non-daemon http client

Testing Done:
./gradlew test

**Tested in vagrant:**
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.456 [BlockingDriverJoin, StateMachine] SchedulerLifecycle state machine transition DEAD -> DEAD
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.457 [BlockingDriverJoin, SchedulerLifecycle] Shutdown already invoked, ignoring extra call.
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.458 [TearDownShutdownRegistry STOPPING, StateMachine] storage state machine transition READY -> STOPPED
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.459 [TearDownShutdownRegistry STOPPING, Lifecycle] Shutting down application
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.459 [TearDownShutdownRegistry STOPPING, ShutdownRegistry$ShutdownRegistryImpl] Action controller has already completed, subsequent calls ignored.
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.461 [main, SchedulerMain] Stopping scheduler services.
**Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.470 [SlaManager$$EnhancerByGuice$$40d3047 STOPPING, SlaManager] Shutting down SlaManager async http client.**
Jun 15 20:48:53 aurora aurora-scheduler[8719]: I0615 20:48:53.475 [CronLifecycle STOPPING, CronLifecycle] Shutting down Quartz cron scheduler.
Jun 15 20:48:56 aurora aurora-scheduler[8719]: I0615 20:48:56.167 [main, SchedulerMain] Application run() exited.

Bugs closed: AURORA-1990

Reviewed at

4 years agoSpeedup regular Thermos observer checkpoint refresh
Stephan Erb [Thu, 14 Jun 2018 13:02:48 +0000 (13:02 +0000)] 
Speedup regular Thermos observer checkpoint refresh

Profiling indicates that a significant part of the refresh time os spend in `os.path.realpath`.
This was introduced in to properly handle the `latest`
symlink in the Mesos folder layout.

This patch takes a slightly different approach to solve this problem based on `os.path.islink`.
The latter is faster as it just needs to look at a single folder rather than an entire path.

Testing Done:
I have tested this build on a node with 55 running tasks and 2004 finished ones.

Before this patch:

    D0320 22:20:44.887248 25771] TaskObserver: finished checkpoint refresh in 0.92s
    D0320 22:20:50.746316 25771] TaskObserver: finished checkpoint refresh in 0.93s
    D0320 22:20:56.590157 25771] TaskObserver: finished checkpoint refresh in 0.89s

With this patch:

    D0320 22:18:53.545236 16250] TaskObserver: finished checkpoint refresh in 0.48s
    D0320 22:18:59.031919 16250] TaskObserver: finished checkpoint refresh in 0.49s
    D0320 22:19:04.512358 16250] TaskObserver: finished checkpoint refresh in 0.48s

Reviewed at

4 years agoRemove resource properties from ResourceAggregate
Jing Chen [Thu, 14 Jun 2018 11:35:50 +0000 (13:35 +0200)] 
Remove resource properties from ResourceAggregate

Bugs closed: AURORA-1975

Reviewed at

4 years agoUpdate Pants to 1.6.0 and Virtualenv to 16.0.0
Stephan Erb [Wed, 13 Jun 2018 19:50:27 +0000 (19:50 +0000)] 
Update Pants to 1.6.0 and Virtualenv to 16.0.0

Beyond a regular version bump, this fixes the build on older versions of MacOS.

Testing Done:

Reviewed at

4 years agoRemove maintenance request after a host is drained.
Santhosh Kumar Shanmugham [Thu, 7 Jun 2018 00:16:11 +0000 (17:16 -0700)] 
Remove maintenance request after a host is drained.

Delete the `HostMaintenaceRequest` once the host has been

Testing Done:

Reviewed at

4 years agoEnable `Tasks` to specify their own custom maintenance SLA.
Santhosh Kumar Shanmugham [Tue, 5 Jun 2018 23:15:52 +0000 (16:15 -0700)] 
Enable `Tasks` to specify their own custom maintenance SLA.

`Tasks` can specify custom SLA requirements as part of
their `TaskConfig`. One of the new features is the ability
to specify an external coordinator that can ACK/NACK
maintenance requests for tasks. This will be hugely
beneficial for onboarding services that cannot satisfactorily
specify SLA in terms of running instances.

Maintenance requests are driven from the Scheduler to
improve management of nodes in the cluster.

Testing Done:

Bugs closed: AURORA-1978

Reviewed at

4 years agoIntroduce structs to enable specifying custom SLA.
Santhosh Kumar Shanmugham [Mon, 21 May 2018 23:40:16 +0000 (16:40 -0700)] 
Introduce structs to enable specifying custom SLA.

Add `SlaPolicy` and `HostMaintenanceRequest` structs
to the thrift definition and introduce a new `HostMaintenanceStore`
for tracking maintenance requests. These changes will be used in for implementing custom SLA
and scheduler driven maintenance.

This RB splits the storage related changes from
for better rollback story.

Tested rollback on the vagrant.

Testing Done:

Bugs closed: AURORA-1977

Reviewed at

4 years agoFix flaky Webhook test by ensuring proper error condition
Jordan Ly [Mon, 21 May 2018 21:16:49 +0000 (14:16 -0700)] 
Fix flaky Webhook test by ensuring proper error condition

Attempt #3 at fixing the flaky Webhook test once and for all.

Previously, I was testing the error condition by hitting a bad url with a port
of -1. I believe this was erroneous (I am assuming the -1 overflowed into
a valid port). Additionally, there was a timing associated with the test which
could make it flaky as well.

I ensured that the test hit a bad host url and removed the timing for a more
deterministic test.

Reviewed at

4 years agoaurora update info command should print out update metadata
Jing Chen [Mon, 7 May 2018 18:49:31 +0000 (11:49 -0700)] 
aurora update info command should print out update metadata
* Metadata is represented as a list of key value pair

Bugs closed: AURORA-1906

Reviewed at

4 years agoChanging Vagrant requirements to latest version for launching our local dev box.
Renan DelValle [Fri, 4 May 2018 17:47:49 +0000 (10:47 -0700)] 
Changing Vagrant requirements to latest version for launching our local dev box.

Reviewed at

4 years agoBreakdown resource stats by role
David McLaughlin [Thu, 26 Apr 2018 23:51:23 +0000 (16:51 -0700)] 
Breakdown resource stats by role

Currently Aurora exports total quota and resource reservation over time. This can be very useful to see changes in trends of production and free tier capacity. One challenge (particularly in a self-serve capacity environment) is identifying and tracking where large deltas came from. This change exports both quota and resource usage per role to help with this.

Reviewed at

4 years agoUpgrade to psutil with optimized Process.children()
Stephan Erb [Sun, 22 Apr 2018 19:53:44 +0000 (21:53 +0200)] 
Upgrade to psutil with optimized Process.children()

The changelog claims: `Process.children() is 2x faster on UNIX and 2.4x faster
on Linux.`

This is needed for all stats retrieved via `ProcessTreeCollector`. An update
therefore seems worthwhile.

Reviewed at

4 years agoFix the json endpoints in thermos
Reza Motamedi [Fri, 20 Apr 2018 20:29:24 +0000 (13:29 -0700)] 
Fix the json endpoints in thermos

# Fixing the json endpoints in thermos

`TaskObserverJSONBindings` is mixin that includes a few routes that serve info about tasks and processes in pure JSON format. The functions are overridden in the main bottle server, so the routes are not accessible. This patch fixes it by renaming those methods.

Check here:

Testing Done:
There was no unit test affected.

After fixing the routes server the expected content.
? curl
{"type": "all", "tasks": [{"status": "sleeping", "ram": 3727360, "state_timestamp": 1523728477, "threads": 2, "user": 0.24, "disk": 10117120, "launch_timestamp": 1523728477, "vms": 22990848, "rss": 3727360, "name": "hello", "task_id": "www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098", "system": 0.34, "ports": {}, "state": "ACTIVE", "role": "www-data", "cpu": 0.0, "nice": 0}], "num": 20, "task_count": 1, "offset": 0}%

? curl
{"www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098": {"task": {"processes": [{"daemon": false, "name": "hello", "max_failures": 1, "ephemeral": false, "min_duration": 5, "cmdline": "\n    while true; do\n      echo hello world\n      sleep 10\n    done\n  ", "final": false}], "name": "hello", "finalization_wait": 30, "max_failures": 1, "max_concurrency": 0, "resources": {"gpu": 0, "disk": 134217728, "ram": 134217728, "cpu": 1.0}, "constraints": [{"order": ["hello"]}]}, "name": "hello", "task_id": "www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098", "processes": {"failed": [], "running": ["hello"], "killed": [], "success": [], "waiting": []}, "state_timestamp": 1523728477, "state": "ACTIVE", "resource_consumption": {"status": "sleeping", "disk": 10113024, "ram": 3719168, "system": 0.33, "vms": 22990848, "threads": 2, "user": 0.24, "rss": 3719168, "cpu": 0.0, "nice": 0}, "user": "www-data", "launch_timestamp": 1523728477, "ports": {}}}%

? curl\?task_id\=www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098
{"www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098": {"task": {"processes": [{"daemon": false, "name": "hello", "max_failures": 1, "ephemeral": false, "min_duration": 5, "cmdline": "\n    while true; do\n      echo hello world\n      sleep 10\n    done\n  ", "final": false}], "name": "hello", "finalization_wait": 30, "max_failures": 1, "max_concurrency": 0, "resources": {"gpu": 0, "disk": 134217728, "ram": 134217728, "cpu": 1.0}, "constraints": [{"order": ["hello"]}]}, "name": "hello", "task_id": "www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098", "processes": {"failed": [], "running": ["hello"], "killed": [], "success": [], "waiting": []}, "state_timestamp": 1523728477, "state": "ACTIVE", "resource_consumption": {"status": "sleeping", "disk": 10141696, "ram": 3731456, "system": 0.35, "vms": 22994944, "threads": 2, "user": 0.24, "rss": 3731456, "cpu": 0.0, "nice": 0}, "user": "www-data", "launch_timestamp": 1523728477, "ports": {}}}%

? curl
{"state": "RUNNING", "process_name": "hello", "used": {"status": "sleeping", "ram": 3735552, "system": 0.34, "vms": 22990848, "threads": 2, "user": 0.24, "rss": 3735552, "cpu": 0.0, "nice": 0}, "start_time": 1523728477.867429, "process_run": 0}%

? curl\?task_id\=www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098
{"www-data-prod-hello-0-00e58d09-a67f-4a46-94a0-15bcad26a098": {"hello": {"state": "RUNNING", "process_name": "hello", "used": {"status": "sleeping", "ram": 3735552, "system": 0.35, "vms": 22994944, "threads": 2, "user": 0.25, "rss": 3735552, "cpu": 0.0005000061512750167, "nice": 0}, "start_time": 1523728477.867429, "process_run": 0}}}%

Reviewed at

4 years agoAdd --pid-file flag to `aurora task ssh` to write the PID of the underlying SSH comma...
Sameer Brenn [Fri, 20 Apr 2018 20:26:08 +0000 (13:26 -0700)] 
Add --pid-file flag to `aurora task ssh` to write the PID of the underlying SSH command to a specified file.

My team has some scripts to start devel shards which create tunnels:

aurora task ssh -L 8002:http --ssh-options "-f -N" "$DC/$USER/devel/proxyapp/0"
aurora task ssh -L 9002:health --ssh-options "-f -N" "$DC/$USER/devel/proxyapp/0"

We use fixed local port numbers because that way we can run dependent services locally that look for locally-running copies of the
same service on a fixed port, but then those requests get tunnelled through to the devel shard.

When the devel shard is restarted, however, the tunnel is still running so the subsequent call to create a new tunnel fails because
it can't bind to the fixed port.

If we save the SSH process PID to a file, we can then kill existing tunnel to the old instance before starting up the new tunnel to the
new instance.

Testing Done:
$ ./pants test src/test/python/apache/aurora/client::

And when applying the same patch to our local repo at Twitter:

$ ./pants run twitter/src/main/python/twitter/aurora/client/cli_internal:aurora_internal -- task ssh -L 8005:http --ssh-options "-n -N" --pid-file /tmp/p "smf1/sbrenn/devel/proxyapp/0" &
$ ps -p `cat /tmp/p`
  PID TTY           TIME CMD
34729 ttys000    0:00.05 ssh -t -n -N -L cd /var/lib/mesos/slaves/*/frameworks/*/exec

Reviewed at

4 years agoAdd initial interval before searching for preemption slots
Jordan Ly [Thu, 12 Apr 2018 20:28:48 +0000 (13:28 -0700)] 
Add initial interval before searching for preemption slots

Between failovers, tasks that normally would not require preemption could be in
a PENDING state for an extended period of time and become eligible for
preemption. Thus, when the scheduler starts, offers could not have been
processed yet and the tasks can preempt other tasks needlessly.

Added an initial delay to preemption slot searching on scheduler startup so
PENDING tasks have a chance to be scheduled before preempting.

Reviewed at

4 years agoRemove flaky test/assertion in PendingTaskProcessorTest
Jordan Ly [Wed, 11 Apr 2018 23:46:59 +0000 (16:46 -0700)] 
Remove flaky test/assertion in PendingTaskProcessorTest

I realized I added a flaky assertion in `PendingTaskProcessorTest` in

I got extremely unlucky and every time I ran the tests it passed until after
I merged :( The stat `preemptor_slot_search_[success|failed]_for_[name]` will
not appear unless the job slot search actually succeeds or fails (i.e. it
cannot be 0 since it is dynamically generated). We were getting lucky where the
test would search for JOB_A slots first and create the stat. However, when
JOB_B gets searched first, the JOB_A stat is never created because there are no
slaves to search through anymore.

I removed the assertion because there is a sufficient assertion directly above,
and the stat is tested in multiple other tests.

The assertion would result in a `NullPointerException`.

Reviewed at

4 years agoAdd more preemption metrics (jobs preempted, preemptors) and logging statements
Jordan Ly [Wed, 11 Apr 2018 21:41:52 +0000 (14:41 -0700)] 
Add more preemption metrics (jobs preempted, preemptors) and logging statements

Added additional metrics: ```
1. preemptor_tasks_preempted_[JOB_NAME] - The number of times [JOB_NAME] has
   been preempted for another task.
2. preemptor_tasks_preemptor_[JOB_NAME] - The number of times [JOB_NAME] has
   preempted another task.
3. preemptor_slot_search_[success|failed]_for_[JOB_NAME] - The number of times
   [JOB_NAME] has or hasn't found a slot for preemption.
4. preemptor_slot_validation_[success|failed]_for_[JOB_NAME] - The number of
   times [JOB_NAME] succeeded to or failed to validate a slot before
preemption.  ```

Additionally, added some `` statements for better visibility into
preemption/preemption slot finding.

Did a little bit of code refactoring as well.

Reviewed at

4 years agoChaning default reviewers as well as reflecting the new address of gorealis.
Renan DelValle [Sun, 8 Apr 2018 00:01:56 +0000 (17:01 -0700)] 
Chaning default reviewers as well as reflecting the new address of gorealis.

Thank you Joshua and Zameer for previously taking up this role.

Reviewed at

4 years agoIncrementing snapshot version to 0.21.0-SNAPSHOT.
Renan DelValle [Wed, 28 Mar 2018 19:20:05 +0000 (12:20 -0700)] 
Incrementing snapshot version to 0.21.0-SNAPSHOT.

4 years agoUpdating CHANGELOG for 0.20.0 release.
Renan DelValle [Wed, 28 Mar 2018 19:20:05 +0000 (12:20 -0700)] 
Updating CHANGELOG for 0.20.0 release.

4 years agoPreparing for release.
Renan DelValle [Wed, 28 Mar 2018 19:15:39 +0000 (12:15 -0700)] 
Preparing for release.

4 years agoReverting changes done by release script due to failed
Renan DelValle [Tue, 27 Mar 2018 21:18:22 +0000 (14:18 -0700)] 
Reverting changes done by release script due to failed
vote for 0.20.0 RC0

Revert "Preparing for release."

This reverts commit a60367626e71786fa7a23a49510a437986a9a074.

Revert "Updating CHANGELOG for 0.20.0 release."

This reverts commit 5a26413f72b8a428f286bed286aa4612c4123884.

Revert "Incrementing snapshot version to 0.21.0-SNAPSHOT."

This reverts commit a12b84444e0ba4227e6a41b0f7e82045b2dcc016.

4 years agoEnd to end tests bugfix
Renan DelValle [Tue, 27 Mar 2018 21:12:16 +0000 (14:12 -0700)] 
End to end tests bugfix

* Fixing kerberos end to end test. Previous version had it's signing key revoked resulting in the test failing.

* Excluding kerberos unit file from being copied on provision as it's later copied and deleted by the end to end test.

* Bypass leader redirect changed from upstart to systemd. This test wasn't being run because the kerberos test was failing.

* Changing docker image to slim-stretch in docker aurora tests to address AURORA-1974.

* Added daemon-reload to aurorabuild whenever the daemons are restarted.

Bugs closed: AURORA-1974

Reviewed at

4 years agoIntroduce mesos disk collector
Reza Motamedi [Mon, 26 Mar 2018 20:47:13 +0000 (13:47 -0700)] 
Introduce mesos disk collector

When disk isolation is enabled in a Mesos agent it calculates the disk usage for each container.
Thermos Observer also monitors disk usage using `twitter.common.dirutil`, essentially repeating the work already done by the agent. In practice, we see that disk monitoring is one of the most expensive resource monitoring tasks. For instance, when there are deeply nested directories, the CPU utilization of the observer process can easily reach 1.5 CPUs. It would be ideal if we delegate the disk monitoring task to the agent and do it only once. With this approach, when disk collection has improved in the agent (for instance by implementing XFS isolation), we can simply benefit from it without any code change. Some more information about the problem is provided in AURORA-1918.

This patch that introduces `MesosDiskCollector` which queries the agent's API endpoint to lookup disk_used_bytes. Note that there is also resource monitoring in thermos executor. Currently, I left the disk collector there to use the `du` implementation. That can be changed in a later patch.

I modified some vagrant config files including `aurora-executor.service` and `etc_mesos-slave/isolation` for testing. They can be left as is. I included them in this patch to show how this would work e2e.

Testing Done:
- I added unit tests.
- Tested in vagrant and it works as intenced.
- I also built and deployed in our test enviroment. In order to measure imporoved performance I created jobs with nested folders and noticed reduction in CPU utilization of the Observer process, by at least 60%. (1.5 CPU cores to 0.4 CPU cores)

Here is one specific test setup: On two hosts I created a two tasks. Each task creates identical nested directory structures and files in them. The overall size is 30GB. test_host_1 runs the current version of observer and test_host_2 runs Observer with this patch and also has mesos_disk_collection enabled. The results are as follows:

rezam[7]TEST_HOST_1 ~ $ while true; do echo `date`; curl localhost:1338/vars -s | grep cpu; sleep 10; done
Thu Mar 22 04:36:17 UTC 2018
observer.observer_cpu 108.9
Thu Mar 22 04:36:27 UTC 2018
observer.observer_cpu 123.2
Thu Mar 22 04:36:38 UTC 2018
observer.observer_cpu 123.2
Thu Mar 22 04:36:48 UTC 2018
observer.observer_cpu 123.2
Thu Mar 22 04:36:58 UTC 2018
observer.observer_cpu 111.0
Thu Mar 22 04:37:08 UTC 2018
observer.observer_cpu 111.0
Thu Mar 22 04:37:18 UTC 2018
observer.observer_cpu 111.0

rezam[7]TEST_HOST_2 ~ $ while true; do echo `date`; curl localhost:1338/vars -s | grep cpu; sleep 10; done
Thu Mar 22 04:36:20 UTC 2018
observer.observer_cpu 1.3
Thu Mar 22 04:36:30 UTC 2018
observer.observer_cpu 1.3
Thu Mar 22 04:36:40 UTC 2018
observer.observer_cpu 1.3
Thu Mar 22 04:36:50 UTC 2018
observer.observer_cpu 1.2
Thu Mar 22 04:37:00 UTC 2018
observer.observer_cpu 1.2
Thu Mar 22 04:37:10 UTC 2018
observer.observer_cpu 1.2
Thu Mar 22 04:37:20 UTC 2018
observer.observer_cpu 1.8

Reviewed at

4 years agoFix 'PreemptorSlotSearchBenchmark', remove 'isProduction' references in benchmark
Jordan Ly [Fri, 23 Mar 2018 20:30:41 +0000 (13:30 -0700)] 
Fix 'PreemptorSlotSearchBenchmark', remove 'isProduction' references in benchmark

This benchmark was using the deprecated `production` flag when building
the tasks for the cluster. `PendingTaskProcessor` depends on `tier`
instead, so this benchmark ended up not testing the correct codepath.

Removed references to `production` and added `tier` instead.
Additionally, removed some unused options.

Reviewed at

4 years agoRemove unused LOST_LOCK_MESSAGE variable in JobUpdateControllerImpl
Jordan Ly [Fri, 23 Mar 2018 17:13:30 +0000 (10:13 -0700)] 
Remove unused LOST_LOCK_MESSAGE variable in JobUpdateControllerImpl

We no longer use locks for updates (context: This was a legacy variable.

Reviewed at

4 years agoAdding support for using custom executors via the Aurora DSL
Renan DelValle [Wed, 21 Mar 2018 01:26:49 +0000 (18:26 -0700)] 
Adding support for using custom executors via the Aurora DSL

Bugs closed: AURORA-1981

Reviewed at

4 years agoSwitch Thermos to lazy log formatting
Stephan Erb [Mon, 19 Mar 2018 09:10:03 +0000 (09:10 +0000)] 
Switch Thermos to lazy log formatting

This is the first part of a small series of Thermos observer performance

As a first iteration, this switches all logging to use the logger-embedded
formatting rather than doing it eager up front. This has the advantage that
we produce less garbage if debug logging is disabled.

Reviewed at

4 years agoPersist scheduler/observer logs to /var/log/aurora/[FILE].log
Jordan Ly [Mon, 19 Mar 2018 20:58:29 +0000 (13:58 -0700)] 
Persist scheduler/observer logs to /var/log/aurora/[FILE].log

`journalctl -u aurora-[executor|scheduler]` still works.

Reviewed at

4 years agoRemove unused module in RecoveryTool, move TaskTestUtil to test folder
Jordan Ly [Mon, 19 Mar 2018 17:07:30 +0000 (10:07 -0700)] 
Remove unused module in RecoveryTool, move TaskTestUtil to test folder

Removing an unused `TierModule` from `RecoveryTool`.

Additionally, resolved an old TODO and moved `TaskTestUtil` to the test folder.
It seems that the old version of JMH could not see test sources but and the upgrade to 0.4.4
seems to fix that.

Reviewed at