Uploaded image for project: 'Opencast'
  1. MH-9298

Remote services are partly out of sync with the real implementations

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed and reviewed
    • Affects versions: 1.4.0
    • Fix versions: 1.4.0
    • Components: Backend Software
    • Labels:
      None
    • Severity:
      Non Functioning
    • Steps to reproduce:
      Hide
      In a distributed installation, the remote services are making HTTP requests to the REST endpoints of their real counterparts. To ease implementation, there is a RemoteBase that can be used to make these calls. Upon calling, a list of expected status codes can be handed to the remote base, each of which will make the remote base return the code to the caller. Any other status code will keep the call in the remote base and trigger round robin to the next available implementation.

      In short, this means that if a service returns a status code that is not expected by the remote implementation, that remote implementation is caught in an endless loop. In order to overcome this issue, every remote implementation needs to be carefully examined to make sure it is expecting (and declaring to expect) all possible status codes. Then those codes should be processed in a switch (statusCode) {...} statement, with a "default" clause logging an error condition (remote base returned with an unexpected status code).
      Show
      In a distributed installation, the remote services are making HTTP requests to the REST endpoints of their real counterparts. To ease implementation, there is a RemoteBase that can be used to make these calls. Upon calling, a list of expected status codes can be handed to the remote base, each of which will make the remote base return the code to the caller. Any other status code will keep the call in the remote base and trigger round robin to the next available implementation. In short, this means that if a service returns a status code that is not expected by the remote implementation, that remote implementation is caught in an endless loop. In order to overcome this issue, every remote implementation needs to be carefully examined to make sure it is expecting (and declaring to expect) all possible status codes. Then those codes should be processed in a switch (statusCode) {...} statement, with a "default" clause logging an error condition (remote base returned with an unexpected status code).
    • Tags (folksonomy):

      TestRail: Results

        Attachments

          Activity

            People

            • Assignee:
              lrohner Lukas Rohner
              Reporter:
              twunden Tobias Wunden
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                TestRail: Cases