fix(webui): dispatch "scenario" tasks in the real task runner, collapse duplicate target switch
The Scenario page's Run button enqueued a task with target "scenario" that never launched any load: the queue runs each task in an external bee-worker subprocess (RunPersistedTask -> executeTaskWithOptions in task_runner.go), whose target switch had no "scenario" case, so the task died with "unknown target: scenario". The case had only been added to taskQueue.runTask's switch in tasks.go — a stale copy exercised solely by unit tests, which is why the tests passed while the button did nothing. Add the "scenario" case (ReadScenario -> ParseScenarioJSON -> RunScenario) to executeTaskWithOptions, and collapse runTask into a thin delegate to it so there is a single target dispatch. The old runTask switch had already drifted into a subset (missing nvme-format, *-write, raid-*, nvidia-config, ...); removing it eliminates the divergence that hid this bug. Also drop the now-orphaned taskQueue.statusDB helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -231,6 +231,22 @@ func executeTaskWithOptions(opts *HandlerOptions, t *Task, j *jobState, ctx cont
|
||||
break
|
||||
}
|
||||
archive, err = a.RunNCCLTests(ctx, "", t.params.GPUIndices, j.append)
|
||||
case "scenario":
|
||||
if a == nil {
|
||||
err = fmt.Errorf("app not configured")
|
||||
break
|
||||
}
|
||||
var data []byte
|
||||
data, err = a.ReadScenario(t.params.ScenarioName)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
var spec platform.ScenarioSpec
|
||||
spec, err = platform.ParseScenarioJSON(data)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
archive, err = a.RunScenario(ctx, "", spec, j.append)
|
||||
case "nvidia-stress":
|
||||
if a == nil {
|
||||
err = fmt.Errorf("app not configured")
|
||||
|
||||
Reference in New Issue
Block a user