diff options
author | Harald Musum <musum@yahooinc.com> | 2024-03-20 21:15:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-20 21:15:35 +0100 |
commit | 07bf3539ad88bfa29cac6a6e674e3b374e34892f (patch) | |
tree | 7d12b8d8cc2cef18f48d40a0209bf5c69212f39b /client | |
parent | 920cd603c0736fb7521d003713ae31c14c030901 (diff) | |
parent | 866f2363fe4da79ff3be3140a17c9b56c1a8c05b (diff) |
Merge pull request #30693 from vespa-engine/arnej/warn-about-signal
Arnej/warn about signal
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/admin/vespa-wrapper/configserver/start.go | 7 | ||||
-rw-r--r-- | client/go/internal/osutil/run_cmd.go | 25 |
2 files changed, 30 insertions, 2 deletions
diff --git a/client/go/internal/admin/vespa-wrapper/configserver/start.go b/client/go/internal/admin/vespa-wrapper/configserver/start.go index 7563132ff5a..7e641c0d8ac 100644 --- a/client/go/internal/admin/vespa-wrapper/configserver/start.go +++ b/client/go/internal/admin/vespa-wrapper/configserver/start.go @@ -70,8 +70,11 @@ func runConfigserverWithRunserver() int { ServiceName: SERVICE_NAME, Args: []string{"just-start-configserver"}, } - rs.Exec("libexec/vespa/vespa-wrapper") - return 1 + if rs.WouldRun() { + rs.Exec("libexec/vespa/vespa-wrapper") + return 1 + } + return 0 } func StartConfigserverEtc() int { diff --git a/client/go/internal/osutil/run_cmd.go b/client/go/internal/osutil/run_cmd.go index ca0d621f9f9..3847dcc912a 100644 --- a/client/go/internal/osutil/run_cmd.go +++ b/client/go/internal/osutil/run_cmd.go @@ -5,9 +5,11 @@ package osutil import ( "bytes" + "fmt" "os" "os/exec" "strings" + "syscall" "github.com/vespa-engine/vespa/client/go/internal/admin/trace" ) @@ -21,6 +23,26 @@ const ( SystemCommand ) +func analyzeError(err error) string { + exitErr, wasEe := err.(*exec.ExitError) + if !wasEe { + return "" + } + status, wasWs := exitErr.ProcessState.Sys().(syscall.WaitStatus) + if !wasWs { + return err.Error() + } + if !status.Signaled() { + return "" + } + msg := "died with signal: " + status.Signal().String() + switch status.Signal() { + case syscall.SIGILL: + msg = msg + " (you probably have an older CPU than required)" + } + return msg +} + func (b BackTicks) Run(program string, args ...string) (string, error) { cmd := exec.Command(program, args...) var out bytes.Buffer @@ -38,5 +60,8 @@ func (b BackTicks) Run(program string, args ...string) (string, error) { } trace.Debug("running command:", program, strings.Join(args, " ")) err := cmd.Run() + if extraMsg := analyzeError(err); extraMsg != "" { + fmt.Fprintln(os.Stderr, "Problem running program", program, "=>", extraMsg) + } return out.String(), err } |