t8y2/dbx · error

warm up %s/%s: %w

Error message

warm up %s/%s: %w

What it means

During the warmup phase, each warmup RPC goes through process.call; any failure panics with "warm up %s/%s: %w" combining agent name, workload name, and the underlying error. Warmup failing means the agent accepted startup but cannot serve the workload's method.

Source

Thrown at agents/drivers/rabbitmq/bench/agent_compare.go:239

	round int,
	method string,
	params map[string]any,
	warmupRequests int,
	operations int,
) benchmarkResult {
	process, _, err := startAgent(agent.Command)
	if err != nil {
		panic(fmt.Errorf("start %s: %w", agent.Name, err))
	}
	defer func() {
		if err := process.close(); err != nil {
			panic(fmt.Errorf("close %s: %w", agent.Name, err))
		}
	}()
	readyRSS := readRSSKB(process.command.Process.Pid)
	for request := 0; request < warmupRequests; request++ {
		if _, err := process.call(method, params); err != nil {
			panic(fmt.Errorf("warm up %s/%s: %w", agent.Name, workload, err))
		}
	}

	latencies := make([]float64, 0, operations)
	errorsCount := 0
	start := time.Now()
	for operation := 0; operation < operations; operation++ {
		requestStart := time.Now()
		if _, err := process.call(method, params); err != nil {
			errorsCount++
		}
		latencies = append(latencies, milliseconds(time.Since(requestStart)))
	}
	duration := time.Since(start)
	result := summarize(agent.Name, workload, round, latencies, duration, errorsCount)
	result.ReadyRSSKB = readyRSS
	result.PostLoadRSSKB = readRSSKB(process.command.Process.Pid)
	result.ArtifactBytes = fileSize(agent.ArtifactPath)

View on GitHub (pinned to c0390bff16)

Solutions

  1. Verify the workload's method name is implemented by the agent's dispatch switch (e.g. connect, mq_list_nodes)
  2. Check the underlying %w error to distinguish I/O, parse, or agent-reported errors
  3. Confirm the broker the agent connects to is running and reachable
  4. Ensure params match the schema the agent expects for the method
Defensive patterns

Strategy: try-catch

Validate before calling

for _, m := range []string{method} {
    if !supportedMethods[m] {
        return fmt.Errorf("workload uses unsupported method %q", m)
    }
}

Try / catch

if _, err := process.call(method, params); err != nil {
    var agentErr interface{ RPCError() string }
    if errors.As(err, &agentErr) {
        log.Fatalf("agent rejected warmup call: %v", err)
    }
    panic(fmt.Errorf("warm up %s/%s: %w", agent.Name, workload, err))
}

Prevention

When it happens

Trigger: process.call(method, params) returns an error during warmupRequests iterations: write to agent stdin fails, no response line arrives, JSON unmarshal fails, response ID mismatch, or the agent returned a JSON-RPC error object.

Common situations: Workload calls a method name the agent does not implement; agent crashed after startup (e.g. broker unreachable); request params don't match the agent's schema; slow agent that never responds.

Related errors


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