Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3942 — Linux's per-argument cap is measured on every host, so an oversized jq argument fails where it is written

Case 10 runs scripts/generate-site-data over every one of its real inputs with a jq on PATH that measures each argument: one over Linux's 131072-byte MAX_ARG_STRLEN is refused with exit 126 as Linux refuses it, and one over three quarters of the cap is named as NEAR, on macOS as on CI.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně

Součást ci-critical-path — Kritická cesta od změny k jejímu verdiktu a od mergi k ověřenému nasazení běží za tepla pod minutu.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3942 bude přijato.

Cíl

Case 10 runs scripts/generate-site-data over every one of its real inputs with a jq on PATH that measures each argument: one over Linux's 131072-byte MAX_ARG_STRLEN is refused with exit 126 as Linux refuses it, and one over three quarters of the cap is named as NEAR, on macOS as on CI.

Proč

The same failure reached CI three times through a spelling scripts/ci/argv-limit-check did not know: the claims matrix, forge_paths, then `--arg mermaid \"$(mj_project_mermaid)\"` at 132474 bytes, which reddened train 4's site job and six suite cases on run 39860903679. macOS applies no per-argument cap, so every local run passed. A static check refuses spellings; only a measurement refuses the payload whatever it is called. On master the same argument already measures 126361 bytes, 96% of the cap.

Aktuální stav

scripts/ci/argv-limit-check matches three spellings, plus mj_project_mermaid on train 4. A payload under a fourth spelling passes it and every macOS run, and fails only on Linux.

Cílový stav

Every argument the site generator hands to jq in case 10 is measured against 131072 bytes on every host; the shim is itself proved to refuse one byte over and to admit the cap exactly; arguments over 98304 bytes are named on the case's output before any of them crosses.

Rozsah

  • test/cases/10_site_data.sh
  • .ai/repo/project/issues/I3942.yaml

Mimo rozsah

  • scripts/generate-site-data and scripts/ci/argv-limit-check (p1's repair, r-c873f68b9658, carries the mermaid fix)
  • Other commands than jq; the generators' whole-collection payloads travel to jq

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • On train 4's head without p1's repair, case 10 fails on macOS with the argv-cap refusal; with the repair it passes
  • On master, case 10 names the 126361-byte plan graph as NEAR and passes
  • The shim refuses a 131073-byte argument with exit 126 and admits a 131072-byte one

Validace

  • bash test/run.sh 10_site_data

Požadované důkazy

  • sada testů

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Riziko

The shim adds one bash process per jq call in the first generator run of case 10; it measures with the shell's own length expansion under LC_ALL=C and forks nothing else.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3942.yaml. Read it back with majordomus plan show I3942.

Prohledává názvy a popisy všech stránek, které tento web publikuje.