JuliusBrussee/caveman · error

cachebench: invalid target

Error message

cachebench: invalid target

What it means

Error "cachebench: invalid target" thrown in JuliusBrussee/caveman.

Source

Thrown at cacheengine/cachebench/simulate.go:379

func commonPrefixTokens(left, right []PrefixSegment) int {
	limit := len(left)
	if len(right) < limit {
		limit = len(right)
	}
	total := 0
	for index := 0; index < limit; index++ {
		if left[index] != right[index] {
			break
		}
		total += left[index].Tokens
	}
	return total
}

func validateTarget(target Target) error {
	if math.IsNaN(target.RequestHitRate) || math.IsInf(target.RequestHitRate, 0) || math.IsNaN(target.TokenHitRate) || math.IsInf(target.TokenHitRate, 0) || target.RequestHitRate < 0 || target.RequestHitRate > 1 || target.TokenHitRate < 0 || target.TokenHitRate > 1 || target.MinEligibleRequest <= 0 || target.MinEligibleRequest > 1_000_000 {
		return errors.New("cachebench: invalid target")
	}
	return nil
}

func finalizeProvider(report *ProviderReport, target Target) {
	if report.EligibleRequests > 0 {
		report.RequestHitRate = float64(report.RequestHits) / float64(report.EligibleRequests)
	}
	if report.EligibleTokens > 0 {
		report.TokenHitRate = float64(report.CacheReadTokens) / float64(report.EligibleTokens)
		report.AttributedTokenHitRate = float64(report.AttributedReadTokens) / float64(report.EligibleTokens)
	}
	if report.ReusableOpportunityRequests > 0 {
		report.OpportunityRequestCaptureRate = float64(report.RequestHits) / float64(report.ReusableOpportunityRequests)
	}
	if report.ReusableOpportunityTokens > 0 {
		report.OpportunityTokenCaptureRate = float64(report.CacheReadTokens) / float64(report.ReusableOpportunityTokens)
	}

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Fix the simulation target to a valid value.

When it happens

Trigger: Thrown at cacheengine/cachebench/simulate.go:379 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/e73cfa577489efb2. Report an issue: GitHub.