Skip to content

Enforce assignment timeouts from the core

Luc Everse requested to merge core-enforced-timeouts into development

Description

Adds an extra layer of timeout enforcement, this time by the core. While workers should be able to control themselves and quit if the timeout is exceeded, under some conditions this does not happen. With this fix, the core will keep track of the time and instruct the worker to terminate if it exceeded the timeout (20%).

Changes

  • Fix the REST exception handler sending content types including stars (*)
  • Fix the assignment controller erasing existing timeout values if the PUT request did not contain a timeout
    • The old behavior is arguably what the HTTP spec says should happen, but aside from hand-crafting requests to set the timeout correctly there is no good way to preserve timeouts with the current UI

Additions

  • Send a kill command if the worker has had the same job for longer than the timeout allowed

Test and Review

To be filled in by the reviewers

  • All of the methods are commented to expectation

  • The methods are tested to satisfaction

  • There are no unnecessary files present in the MR

  • The continuous integration has no problems with the MR

  • The MR is filled in as requested (including labels, milestones, and reviewers)

  • The documentation is up-to-date

  • All nullable parameters are marked as such

Merge request reports