aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-11-14 13:03:05 +0000
committerArne Juul <arnej@yahooinc.com>2022-11-14 13:03:56 +0000
commit754fe3a358eb4e83f632432324246863a2f4b7ba (patch)
treeeb74973ccf749c891e3e343db6addc776a2ac8a4 /client
parent9b8362b1bc04ae8b101790fcde9909ed5595dc8c (diff)
add some info logging about container startup
Diffstat (limited to 'client')
-rw-r--r--client/go/jvm/container.go16
-rw-r--r--client/go/jvm/env.go2
-rw-r--r--client/go/prog/spec_env.go35
-rw-r--r--client/go/trace/trace.go19
4 files changed, 41 insertions, 31 deletions
diff --git a/client/go/jvm/container.go b/client/go/jvm/container.go
index ac10f775859..384384da137 100644
--- a/client/go/jvm/container.go
+++ b/client/go/jvm/container.go
@@ -4,7 +4,11 @@
package jvm
import (
+ "fmt"
+ "strings"
+
"github.com/vespa-engine/vespa/client/go/prog"
+ "github.com/vespa-engine/vespa/client/go/trace"
"github.com/vespa-engine/vespa/client/go/util"
)
@@ -34,6 +38,14 @@ func (cb *containerBase) ConfigId() string {
return cb.configId
}
+func readableEnv(env map[string]string) string {
+ var buf strings.Builder
+ for k, v := range env {
+ fmt.Fprintf(&buf, " %s=%s", k, v)
+ }
+ return buf.String()
+}
+
func (cb *containerBase) Exec() {
argv := make([]string, 0, 100)
argv = append(argv, "java")
@@ -42,7 +54,9 @@ func (cb *containerBase) Exec() {
}
p := prog.NewSpec(argv)
p.ConfigureNumaCtl()
- exportEnvSettings(cb, p)
+ cb.exportEnvSettings(p)
+ trace.Info("starting container; env:", readableEnv(p.Env))
+ trace.Info("starting container; exec:", argv)
err := p.Run()
util.JustExitWith(err)
}
diff --git a/client/go/jvm/env.go b/client/go/jvm/env.go
index 5157847fb86..3db0cfd17b4 100644
--- a/client/go/jvm/env.go
+++ b/client/go/jvm/env.go
@@ -26,7 +26,7 @@ const (
MALLOC_ARENA_MAX = util.ENV_MALLOC_ARENA_MAX
)
-func exportEnvSettings(c *containerBase, ps *prog.Spec) {
+func (c *containerBase) exportEnvSettings(ps *prog.Spec) {
vespaHome := defaults.VespaHome()
vlt := fmt.Sprintf("file:%s/logs/vespa/vespa.log", vespaHome)
lcd := fmt.Sprintf("%s/var/db/vespa/logcontrol", vespaHome)
diff --git a/client/go/prog/spec_env.go b/client/go/prog/spec_env.go
index 498931fe92c..ffdafe7676b 100644
--- a/client/go/prog/spec_env.go
+++ b/client/go/prog/spec_env.go
@@ -22,31 +22,30 @@ func (p *Spec) Getenv(k string) string {
}
func (spec *Spec) effectiveEnv() []string {
- env := make(map[string]string)
- for _, entry := range os.Environ() {
- addInMap := func(kv string) bool {
- for idx, elem := range kv {
- if elem == '=' {
- k := kv[:idx]
- env[k] = kv
- return true
- }
+ envMap := make(map[string]string)
+ addToMap := func(kv string) {
+ for idx, elem := range kv {
+ if elem == '=' {
+ k := kv[:idx]
+ envMap[k] = kv
+ return
}
- return false
- }
- if !addInMap(entry) {
- env[entry] = ""
}
+ trace.Trace("invalid entry in os.Environ():", kv)
+ envMap[kv] = kv
+ }
+ for _, entry := range os.Environ() {
+ addToMap(entry)
}
for k, v := range spec.Env {
trace.Trace("add to environment:", k, "=", v)
- env[k] = k + "=" + v
+ envMap[k] = k + "=" + v
}
- envv := make([]string, 0, len(env))
- for _, v := range env {
- envv = append(envv, v)
+ envVec := make([]string, 0, len(envMap))
+ for _, val := range envMap {
+ envVec = append(envVec, val)
}
- return envv
+ return envVec
}
func (spec *Spec) considerFallback(varName, varValue string) {
diff --git a/client/go/trace/trace.go b/client/go/trace/trace.go
index cedd1bcf597..9f642b79562 100644
--- a/client/go/trace/trace.go
+++ b/client/go/trace/trace.go
@@ -31,30 +31,27 @@ func Silent() {
currentOutputLevel = levelNone
}
-func outputStderr(l outputLevel, n string, v ...interface{}) {
+func outputTracing(l outputLevel, n string, v ...interface{}) {
if l > currentOutputLevel {
return
}
- w := make([]interface{}, len(v)+1)
- w[0] = n
- for idx, arg := range v {
- w[idx+1] = arg
- }
- fmt.Fprintln(os.Stderr, w...)
+ out := os.Stderr
+ fmt.Fprintf(out, "%s\t", n)
+ fmt.Fprintln(out, v...)
}
func Info(v ...interface{}) {
- outputStderr(levelInfo, "[info]", v...)
+ outputTracing(levelInfo, "info", v...)
}
func Trace(v ...interface{}) {
- outputStderr(levelTrace, "[trace]", v...)
+ outputTracing(levelTrace, "info", v...)
}
func Debug(v ...interface{}) {
- outputStderr(levelDebug, "[debug]", v...)
+ outputTracing(levelDebug, "debug", v...)
}
func Warning(v ...interface{}) {
- outputStderr(levelWarning, "[warning]", v...)
+ outputTracing(levelWarning, "warning", v...)
}