Affects Version/s: Marathon 1.3.13, Marathon 1.4.10, Marathon 1.5.5
I observed a behavior with Marathon and I would like to know what do you think about it, if it's a bug of not.
The behavior affects the suspension of an app. The simplest request to suspend an app is this:
Assuming an app called /sleep.
This works as expected. the deployment is correctly created, the Deployments tab on Marathon UI shows it and all app's tasks receive the kill signal almost instantly.
however, if you change some other fields of the app in the same request, like this:
Although the API returns a valid DeploymentId, the deployment is not executed, that is, the Deployments tab on the UI does not show any active deploy, the /v2/deployments endpoint returns an empty list and the kill signal does not reach the tasks until some minutes (delays from 1min to 5min during my tests) later.
I don't know if the delay has any relation to the reconciliation loop that Marathon does.
Important to note is that this problem only happens if some other field (besides the instances field) changes. If my app already has the label "some-label=some-value" the "problematic" PUT request works as expected.
Let me know what do you think about this behavior.
We use Marathon 1.3.13 in production right now and I tested with 1.14.11 locally. Both have this problem. I related this ticket to the 1.4.10 version because the version 1.4.11 seem not be created here in JIRA yet.