t8y2/dbx · error

start %s: %w

Error message

start %s: %w

What it means

Panics in the kingbase bench harness (agent_compare.go) when starting one of the benchmark agent processes (go-gokb or jdbc via startAgent) fails — e.g. the GO_AGENT or JDBC_AGENT_JAR environment variable points to a missing/non-executable path. The %s names which agent failed to launch; this is a bench-setup failure, not a runtime recoverable error.

Source

Thrown at agents/drivers/kingbase-go/bench/agent_compare.go:101

	concurrencies := envInts("BENCH_CONCURRENCIES", []int{1, 8, 32})
	benchmarkSQL := envOr("BENCH_SQL", "SELECT 1")
	benchmarkMaxRows := envInt("BENCH_MAX_ROWS", 1)
	workload := envOr("BENCH_WORKLOAD", "agent-select-literal")
	sampleMemory := os.Getenv("BENCH_SAMPLE_MEMORY") == "1"

	agents := []struct {
		name string
		argv []string
	}{
		{name: "go-gokb", argv: []string{requiredEnv("GO_AGENT")}},
		{name: "jdbc", argv: jdbcAgentCommand(requiredEnv("JDBC_AGENT_JAR"))},
	}
	encoder := json.NewEncoder(os.Stdout)
	running := make([]*runningAgent, 0, len(agents))
	for _, candidate := range agents {
		process, startup, err := startAgent(candidate.argv)
		if err != nil {
			panic(fmt.Errorf("start %s: %w", candidate.name, err))
		}
		params := map[string]any{"host": host, "port": port, "database": database, "username": username, "password": password}
		readyRSS := readRSSKB(process.command.Process.Pid)
		var oneSessionRSS int64
		openStart := time.Now()
		for index := 0; index < maxConcurrency; index++ {
			request := cloneMap(params)
			request["agentSessionId"] = sessionID(index)
			if _, err := process.call("open_session", request); err != nil {
				panic(fmt.Errorf("open %s session %d: %w", candidate.name, index, err))
			}
			if index == 0 {
				oneSessionRSS = readRSSKB(process.command.Process.Pid)
			}
		}
		openDuration := time.Since(openStart)
		running = append(running, &runningAgent{
			name: candidate.name, process: process, startup: startup, openSessions: openDuration,

View on GitHub (pinned to c0390bff16)

Solutions

  1. Check the GO_AGENT / JDBC_AGENT_JAR env vars point to existing, executable artifacts
  2. Build the agents before running the bench (the wrapped error names the exec failure)
  3. Verify execute permissions and working directory
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at agents/drivers/kingbase-go/bench/agent_compare.go:101 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05). Data as JSON: /api/errors/de70056c711a9aff. Report an issue: GitHub.