Upload phases (3)
took 7s Raw logs
Matrix: n: 3
Failed at Run actions/github-script@v7
Unhandled error: Error: block 409 <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobImmutable</Code><Message>this upload is finished or its job is no longer running</Message></Error>
Set up job
##[warning]No hosted runner could start the job yet: a runner started on diffinery-runner:dfb768929ca5ce308febdab6 while the deploy of diffinery-runner:7c428e786fc3d95c1e770479 was rolling out. Diffinery tries again in 30 s (wait 1 of 8).##[warning]No hosted runner could start the job yet: a runner started on diffinery-runner:dfb768929ca5ce308febdab6 while the deploy of diffinery-runner:7c428e786fc3d95c1e770479 was rolling out. Diffinery tries again in 60 s (wait 2 of 8).##[warning]No hosted runner could start the job yet: a runner started on diffinery-runner:dfb768929ca5ce308febdab6 while the deploy of diffinery-runner:7c428e786fc3d95c1e770479 was rolling out. Diffinery tries again in 120 s (wait 3 of 8).Diffinery runner: job upload (Upload phases (3)) for codician/diffinery@54bba907465fRunner: image diffinery-runner:dfb768929ca5ce308febdab6, in mad07, WEUR, container cbba16db655acc741fa7727bf9b4095802fc1beb309083a0bfb02a2f30c3248cRunner size: large (4 vCPU, 12 GiB of memory, 20 GB of disk), asked for by runs-onHost: AMD EPYC (family 25, model 17), 4 vCPUs, 2546 MHzWorkspace: /workspace/diffineryHost: 0% of the vCPUs' time went to other work on the host (steal)Job completed with conclusion: failureResources: 0.5 of 4 vCPUs busy on average (0.8 at the 95th percentile), peak memory 1.0 GiB of 11.9 GiB, peak disk 1.3 GB of 19.3 GB
Run head -c 209715200 /dev/urandom > /tmp/blob.bin1s
##[group]Run head -c 209715200 /dev/urandom > /tmp/blob.bin##[endgroup]
Run actions/github-script@v76s
Download action repository 'actions/github-script@v7'##[group]Run actions/github-script@v7with: script: const fs = require("fs"); const tok = process.env.ACTIONS_RUNTIME_TOKEN; const base = process.env.ACTIONS_RESULTS_URL; const scp = JSON.parse(Buffer.from(tok.split(".")[1], "base64url").toString()).scp; const [, run, job] = scp.split(" ").find((s) => s.startsWith("Actions.Results:")).split(":"); const twirp = async (m, body) => { 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) }); if (!r.ok) throw new Error(`${m} ${r.status} ${await r.text()}`); return r.json(); }; const ids = { workflow_run_backend_id: run, workflow_job_run_backend_id: job }; const data = fs.readFileSync("/tmp/blob.bin"); const MiB = 1024 * 1024; for (const [bs, conc] of [[16, 8], [8, 16], [32, 4]]) { const name = `bench-${bs}x${conc}`; const { signed_upload_url: url } = await twirp("CreateArtifact", { ...ids, name, version: 4 }); const blocks = []; 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")); let next = 0; const t0 = Date.now(); const worker = async () => { for (let i = next++; i < blocks.length; i = next++) { 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)) }); if (r.status !== 201) throw new Error(`block ${r.status} ${await r.text()}`); } }; await Promise.all(Array.from({ length: conc }, worker)); const t1 = Date.now(); const xml = `<?xml version="1.0" encoding="utf-8"?><BlockList>${blocks.map((b) => `<Latest>${b}</Latest>`).join("")}</BlockList>`; const r = await fetch(`${url}&comp=blocklist`, { method: "PUT", headers: { "x-ms-version": "2025-01-05", "content-type": "application/xml" }, body: xml }); if (r.status !== 201) throw new Error(`blocklist ${r.status} ${await r.text()}`); const t2 = Date.now(); await twirp("FinalizeArtifact", { ...ids, name, size: String(data.length) }); 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`); } github-token: *** debug: false user-agent: actions/github-script result-encoding: json retries: 0 retry-exempt-status-codes: 400,401,403,404,422##[endgroup]Error: block 409 <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobImmutable</Code><Message>this upload is finished or its job is no longer running</Message></Error> at worker (eval at callAsyncFunction (/workspace/_actions/actions/github-script/v7/dist/index.js:36187:16), <anonymous>:26:35) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Promise.all (index 2) at async eval (eval at callAsyncFunction (/workspace/_actions/actions/github-script/v7/dist/index.js:36187:16), <anonymous>:29:3) at async main (/workspace/_actions/actions/github-script/v7/dist/index.js:36285:20)##[error]Unhandled error: Error: block 409 <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobImmutable</Code><Message>this upload is finished or its job is no longer running</Message></Error>##[error]main: Process completed with exit code 1.