2026-10-16T17:06:25.854Z Diffinery runner: job upload (Upload phases (3)) for codician/diffinery@5c5937fde7af 2026-10-16T17:06:25.898Z Runner: image diffinery-runner:0ab022e0ba2c8e3fc4b10dbe, in ams13, WEUR, container 37bcd61b45a59f3822129b00b065508698cc004251933bc70d640f370cb85988 2026-10-16T17:06:25.898Z Runner size: large (4 vCPU, 12 GiB of memory, 20 GB of disk), asked for by runs-on 2026-10-16T17:06:25.898Z Host: AMD EPYC (family 25, model 1), 4 vCPUs, 2000 MHz 2026-10-16T17:06:25.900Z Workspace: /workspace/diffinery 2026-10-16T17:06:25.950Z ##[group]Run head -c 209715200 /dev/urandom > /tmp/blob.bin 2026-10-16T17:06:25.950Z ##[endgroup] 2026-10-16T17:06:28.476Z Download action repository 'actions/github-script@v7' 2026-10-16T17:06:28.801Z ##[group]Run actions/github-script@v7 2026-10-16T17:06:28.801Z with: 2026-10-16T17:06:28.801Z script: const fs = require("fs"); 2026-10-16T17:06:28.801Z const tok = process.env.ACTIONS_RUNTIME_TOKEN; 2026-10-16T17:06:28.801Z const base = process.env.ACTIONS_RESULTS_URL; 2026-10-16T17:06:28.801Z const scp = JSON.parse(Buffer.from(tok.split(".")[1], "base64url").toString()).scp; 2026-10-16T17:06:28.801Z const [, run, job] = scp.split(" ").find((s) => s.startsWith("Actions.Results:")).split(":"); 2026-10-16T17:06:28.801Z const twirp = async (m, body) => { 2026-10-16T17:06:28.801Z 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-16T17:06:28.801Z if (!r.ok) throw new Error(`${m} ${r.status} ${await r.text()}`); 2026-10-16T17:06:28.801Z return r.json(); 2026-10-16T17:06:28.801Z }; 2026-10-16T17:06:28.801Z const ids = { workflow_run_backend_id: run, workflow_job_run_backend_id: job }; 2026-10-16T17:06:28.801Z const data = fs.readFileSync("/tmp/blob.bin"); 2026-10-16T17:06:28.802Z const MiB = 1024 * 1024; 2026-10-16T17:06:28.802Z for (const [bs, conc] of [[16, 8], [8, 16], [32, 4]]) { 2026-10-16T17:06:28.802Z const name = `bench-${process.env.N}-${bs}x${conc}`; 2026-10-16T17:06:28.802Z const { signed_upload_url: url } = await twirp("CreateArtifact", { ...ids, name, version: 4, mime_type: "application/octet-stream" }); 2026-10-16T17:06:28.802Z const blocks = []; 2026-10-16T17:06:28.802Z 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-16T17:06:28.802Z let next = 0; 2026-10-16T17:06:28.802Z const t0 = Date.now(); 2026-10-16T17:06:28.802Z const worker = async () => { 2026-10-16T17:06:28.802Z for (let i = next++; i < blocks.length; i = next++) { 2026-10-16T17:06:28.802Z 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-16T17:06:28.802Z if (r.status !== 201) throw new Error(`block ${r.status} ${await r.text()}`); 2026-10-16T17:06:28.802Z } 2026-10-16T17:06:28.802Z }; 2026-10-16T17:06:28.802Z await Promise.all(Array.from({ length: conc }, worker)); 2026-10-16T17:06:28.802Z const t1 = Date.now(); 2026-10-16T17:06:28.802Z const xml = `${blocks.map((b) => `${b}`).join("")}`; 2026-10-16T17:06:28.802Z let tries = []; 2026-10-16T17:06:28.802Z for (let a = 0; a < 4; a++) { 2026-10-16T17:06:28.802Z const ta = Date.now(); 2026-10-16T17:06:28.802Z const r = await fetch(`${url}&comp=blocklist`, { method: "PUT", headers: { "x-ms-version": "2025-01-05", "content-type": "application/xml", "x-ms-blob-content-type": "application/octet-stream" }, body: xml }); 2026-10-16T17:06:28.802Z tries.push(`${r.status} after ${((Date.now() - ta) / 1000).toFixed(1)} s${r.status === 201 ? "" : " " + (await r.text()).slice(0, 120)}`); 2026-10-16T17:06:28.802Z if (r.status === 201) break; 2026-10-16T17:06:28.802Z } 2026-10-16T17:06:28.802Z core.info(`${name} block list: ${tries.join("; ")}`); 2026-10-16T17:06:28.802Z const t2 = Date.now(); 2026-10-16T17:06:28.802Z await twirp("FinalizeArtifact", { ...ids, name, size: String(data.length) }).catch((e) => core.info(`finalize: ${e.message}`)); 2026-10-16T17:06:28.802Z 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-16T17:06:28.802Z } 2026-10-16T17:06:28.802Z 2026-10-16T17:06:28.802Z github-token: *** 2026-10-16T17:06:28.802Z debug: false 2026-10-16T17:06:28.802Z user-agent: actions/github-script 2026-10-16T17:06:28.802Z result-encoding: json 2026-10-16T17:06:28.802Z retries: 0 2026-10-16T17:06:28.802Z retry-exempt-status-codes: 400,401,403,404,422 2026-10-16T17:06:28.802Z ##[endgroup] 2026-10-16T17:07:07.561Z bench-3-16x8 block list: 201 after 27.3 s 2026-10-16T17:07:07.781Z bench-3-16x8: 13 blocks sent in 9.5 s (21 MiB/s), joined in 27.3 s 2026-10-16T17:07:08.570Z Error: block 413 RequestBodyTooLargethe repository's artifact storage quota (10737418240 bytes) is used up; delete artifacts or wait for them to expire 2026-10-16T17:07:08.570Z at worker (eval at callAsyncFunction (/workspace/_actions/actions/github-script/v7/dist/index.js:36187:16), :26:35) 2026-10-16T17:07:08.570Z at process.processTicksAndRejections (node:internal/process/task_queues:105:5) 2026-10-16T17:07:08.570Z at async Promise.all (index 0) 2026-10-16T17:07:08.570Z at async eval (eval at callAsyncFunction (/workspace/_actions/actions/github-script/v7/dist/index.js:36187:16), :29:3) 2026-10-16T17:07:08.570Z at async main (/workspace/_actions/actions/github-script/v7/dist/index.js:36285:20) 2026-10-16T17:07:08.570Z ##[error]Unhandled error: Error: block 413 RequestBodyTooLargethe repository's artifact storage quota (10737418240 bytes) is used up; delete artifacts or wait for them to expire 2026-10-16T17:07:10.127Z ##[error]main: Process completed with exit code 1. 2026-10-16T17:07:10.823Z Host: 1% of the vCPUs' time went to other work on the host (steal) 2026-10-16T17:07:10.823Z Job completed with conclusion: failure 2026-10-16T17:07:10.824Z Resources: 0.2 of 4 vCPUs busy on average (1.0 at the 95th percentile), peak memory 1.0 GiB of 11.9 GiB, peak disk 1.3 GB of 19.3 GB