@htekdev/actions-debugger 1.0.111 → 1.0.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/errors/caching-artifacts/buildkit-gha-cache-legacy-api-v1-self-hosted.yml +123 -0
- package/errors/concurrency-timing/merge-group-pr-number-concurrency-null-collapse.yml +85 -0
- package/errors/concurrency-timing/push-schedule-shared-concurrency-silent-cancel.yml +84 -0
- package/errors/known-unsolved/vars-context-reusable-workflow-reflects-caller-repo.yml +91 -0
- package/errors/permissions-auth/security-events-write-required-for-sarif-upload.yml +104 -0
- package/errors/runner-environment/runner-environment-180.yml +132 -0
- package/errors/runner-environment/runner-environment-181.yml +114 -0
- package/errors/runner-environment/setup-java-sudo-strips-java-home-env-reset.yml +111 -0
- package/errors/runner-environment/setup-python-free-threaded-arm64-broken-symlink.yml +98 -0
- package/errors/runner-environment/sparse-checkout-cone-mode-not-honored-git-pre-237.yml +121 -0
- package/errors/silent-failures/silent-failures-099.yml +104 -0
- package/errors/silent-failures/sparse-checkout-non-cone-gitignore-depth-extra-paths.yml +96 -0
- package/errors/silent-failures/upload-download-artifact-silent-failure-windows-heap-corruption.yml +90 -0
- package/package.json +1 -1
package/errors/silent-failures/upload-download-artifact-silent-failure-windows-heap-corruption.yml
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
id: silent-failures-101
|
|
2
|
+
title: "upload-artifact/download-artifact fails silently with no error message on Windows (exit -1073740791)"
|
|
3
|
+
category: silent-failures
|
|
4
|
+
severity: error
|
|
5
|
+
tags:
|
|
6
|
+
- upload-artifact
|
|
7
|
+
- download-artifact
|
|
8
|
+
- windows
|
|
9
|
+
- silent-failure
|
|
10
|
+
- node-crash
|
|
11
|
+
- heap-corruption
|
|
12
|
+
patterns:
|
|
13
|
+
- regex: 'Node Action run completed with exit code -1073740791'
|
|
14
|
+
flags: 'i'
|
|
15
|
+
- regex: '^Finalizing artifact upload\s*$'
|
|
16
|
+
flags: 'im'
|
|
17
|
+
- regex: '^Downloading single artifact\s*$'
|
|
18
|
+
flags: 'im'
|
|
19
|
+
error_messages:
|
|
20
|
+
- "##[debug]Node Action run completed with exit code -1073740791"
|
|
21
|
+
- "Finalizing artifact upload"
|
|
22
|
+
- "Downloading single artifact"
|
|
23
|
+
root_cause: |
|
|
24
|
+
A Promise rejection during blob upload (upload-artifact) or HTTP chunk download
|
|
25
|
+
(download-artifact) causes the Node.js process to terminate abruptly on Windows
|
|
26
|
+
with exit code -1073740791 (STATUS_HEAP_CORRUPTION / 0xC0000409). Node exits
|
|
27
|
+
before the catch handler runs, so no error message is ever logged — the step
|
|
28
|
+
fails silently with no diagnostic output.
|
|
29
|
+
|
|
30
|
+
The underlying race was in actions/toolkit's HTTP client: when a blob transfer
|
|
31
|
+
encounters a network blip or ABS latency spike, an unhandled promise rejection
|
|
32
|
+
aborts the Node process on Windows. The bug manifests more frequently on Windows
|
|
33
|
+
runners, on large artifacts (>100MB), and during periods of elevated Azure Blob
|
|
34
|
+
Storage latency.
|
|
35
|
+
|
|
36
|
+
Typical log signatures:
|
|
37
|
+
- upload-artifact: logs stop after "Finalizing artifact upload" — the
|
|
38
|
+
"Artifact ... successfully finalized. Artifact ID ..." confirmation line
|
|
39
|
+
is absent.
|
|
40
|
+
- download-artifact: logs stop after "Downloading single artifact" — the
|
|
41
|
+
"Artifact download completed successfully" line is absent, and debug logs
|
|
42
|
+
show "Node Action run completed with exit code -1073740791".
|
|
43
|
+
fix: |
|
|
44
|
+
1. Re-run the failed job — the bug is transient and sporadic; most reruns succeed.
|
|
45
|
+
2. Upgrade to upload-artifact v4.6.0+ and download-artifact v4.2.0+ / v8.0.2+
|
|
46
|
+
which include the fix from actions/toolkit#2406 (deferred promise creation
|
|
47
|
+
in chunk loops and propagated download errors).
|
|
48
|
+
3. If using a Windows runner and seeing frequent failures, split large artifacts
|
|
49
|
+
into smaller named chunks to reduce per-blob transfer time.
|
|
50
|
+
fix_code:
|
|
51
|
+
- language: yaml
|
|
52
|
+
label: "Upgrade artifact actions to fixed versions"
|
|
53
|
+
code: |
|
|
54
|
+
# upload-artifact v4.6.0+ includes fix for silent heap corruption exit
|
|
55
|
+
- uses: actions/upload-artifact@v4
|
|
56
|
+
with:
|
|
57
|
+
name: my-artifact
|
|
58
|
+
path: dist/
|
|
59
|
+
|
|
60
|
+
# download-artifact v4.2.0+ / v8.0.2+ includes fix
|
|
61
|
+
- uses: actions/download-artifact@v4
|
|
62
|
+
with:
|
|
63
|
+
name: my-artifact
|
|
64
|
+
- language: yaml
|
|
65
|
+
label: "Workaround: split large artifacts to reduce per-blob transfer failures"
|
|
66
|
+
code: |
|
|
67
|
+
# Upload separate chunks instead of one large artifact
|
|
68
|
+
- uses: actions/upload-artifact@v4
|
|
69
|
+
with:
|
|
70
|
+
name: my-artifact-binaries
|
|
71
|
+
path: dist/binaries/
|
|
72
|
+
|
|
73
|
+
- uses: actions/upload-artifact@v4
|
|
74
|
+
with:
|
|
75
|
+
name: my-artifact-assets
|
|
76
|
+
path: dist/assets/
|
|
77
|
+
prevention:
|
|
78
|
+
- "Pin upload-artifact to v4.6.0+ and download-artifact to v4.2.0+/v8.0.2+ which include the heap corruption fix"
|
|
79
|
+
- "Monitor Windows runner jobs for sporadic step failures with no error output — a rerun is the immediate workaround"
|
|
80
|
+
- "Prefer uploading many smaller artifacts over one large artifact to reduce per-blob transfer window"
|
|
81
|
+
- "Enable debug logging (ACTIONS_RUNNER_DEBUG=true) to surface the exit code -1073740791 diagnostic line"
|
|
82
|
+
docs:
|
|
83
|
+
- url: "https://github.com/actions/upload-artifact/issues/806"
|
|
84
|
+
label: "[bug] Upload failed without an error output (upload-artifact#806)"
|
|
85
|
+
- url: "https://github.com/actions/download-artifact/issues/475"
|
|
86
|
+
label: "[bug] Action failed without any error message (download-artifact#475)"
|
|
87
|
+
- url: "https://github.com/actions/toolkit/pull/2406"
|
|
88
|
+
label: "Fix: Propagate download error and verify length (toolkit#2406)"
|
|
89
|
+
- url: "https://github.com/actions/download-artifact/pull/479"
|
|
90
|
+
label: "Fix: Defer promise creation into chunk loop to prevent unhandled rejections on Windows (download-artifact#479)"
|
package/package.json
CHANGED