-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
if plugin segfaults/panics, invoke.ExecPlugin... claims it "failed with no error message" #732
Comments
Yeah, that makes sense. We give plugins the opportunity to output a reasonable error message via json, but that's not always possible. |
While we're at it, we should interpret the exit code if it indicates abnormal termination. |
Encountered this problem. kubectl describe pod will only get netplugin failed with no error message |
Reopened because I'm not sure how #735 works. |
Yeah, I can't see where |
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]> Signed-off-by: asears <[email protected]>
The way raw_exec invokes the command doesn't actually pass back stderr, despite ExitError having that capability. c.Run() internally calls c.Wait() but that doesn't capture stderr and insert it into the returned ExitError. So we have to do that ourselves. Fixes: containernetworking#732 Fixes: containernetworking#759 Signed-off-by: Dan Williams <[email protected]> Signed-off-by: asears <[email protected]>
If a plugin exits with a non-0 exit status and prints stuff to stderr but not stdout, then
pkg/invoke/raw_exec.go:pluginErr()
will categorize this as "netplugin failed with no error message". This seems to be in part because it forwards the plugin's stderr to its parent's stderr, which is nice and all, but it means that the stderr might end up getting logged somewhere less useful (eg, in cri-o's logs rather than kubelet's). Plus, the "failed with no error message" part is just wrong.(Seen in two unrelated contexts with different plugins in the same day, lol)
@dcbw @squeed
The text was updated successfully, but these errors were encountered: