HomeMesosphereNo notifications. 4 unresolved issues.

Added async methods to LaunchQueueDelegate interface and used them in deployments
ClosedPublic

Authored by zen-dog on Jun 14 2017, 5:33 PM.

Diff Detail

Repository
rMARATHON marathon
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
There are a very large number of changes, so older changes are hidden. Show Older Changes
zen-dog added inline comments.Jun 21 2017, 4:56 PM
src/main/scala/mesosphere/marathon/core/launchqueue/LaunchQueue.scala
51

Not that I know of. I could create one, but since this part (along with deployments) is probably part of Action/v3/what ever, this ticket would never be touched.

src/main/scala/mesosphere/marathon/core/task/tracker/impl/InstanceTrackerDelegate.scala
46

No, it conflicts with implicit ec: ExecutionContext used below.

src/test/scala/mesosphere/marathon/core/deployment/impl/TaskStartActorTest.scala
35

No, that's a different promise - DeploymentActor becomes this one and completes it when the deployment is done. It should be also Promise[Done] but that has nothing to do with current diff. I can make it a separate one.

zen-dog updated this revision to Diff 3589.Jun 21 2017, 4:56 PM
zen-dog marked an inline comment as done.
  • Third feedback round
jdef added inline comments.Jun 21 2017, 5:00 PM
src/main/scala/mesosphere/marathon/core/deployment/impl/DeploymentActor.scala
5

eh?

64

maybe check for NonFatal instead of catching everything here?

src/main/scala/mesosphere/marathon/core/task/tracker/impl/InstanceTrackerDelegate.scala
46

I thought we were supposed to standardize on the marathon core async global execution context in order for our MDC/actions context propagation to work properly. this looks like a red flag. what am I missing?

src/test/scala/mesosphere/marathon/core/deployment/impl/TaskStartActorTest.scala
255

NonFatal?

jenkins requested changes to this revision.Jun 21 2017, 5:15 PM
This revision now requires changes to proceed.Jun 21 2017, 5:15 PM
✗ Build of 3589 failed jenkins-public-marathon-phabricator-319.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

✗ Build of 3588 failed jenkins-public-marathon-phabricator-320.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

zen-dog updated this revision to Diff 3595.Jun 21 2017, 6:23 PM
zen-dog marked 2 inline comments as done.
  • Fourth round of feedback
src/main/scala/mesosphere/marathon/core/task/tracker/impl/InstanceTrackerDelegate.scala
46

Everbody is using our custom global execution context (linter rejects the scala's one) but if you import it here at the top of the file you'll get:

[error] /Users/adukhovniy/mesosphere/marathon/src/main/scala/mesosphere/marathon/core/task/tracker/impl/InstanceTrackerDelegate.scala:33: ambiguous implicit values:
[error]  both value ec of type scala.concurrent.ExecutionContext
[error]  and value global in object ExecutionContexts of type => scala.concurrent.ExecutionContext
...
jenkins requested changes to this revision.Jun 21 2017, 6:37 PM
This revision now requires changes to proceed.Jun 21 2017, 6:37 PM
✗ Build of 3595 failed jenkins-public-marathon-phabricator-326.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

jdef accepted this revision.Jun 21 2017, 7:00 PM
zen-dog updated this revision to Diff 3608.Jun 22 2017, 2:49 PM
zen-dog marked an inline comment as done.
  • Adding debug test logging to figure out AppDeployIntegrationTest failures and some minor improvements
zen-dog added inline comments.Jun 22 2017, 2:50 PM
src/main/scala/mesosphere/marathon/core/deployment/impl/TaskReplaceActor.scala
135–145

On a second thought - I realized yesterday why I didn't make the method completely async in the first place: method changes instancesStarted (actor's state) and doing it from an async block will create a race condition. I could make it Atomic of course but prefer not to. Reverted to first implementation.

jenkins accepted this revision.Jun 22 2017, 3:15 PM
This revision is now accepted and ready to land.Jun 22 2017, 3:15 PM
✔ Build of 3608 completed jenkins-public-marathon-phabricator-335.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "48c0dfed54da6f430f7bf0b8603b79c171832f59"

\\ ٩( ᐛ )و //

✔ Build of 3608 completed jenkins-public-marathon-phabricator-336.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "6ffd649de7558f44756cbd481c706c1dae1e8f73"

\\ ٩( ᐛ )و //

✔ Build of 3608 completed jenkins-public-marathon-phabricator-337.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "9f71f447c17bc3ec8d30c632a41d4d8d24e40e23"

\\ ٩( ᐛ )و //

jdef added inline comments.Jun 22 2017, 3:43 PM
src/main/scala/mesosphere/marathon/core/deployment/impl/TaskReplaceActor.scala
133

thanks for this

zen-dog updated this revision to Diff 3610.Jun 22 2017, 3:57 PM
  • Setting the logging level back to INFO

I don't know if that's the extra logging (on DEBUG level) but AppDeployIntegrationTest doesn't fail anymore :(

jeschkies added inline comments.Jun 22 2017, 4:02 PM
src/main/scala/mesosphere/marathon/core/deployment/impl/TaskReplaceActor.scala
135–145

Hm, Why is it return a Future[Done]? It will alway finished immediately without waiting for the addAsync. Is this what we want?

jenkins accepted this revision.Jun 22 2017, 4:14 PM
✔ Build of 3610 completed jenkins-public-marathon-phabricator-339.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "5007fd2138789f182ef08ef100479a026db22ebe"

\\ ٩( ᐛ )و //

zen-dog updated this revision to Diff 3612.Jun 22 2017, 4:24 PM
  • A minor issue in TaskReplaceActor fixed
zen-dog added inline comments.Jun 22 2017, 4:26 PM
src/main/scala/mesosphere/marathon/core/deployment/impl/TaskReplaceActor.scala
135–145

You're right. Should be if else. Done

jenkins accepted this revision.Jun 22 2017, 4:40 PM
✔ Build of 3612 completed jenkins-public-marathon-phabricator-340.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "8cc026e0597181c28596b4bad9eeac0a14a04c42"

\\ ٩( ᐛ )و //

jenkins requested changes to this revision.Jun 22 2017, 5:54 PM
This revision now requires changes to proceed.Jun 22 2017, 5:54 PM
✗ Build of 3612 failed jenkins-public-marathon-phabricator-341.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

zen-dog updated this revision to Diff 3614.Jun 22 2017, 7:06 PM
  • Trying to make tests great again

It seems like at least a few tests AppDeployIntegrationTest are flaky. I'll keep iterating because I don't want to introduce new flaky tests. I'll set up a test loop here: Marathon/job/marathon-sandbox/job/marathon-loop-ad-async-launch-queue/ and will gather statistics tomorrow.

jenkins accepted this revision.Jun 22 2017, 7:31 PM
This revision is now accepted and ready to land.Jun 22 2017, 7:31 PM
✔ Build of 3614 completed jenkins-public-marathon-phabricator-342.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "d318228b94e56e12b6d29295d5b0fe06ff2cf091"

\\ ٩( ᐛ )و //

✔ Build of 3612 completed jenkins-public-marathon-phabricator-343.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "46123f8ea8cd73c0af885cd84d812e08e553fe89"

\\ ٩( ᐛ )و //

zen-dog updated this revision to Diff 3618.Jun 23 2017, 2:03 PM
  • Fixed a flaky TaskStartActorTest and added a few comments
jenkins requested changes to this revision.Jun 23 2017, 2:14 PM
This revision now requires changes to proceed.Jun 23 2017, 2:14 PM
✗ Build of 3618 failed jenkins-public-marathon-phabricator-347.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

jenkins accepted this revision.Jun 23 2017, 2:35 PM
This revision is now accepted and ready to land.Jun 23 2017, 2:35 PM
✔ Build of 3618 completed jenkins-public-marathon-phabricator-348.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "7384a0a6f54a84f0aa17db10277f6ecdd3e5d8d0"

\\ ٩( ᐛ )و //

zen-dog updated this revision to Diff 3619.Jun 23 2017, 3:10 PM
  • ...and more veryfing in TaskStartActorTest
jenkins requested changes to this revision.Jun 23 2017, 3:24 PM
This revision now requires changes to proceed.Jun 23 2017, 3:24 PM
✗ Build of 3619 failed jenkins-public-marathon-phabricator-349.

Error message:

Stage Compile and Test failed.

(๑′°︿°๑)

jenkins accepted this revision.Jun 25 2017, 11:39 PM
This revision is now accepted and ready to land.Jun 25 2017, 11:39 PM
✔ Build of 3619 completed jenkins-public-marathon-phabricator-354.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-594-g197d5f5.tgz",
"sha1"" "ce64d62191fe40872e314c699b4333681ee29642"

\\ ٩( ᐛ )و //

zen-dog updated this revision to Diff 3634.Jun 27 2017, 12:01 PM

Rebased on master and moved IT stabilizing commits to a separate diff

jenkins accepted this revision.Jun 27 2017, 12:21 PM
✔ Build of 3634 completed jenkins-public-marathon-phabricator-361.

You can create a DC/OS with your patched Marathon by creating a new pull
request with the following changes in buildinfo.json:

"url": "https://downloads.mesosphere.io/marathon/snapshots/marathon-1.5.0-SNAPSHOT-618-g48bfffd.tgz",
"sha1": "ad5182db4e3ff2d1e3084fc9dde27e2eef9817c2"

\\ ٩( ᐛ )و //

jeschkies accepted this revision.Jun 27 2017, 12:26 PM

Nice. Let's go for it.

This revision was automatically updated to reflect the committed changes.