fix: extract debug file from same image to ensure matching BuildID#8399
Draft
rubenfiszel wants to merge 4 commits intomainfrom
Draft
fix: extract debug file from same image to ensure matching BuildID#8399rubenfiszel wants to merge 4 commits intomainfrom
rubenfiszel wants to merge 4 commits intomainfrom
Conversation
Generate line-table debug info in release builds and split it into a separate .debug file. The shipped binary remains stripped (same size as before), while the .debug files are attached to GitHub releases for both amd64 and arm64 EE builds. This enables production debugging with gdb/perf by copying the matching .debug file into a running pod. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use a `FROM scratch AS debuginfo` stage instead of copying the .debug file to the final image. This keeps the shipped image at exactly the same size as before. CI extracts the .debug file using depot's --target debuginfo with cache hits from the main build. Also adds gnu_debuglink so gdb auto-discovers the debug file when placed next to the binary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The separate depot build for --target debuginfo produced a binary with a different BuildID than the shipped binary. Extract the .debug file from the same EE image instead — no extra CI build, guaranteed match. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploying windmill with
|
| Latest commit: |
44e316a
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://728c51bf.windmill.pages.dev |
| Branch Preview URL: | https://worker-stuck-cpu-slow-querie.windmill.pages.dev |
Move the debuginfo extraction into the build_ee job, right after the main build+push. Since it runs on the same depot runner with a warm cache, the --target debuginfo step should be a cache hit (no recompile). The separate attach_ee_debug_to_release job caused a full recompile on v1.658.0 (~16 min per platform). The .debug file stays out of the final image (zero image size increase). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #8396. The separate depot
--target debuginfobuild produced a binary with a different BuildID than the shipped binary. This simplifies the approach: extract the.debugfile from the same EE image as the binary.Changes
debuginfoscratch stage. Copy.debugfile to the final image alongside the binary.attach_ee_debug_to_releasejob (saved depot compute). Extract.debugfrom the same EE image usingshrink/actions-docker-extractin the existingattach_amd64_binary_to_releasejob.Trade-off
Docker image is ~1.5GB larger due to the
.debugfile. The file doesn't affect runtime — it sits on disk unused unless you need to debug. The alternative (separate build) wastes CI compute and produces mismatched BuildIDs.Test plan
windmill-ee-amd64.debugfrom the same image aswindmill-ee-amd64gdb -ex "symbol-file windmill.debug" -ex "bt" -p 1resolves source file:lineGenerated with Claude Code