Skip to content

bench: the mock bench cannot run on this host — the only deepseek-harness checkout needs a build, and the host has neither git nor a C compiler #2571

Closed

Description

@Birfy

Written-by: Chief

The performance baseline (#356 / PR #2570) cannot produce numbers on this box, and the reason is the environment, not the code.

core/dev/bench.sh starts dsh web from a deepseek-harness checkout. The only checkout here is /data/dsh/bot/workspace/runs/i2565/deepseek-harness (DSH 0.2.1-rc.2, dependencies installed). It is an unbuilt source tree, so dsh web dies before dsh web: http:

Plugins waiting for services (1):
  Plugin      Missing services
  client-hmr  clientModules

Building it fails on two missing tools, both required:

$ pnpm run build
Error: spawnSync git ENOENT            # scripts/client-build-environment.ts (repo build metadata)
$ DSH_CLIENT_COMMIT_HASH=<sha> pnpm run build
Error: spawnSync cc ENOENT             # native/system addon: cc -std=c11 ... flock.c

This host has no git, no cc/gcc/clang, and no make (checked 2026-11-06 17:0x UTC). DSH_CLIENT_COMMIT_HASH works around the first, nothing works around the second.

What would unblock it, either one:

  • A: install a C toolchain (cc, make) and a git binary in the Bot container; then pnpm run build in that checkout succeeds and dev/bench.sh perf … can run.
  • B: provide a prebuilt harness: a directory that already contains a built @deepseek-ai/dsh (published npm packages are fine) plus apps/web/tests/pin-browse-picker.overlay.yml, so DSH_HARNESS=<that dir> core/dev/bench.sh … boots without a build.

Until one exists, every mock-bench measurement in this repository (perf baseline, browser e2e that needs the bench) is unavailable on this host, and docs/performance-baseline.md says "not measured" rather than inventing numbers.

Activity

  1. added
    bugSomething isn't working
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    area:automationScheduled tasks and automation
    on Nov 6, 2026
  2. Birfy commented on Nov 7, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Chief

    Measured on this host at 2026-11-07 05:52Z: the mock bench does run here. dev/bench.sh smoke 3296 8296 reset then node dev/smoke.mjs smoke 3296 ends with smoke: all 42 steps passed, smoke exit=0 (42 ok, 0 FAIL).

    Three of this issue's premises need correcting, and the third is the actual blocker.

    1. git exists. tools/bin/git is git 2.39.5; it only has to be put on PATH. No DSH_CLIENT_COMMIT_HASH workaround was needed.
    2. No C compiler was needed. The checkout at runs/i2565/deepseek-harness already carries the JS build (packages/*/lib), and dsh web boots from it (dsh web: http://127.0.0.1:3296 in web.log).
    3. The blocker is a missing prebuilt native addon, not a build. Every Bot turn died on Cannot find module '…/native/system/packages/linux-arm64/bin/glibc/system.node' (bot/logs/diagnostics.jsonl, source: turn, repeated once per turn). That binary is not produced by pnpm run build on a host without cc; it ships prebuilt in @deepseek-ai/node-addon-system-linux-arm64@0.1.2.

    Recipe that makes the bench run on this host (no repo change; everything it touches is under runs/):

    # 1. pnpm: bench.sh calls it for the profile install, and the host has none
    printf '#!/bin/sh\nexec corepack pnpm "$@"\n' > tools/bin/pnpm && chmod +x tools/bin/pnpm
    # 2. git on PATH
    export PATH=/data/dsh/bot/workspace/tools/bin:$PATH
    # 3. the prebuilt native addon, taken from the harness packages `npm run harness` already installed
    cp -r core/dev/harness/node_modules/@deepseek-ai/node-addon-system-linux-arm64/bin \
          <harness>/native/system/packages/linux-arm64/
    # 4. then
    cd core && export DSH_HARNESS=<harness>
    CONTEXT_WINDOW=100000 CHECK_RATIO=0.45 dev/bench.sh smoke 3296 8296 reset
    node dev/smoke.mjs smoke 3296
    dev/bench.sh smoke 3296 8296 stop

    Step 1 is silent when it is missing: ensure_profile's pnpm install writes to /dev/null, so the profile ends up with no node_modules, dsh then answers cannot resolve profile bundle "ds-bot", and the smoke reports 17 failures whose text is an ENOENT on bot/state.json. Step 3 is worse: the bench boots, the web server answers, and every turn fails, so 42 of 42 smoke steps look like plugin bugs and none of them is one.

    Closing this as resolved: the bench runs here, and the numbers are #356's job. The two things it leaves behind are not this issue's scope — the step-3 copy is host setup that dies with runs/, and it is the reason dev/bench.sh needs a preflight; that is filed separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:automationScheduled tasks and automationbugSomething isn't workingneeds-humanThe agent loop stopped; a person must decide (reason in the last comment)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions