Skip to content

ci: add Valgrind memcheck job#356

Draft
abhinavagarwal07 wants to merge 1 commit into
libfuse:masterfrom
abhinavagarwal07:ci-valgrind
Draft

ci: add Valgrind memcheck job#356
abhinavagarwal07 wants to merge 1 commit into
libfuse:masterfrom
abhinavagarwal07:ci-valgrind

Conversation

@abhinavagarwal07
Copy link
Copy Markdown
Collaborator

@abhinavagarwal07 abhinavagarwal07 commented May 19, 2026

Add valgrind.yml with a memcheck job running the full pytest suite under Valgrind.

  • --leak-check=full, definite/indirect leak detection, --error-exitcode=99
  • Advisory (continue-on-error) — sshfs has real leaks that need fixing first
  • G_DEBUG=gc-friendly + G_SLICE=always-malloc for accurate GLib leak tracking
  • Suppression file at test/valgrind.supp
  • Test harness changes (conftest.py, util.py) for Valgrind integration via TEST_WITH_VALGRIND env var
  • Uploads memcheck logs + JUnit XML as artifacts

@abhinavagarwal07 abhinavagarwal07 force-pushed the ci-valgrind branch 4 times, most recently from 8948967 to eaf3647 Compare May 21, 2026 06:48
- Add valgrind-memcheck job running full pytest suite under memcheck with continue-on-error: true
- Uses --error-exitcode=99 with definite/indirect leak checking
- Currently finding real sshfs-owned leaks (buf_init/sftp_read, buf_init/sftp_send_iov, cache_add_link) — will go green once those are fixed
- Raw Valgrind logs written via --log-file and uploaded as artifacts alongside JUnit XML
- Add VALGRIND_OPTIONS support to test/util.py via shlex.split
- Suppression file covers only third-party libfuse worker-thread teardown leaks
- Fix fusermount/fusermount3 mismatch, scale timeouts 4x under Valgrind
- Set G_DEBUG/G_SLICE for cleaner Valgrind output
- Hard-fail FUSE preflight, workflow-level permissions and concurrency
- All actions pinned to Node 24-capable SHAs, runner pinned to ubuntu-24.04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant