Skip to content

fix(nbdkit): disable malloc-debug checking - #18705

Open
Tobias Brick (tobiasb-ms) wants to merge 1 commit into
microsoft:4.0from
tobiasb-ms:tobiasb-ms/bug-23389-nbdkit-repro
Open

fix(nbdkit): disable malloc-debug checking#18705
Tobias Brick (tobiasb-ms) wants to merge 1 commit into
microsoft:4.0from
tobiasb-ms:tobiasb-ms/bug-23389-nbdkit-repro

Conversation

@tobiasb-ms

@tobiasb-ms Tobias Brick (tobiasb-ms) commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Removes glibc malloc-debug checking from the nbdkit test environment because it splits SymCrypt allocations across libc and malloc-debug. Retains malloc perturbation and the full test suite.

AB#23389

Validation: stage2 and stage2-prod builds pass all 442 tests (366 passed, 76 skipped).

Copilot AI balanced review requested due to automatic review settings September 3, 2026 21:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused workaround is consistently rendered and validated by successful full test-suite builds.

Pull request overview

Disables legacy glibc allocator checking in nbdkit tests to prevent SymCrypt allocation/free mismatches while retaining memory perturbation.

Changes:

  • Adds and applies the test-environment patch.
  • Refreshes the rendered spec, release, and component lock.
  • Preserves the complete test suite.
File summaries
File Description
base/comps/nbdkit/0001-tests-disable-glibc-malloc-check.patch Defines the allocator-check workaround.
base/comps/nbdkit/overlays/0003-disable-glibc-malloc-check.overlay.toml Registers the patch with rationale and tracking metadata.
specs/n/nbdkit/0001-tests-disable-glibc-malloc-check.patch Contains the matching rendered patch.
specs/n/nbdkit/nbdkit.spec Applies the patch and increments the release.
locks/nbdkit.lock Refreshes the component input fingerprint.
Review details
  • Files reviewed: 4/5 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@tobiasb-ms

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
2 pipeline(s) were filtered out due to trigger conditions.

@tobiasb-ms
Tobias Brick (tobiasb-ms) marked this pull request as ready for review September 3, 2026 22:55
@tobiasb-ms
Tobias Brick (tobiasb-ms) requested a review from a team as a code owner September 3, 2026 22:55

@reubeno reuben olinsky (reubeno) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The patch looks okay to me -- one quick blocking question regarding the referenced bug, and a non-blocking question.

Date: Thu, 3 Sep 2026 20:17:00 +0000
Subject: [PATCH] tests: disable glibc malloc check

The legacy glibc malloc checker interposes allocation APIs through

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question(non-blocking): This characterizes the use of libc_malloc_debug as a "legacy" approach -- is that accurate? Is it really deprecated? (Is there a newer mechanism that's recommended?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right. I overgeneralized from glibc's removal of the deprecated malloc hooks and its description of libc_malloc_debug hook support as transitional. glibc.malloc.check itself is still supported, so I've removed “legacy” and now refer to glibc's malloc-debug checker.

category = "azl-temp-workaround"
upstream-status = "unknown"
bugs = [
{ url = "https://dev.azure.com/mariner-org/mariner/_workitems/edit/23389" },

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question(blocking): Did you mean to leave in a reference to the internal bug here? If there's a GitHub-located bug filed against SymCrypt that might be the more appropriate reference.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's intentional. There are many other examples of doing this with an internal bug url. There is no SymCrypt issue filed.

Remove glibc malloc-debug checking from the test environment because it splits SymCrypt allocations across libc and malloc-debug. Retain malloc perturbation and the full test suite.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tobiasb-ms Tobias Brick (tobiasb-ms) changed the title fix(nbdkit): disable legacy malloc checking fix(nbdkit): disable malloc-debug checking Sep 4, 2026
Copilot AI review requested due to automatic review settings September 4, 2026 19:49
@tobiasb-ms
Tobias Brick (tobiasb-ms) force-pushed the tobiasb-ms/bug-23389-nbdkit-repro branch from 8d62efc to 4dfee21 Compare September 4, 2026 19:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The random perturbation value can be 256, causing some test runs to disable the only remaining malloc diagnostic.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 4/5 changed files
  • Comments generated: 2
  • Review effort level: Balanced

-# normal operation or other libc.
+# Perturb allocated and freed memory as a cheap way to find some
+# use-after-free and uninitialized read problems.
random = $(shell bash -c 'echo $$(( 1 + (RANDOM & 255) ))')

[metadata]
category = "azl-temp-workaround"
upstream-status = "unknown"
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.

3 participants