Error on missing container not useful

Modified on Thu, 25 May, 2023 at 12:41 PM

To Reproduce

  • docker run --privileged -p 8080:80 -ti direktiv/direktiv-kube
  • Connect to the UI on http://localhost:8080
  • Run the examples/greeting/greeting example
  • You will receive the following error:
[10:05:41.877] Preparing workflow triggered by api.
[10:05:41.901] Running state logic (step:1) -- validate-input
[10:05:41.908] Transitioning to next state: greeter (2).
[10:05:41.915] Running state logic (step:2) -- greeter
[10:05:41.916] Sleeping until child '50690a1a-52a6-42e7-b5ea-e6b285900d3e' returns (greeter).
[10:08:51.853] Child '50690a1a-52a6-42e7-b5ea-e6b285900d3e' returned.
[10:08:51.860] Action crashed due to an internal error: Post "http://workflow-13087262918469761732-greeter.direktiv-services-direktiv": dial tcp: lookup workflow-13087262918469761732-greeter.direktiv-services-direktiv on 10.43.0.10:53: no such host
[10:08:51.882] Instance failed with uncatchable error: Post "http://workflow-13087262918469761732-greeter.direktiv-services-direktiv": dial tcp: lookup workflow-13087262918469761732-greeter.direktiv-services-direktiv on 10.43.0.10:53: no such host (github.com/direktiv/direktiv/pkg/flow/states.(*actionLogic).processActionResults /src/pkg/flow/states/action.go:235)

 

Expected behaviour

As delivered, the workflow uses the image direktiv/greeting:v4, which does not exist on GitHub. Only v3 and earlier exist. 

I would expect that somewhere in the logs it would tell me this fact. Perhaps the error is going somewhere else, but it is not in the docker terminal, nor anywhere I can find in the web UI. 

NOTE: that if v4 is ever created, or if the example workflow text is fixed, this will no longer be a valid reproduction recipe. However, that is not the issue I'm concerned about. Making failed workflow runs debuggable/fixable is very important.

Notes from Direktiv team:

NOTE: We totally agree and we discussed that in the past. I'm wondering if that should be in the logs or rather a status section on the instance. For UI use, a status page would be better but I'm using the CLI mostly so it has to go into the logs. We just need to find the best way to get it into the logs because this would not be coming from the container or flow but has to be an additional request to get the Knative service information.

We are doing this request already and it is available in the UI but it is not obvious. If you go to the "Overview section:


There you can find a list of actual and past containers used in that workflow.



If there is an error you can expand the "Show Details" links at the end and it would show you what is wrong. 

Again, we just need to find a good way to get this into the logs. I have marked this issue as an improvement and let it open (https://github.com/direktiv/direktiv/issues/753)


 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article