Uploaded image for project: 'Marathon'
  1. Marathon
  2. MARATHON-7968

AppResidency fields relaunchEscalationTimeoutSeconds and taskLostBehavior have no effect

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Medium
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: Marathon 1.6.322
    • Component/s: API
    • Labels:
      None

      Description

      we have two fields inside of the app.residency datastructure:

      ./marathon/docs/docs/rest-api/public/api/v2/types/app.raml
      
        23 |   AppResidency:
        24 |     type: object
        25 |     description: |
        26 |       When using local persistent volumes that pin tasks onto agents,
        27 |       these values define how Marathon handles terminal states of these tasks.
        28 |     properties:
        29 |       relaunchEscalationTimeoutSeconds:
        30 |         type: integer
        31 |         format: int64
        32 |         minimum: 0
        33 |         default: 3600
        34 |         description: |
        35 |           When a task using persistent local volumes cannot be restarted on the
        36 |           agent it's been pinned to, Marathon will try to launch this task on
        37 |           another node after this timeout. Defaults to 3600 (one hour).",
        38 |       taskLostBehavior:
        39 |         type: strings.TaskLostBehavior
        40 |         default: WAIT_FOREVER
      

      As far as I can tell, these two fields do absolutely nothing in the Marathon code. Further, it seems that such has been the case since Marathon 1.1.

      Worse, these two fields totally overlap with UnreachableStrategy.

      Also, specifying a non-zero relaunchEscalationTimeoutSeconds and WAIT_FOREVER taskLostBehavior would, if I understand the intended purpose of these fields, lead to the former field being ignored from the latter.

      Proposed solution

      I think two potential solutions are:

      • Remove the fields. They have had no effect since at least Marathon 1.1.x. We haven't received any loud noises that they do have an effect.
      • Impute the value of fields from UnreachableStrategy; document clearly that specifying them has no effect.

      After some discussion, it seems that imputing the values is the best option

      Acceptance Criteria

      > As a user
      > When I read about the residency parameters
      > Then it should be clear to me that the fields are deprecated and have no effect

      > When I query an app definition with residency
      > Then I should see the residency fields as imputed from unreachable strategy

      > When I modify the app definition residency parameters
      > Then it should have no effect (silently ignored)

      We will remove the fields completely in the v3 API

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nikitamelkozerov Nikita Melkozerov
                Reporter:
                tharper Tim Harper
                Team:
                Orchestration Team
                Watchers:
                Artem Harutyunyan, Tim Harper
              • Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: