DO NOT MERGE: Add strace filesystem tracing workflow#2
Closed
OvesN wants to merge 2 commits into
Closed
Conversation
Adds a Linux-only, workflow_dispatch GitHub Actions workflow that runs the MSBuild build under strace and uploads a filtered trace artifact so operators can answer "which process deleted/rewrote my file?". Design notes: - strace -P is exact-path, not recursive, and misses relative-path syscalls after chdir, so we capture the full trace and post-filter with grep -F against both absolute and repo-relative path forms. - -e trace=%file only covers path-arg syscalls; we additionally trace write/writev/pwrite64/close/ftruncate/copy_file_range and use -yy so fd-arg syscalls carry their backing path for grep to attribute. - Restore runs untraced (network/disk I/O outside the trace folder) to cut runtime roughly in half without losing signal. - Includes a strace smoke test that verifies the capture-then-grep approach records subtree events before the real build runs. - PID extraction uses sed -nE (mawk on Ubuntu does not support gawk's 3-arg match(..., arr) form). - Top-N reductions use awk 'NR<=N' rather than '| head -N' to avoid SIGPIPE on upstream sort under the default -e -o pipefail shell. - Build is scoped via --projects by default (Framework only) and --nodeReuse false for deterministic process boundaries; users can override both inputs at dispatch time. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a pull_request trigger so the workflow runs (and produces its artifact) on PRs without first merging to main. On pull_request events `inputs.*` is null, so env vars now use `|| 'default'` to fall back to the same defaults shown in the workflow_dispatch UI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Owner
Author
|
Reopening against upstream dotnet/msbuild instead. |
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.
DO NOT MERGE - opened only to trigger the
Strace Filesystem Tracingworkflow on the head commit so the artifact can be downloaded and verified.Adds a workflow_dispatch + pull_request GitHub Actions workflow that runs the MSBuild build under
straceon Linux and uploads a filtered filesystem trace as an artifact (msbuild-strace-trace: gzipped log + summary). Used to attribute file operations (delete/rewrite/truncate) to specific PIDs.Defaults: trace
artifacts/bin/Microsoft.Build.Framework/Debug/net10.0,Debugconfig, scoped tosrc/Framework/Microsoft.Build.Framework.csprojto keep runtime down. All overridable viaworkflow_dispatchinputs after merging.