runtime/docker/node: logreader must not be nil
Check for nil when trying to return exec process log reader. Fixes #377
This commit is contained in:
parent
9ea71d8c88
commit
dcef0b1946
@ -78,6 +78,13 @@ func resolveHostnameFromInside(ctx context.Context, rtime rt.Runtime, node *k3d.
|
|||||||
|
|
||||||
logreader, execErr := rtime.ExecInNodeGetLogs(ctx, node, []string{"sh", "-c", fmt.Sprintf("nslookup %s", hostname)})
|
logreader, execErr := rtime.ExecInNodeGetLogs(ctx, node, []string{"sh", "-c", fmt.Sprintf("nslookup %s", hostname)})
|
||||||
|
|
||||||
|
if logreader == nil {
|
||||||
|
if execErr != nil {
|
||||||
|
return nil, execErr
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("Failed to get logs from exec process")
|
||||||
|
}
|
||||||
|
|
||||||
submatches := map[string]string{}
|
submatches := map[string]string{}
|
||||||
scanner := bufio.NewScanner(logreader)
|
scanner := bufio.NewScanner(logreader)
|
||||||
if scanner == nil {
|
if scanner == nil {
|
||||||
|
@ -308,8 +308,11 @@ func (d Docker) GetNodeLogs(ctx context.Context, node *k3d.Node, since time.Time
|
|||||||
func (d Docker) ExecInNodeGetLogs(ctx context.Context, node *k3d.Node, cmd []string) (*bufio.Reader, error) {
|
func (d Docker) ExecInNodeGetLogs(ctx context.Context, node *k3d.Node, cmd []string) (*bufio.Reader, error) {
|
||||||
resp, err := executeInNode(ctx, node, cmd)
|
resp, err := executeInNode(ctx, node, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if resp.Reader != nil { // sometimes the exec process returns with a non-zero exit code, but we still have the logs we
|
||||||
return resp.Reader, err
|
return resp.Reader, err
|
||||||
}
|
}
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return resp.Reader, nil
|
return resp.Reader, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user