Handle Runner Timeout

Before, Nomad executions often got stopped because the runner was deleted.
With the previous commit, we cover the exception to this behaviour by stopping the execution Poseidon-side.
These different approaches lead to different context error messages.
In this commit, we move the check of the passed timeout, to respond with the corresponding client message again.
This commit is contained in:
Maximilian Paß
2023-06-26 19:01:54 +01:00
committed by Sebastian Serth
parent bfb5977d24
commit b3fedf274c
2 changed files with 18 additions and 6 deletions

View File

@@ -228,12 +228,17 @@ func (s *ExecuteInteractivelyTestSuite) TestResetTimerGetsCalled() {
}
func (s *ExecuteInteractivelyTestSuite) TestExitHasTimeoutErrorIfRunnerTimesOut() {
s.mockedExecuteCommandCall.Run(func(args mock.Arguments) {
select {}
}).Return(0, nil)
s.mockedTimeoutPassedCall.Return(true)
executionRequest := &dto.ExecutionRequest{}
s.runner.StoreExecution(defaultExecutionID, executionRequest)
exitChannel, _, err := s.runner.ExecuteInteractively(
exitChannel, cancel, err := s.runner.ExecuteInteractively(
defaultExecutionID, &nullio.ReadWriter{}, nil, nil, context.Background())
s.Require().NoError(err)
cancel()
exit := <-exitChannel
s.Equal(ErrorRunnerInactivityTimeout, exit.Err)
}