2026-10-16T16:37:03.976Z Diffinery runner: job upload (Upload phases (1)) for codician/diffinery@54bba907465f
2026-10-16T16:37:03.984Z Runner: image diffinery-runner:7c428e786fc3d95c1e770479, in cdg14, WEUR, container ef43121bdcb904fad076f7b283e803612ba1b8e8987b73114553cb6f87cadc29
2026-10-16T16:37:03.984Z Runner size: large (4 vCPU, 12 GiB of memory, 20 GB of disk), asked for by runs-on
2026-10-16T16:37:03.984Z Host: AMD EPYC (family 25, model 17), 4 vCPUs, 2550 MHz
2026-10-16T16:37:03.984Z Workspace: /workspace/diffinery
2026-10-16T16:37:04.025Z ##[group]Run head -c 209715200 /dev/urandom > /tmp/blob.bin
2026-10-16T16:37:04.025Z ##[endgroup]
2026-10-16T16:37:05.334Z Download action repository 'actions/github-script@v7'
2026-10-16T16:37:05.651Z ##[group]Run actions/github-script@v7
2026-10-16T16:37:05.651Z with:
2026-10-16T16:37:05.651Z script: const fs = require("fs");
2026-10-16T16:37:05.651Z const tok = process.env.ACTIONS_RUNTIME_TOKEN;
2026-10-16T16:37:05.651Z const base = process.env.ACTIONS_RESULTS_URL;
2026-10-16T16:37:05.651Z const scp = JSON.parse(Buffer.from(tok.split(".")[1], "base64url").toString()).scp;
2026-10-16T16:37:05.651Z const [, run, job] = scp.split(" ").find((s) => s.startsWith("Actions.Results:")).split(":");
2026-10-16T16:37:05.651Z const twirp = async (m, body) => {
2026-10-16T16:37:05.651Z const r = await fetch(`${base}twirp/github.actions.results.api.v1.ArtifactService/${m}`, { method: "POST", headers: { authorization: `Bearer ${tok}`, "content-type": "application/json" }, body: JSON.stringify(body) });
2026-10-16T16:37:05.651Z if (!r.ok) throw new Error(`${m} ${r.status} ${await r.text()}`);
2026-10-16T16:37:05.651Z return r.json();
2026-10-16T16:37:05.651Z };
2026-10-16T16:37:05.651Z const ids = { workflow_run_backend_id: run, workflow_job_run_backend_id: job };
2026-10-16T16:37:05.651Z const data = fs.readFileSync("/tmp/blob.bin");
2026-10-16T16:37:05.651Z const MiB = 1024 * 1024;
2026-10-16T16:37:05.651Z for (const [bs, conc] of [[16, 8], [8, 16], [32, 4]]) {
2026-10-16T16:37:05.651Z const name = `bench-${bs}x${conc}`;
2026-10-16T16:37:05.651Z const { signed_upload_url: url } = await twirp("CreateArtifact", { ...ids, name, version: 4 });
2026-10-16T16:37:05.651Z const blocks = [];
2026-10-16T16:37:05.651Z for (let off = 0, i = 0; off < data.length; off += bs * MiB, i++) blocks.push(Buffer.from(`block-${String(i).padStart(8, "0")}`).toString("base64"));
2026-10-16T16:37:05.651Z let next = 0;
2026-10-16T16:37:05.651Z const t0 = Date.now();
2026-10-16T16:37:05.651Z const worker = async () => {
2026-10-16T16:37:05.651Z for (let i = next++; i < blocks.length; i = next++) {
2026-10-16T16:37:05.651Z const r = await fetch(`${url}&comp=block&blockid=${encodeURIComponent(blocks[i])}`, { method: "PUT", headers: { "x-ms-version": "2025-01-05" }, body: data.subarray(i * bs * MiB, Math.min(data.length, (i + 1) * bs * MiB)) });
2026-10-16T16:37:05.651Z if (r.status !== 201) throw new Error(`block ${r.status} ${await r.text()}`);
2026-10-16T16:37:05.651Z }
2026-10-16T16:37:05.651Z };
2026-10-16T16:37:05.651Z await Promise.all(Array.from({ length: conc }, worker));
2026-10-16T16:37:05.651Z const t1 = Date.now();
2026-10-16T16:37:05.651Z const xml = `${blocks.map((b) => `${b}`).join("")}`;
2026-10-16T16:37:05.651Z const r = await fetch(`${url}&comp=blocklist`, { method: "PUT", headers: { "x-ms-version": "2025-01-05", "content-type": "application/xml" }, body: xml });
2026-10-16T16:37:05.651Z if (r.status !== 201) throw new Error(`blocklist ${r.status} ${await r.text()}`);
2026-10-16T16:37:05.651Z const t2 = Date.now();
2026-10-16T16:37:05.651Z await twirp("FinalizeArtifact", { ...ids, name, size: String(data.length) });
2026-10-16T16:37:05.651Z core.info(`${name}: ${blocks.length} blocks sent in ${((t1 - t0) / 1000).toFixed(1)} s (${(200 / ((t1 - t0) / 1000)).toFixed(0)} MiB/s), joined in ${((t2 - t1) / 1000).toFixed(1)} s`);
2026-10-16T16:37:05.651Z }
2026-10-16T16:37:05.651Z
2026-10-16T16:37:05.651Z github-token: ***
2026-10-16T16:37:05.651Z debug: false
2026-10-16T16:37:05.651Z user-agent: actions/github-script
2026-10-16T16:37:05.651Z result-encoding: json
2026-10-16T16:37:05.651Z retries: 0
2026-10-16T16:37:05.651Z retry-exempt-status-codes: 400,401,403,404,422
2026-10-16T16:37:05.651Z ##[endgroup]
2026-10-16T16:37:44.836Z Error: blocklist 500 InternalErrorinternal error
2026-10-16T16:37:44.836Z at eval (eval at callAsyncFunction (/workspace/_actions/actions/github-script/v7/dist/index.js:36187:16), :33:31)
2026-10-16T16:37:44.836Z at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
2026-10-16T16:37:44.836Z at async main (/workspace/_actions/actions/github-script/v7/dist/index.js:36285:20)
2026-10-16T16:37:44.836Z ##[error]Unhandled error: Error: blocklist 500 InternalErrorinternal error
2026-10-16T16:37:44.871Z ##[error]main: Process completed with exit code 1.
2026-10-16T16:37:45.076Z Host: 0% of the vCPUs' time went to other work on the host (steal)
2026-10-16T16:37:45.076Z Job completed with conclusion: failure
2026-10-16T16:37:45.077Z Resources: 0.1 of 4 vCPUs busy on average (0.8 at the 95th percentile), peak memory 0.9 GiB of 11.9 GiB, peak disk 1.3 GB of 19.3 GB