{
 "number": 36627,
 "input_hash": "affeb058d299c083",
 "model": "ledger",
 "prompt_hash": null,
 "created": "2026-10-27T01:28:27+00:00",
 "result": {
  "summary": "Replaces the BCC and eBPF tracing framework in USDT functional tests with GDB. Tested nodes run as debugger children that enable tracepoints and inspect probe arguments when hit. This removes dependencies on the BCC toolchain, matching host kernel headers, and elevated BPF privileges, allowing CI containers to drop privileged mode.",
  "problem": "USDT functional tests require BCC, matching kernel headers, and root/BPF permissions. This makes tracepoint tests difficult to run locally and requires a privileged container in the ASan CI task.",
  "card": "This PR replaces the BCC and eBPF tracing toolchain in USDT functional tests with GDB. Testing USDT probes previously required BCC, host kernel headers, and root privileges to load BPF programs, which prevented unprivileged local execution and required a privileged Docker container in ASan CI. Tracing through GDB verifies probe metadata, triggers, and argument values without elevated permissions while removing roughly 660 lines of embedded BPF and CI code. The trade-off is that external eBPF loading paths are not exercised and LeakSanitizer must be disabled on the traced children due to ptrace limitations.",
  "evidence": [
   "PR description: 'All five tests can run with GDB and binutils, without BCC or matching kernel headers. The ASan CI job no longer needs a privileged container and uses SYS_PTRACE instead. This also removes the embedded BPF programs from the tests, reducing their size and maintenance burden. Overall, the change removes roughly 660 lines of test and CI code.'"
  ],
  "scope_notes": "Touches only functional test infrastructure, documentation, and CI configuration; no production node code is modified.",
  "changed_since_previous": "Diff provided; the implementation matches the previous description.",
  "thread": {
   "last_event_at": "2026-10-26T10:43:36Z",
   "events": 7,
   "head_sha": "e0ef6fd65ab28572eb52684b2833d3ec2fcfdb27",
   "schema_floor": 2,
   "schema": 2
  },
  "waiting_on": [
   {
    "at": "2026-10-26",
    "id": "r:5650761537",
    "on": "author",
    "url": "https://github.com/bitcoin/bitcoin/pull/36627#pullrequestreview-5650761537",
    "what": "answer questions from 0xB10C and maflcko, and address CI suggestions"
   }
  ],
  "risk": {
   "level": "low",
   "touches": [
    "tests",
    "docs"
   ],
   "why": "Only touches functional tests, CI configurations, and tracing documentation; a bug could cause CI or test runner failures without risking node runtime or consensus."
  },
  "discussion": {
   "author_status": "last statement processed 2026-10-26",
   "open_concerns": [
    "0xB10C: Does this change also make the USDT tests work on aarch64?",
    "maflcko: How does this change fit into the larger picture in issue 35142?",
    "maflcko: Remove the comment in ci.yml",
    "maflcko: Bump like all other sanitizer tests"
   ],
   "resolved_concerns": []
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "Nothing known that would invalidate a review now."
  },
  "agreement": {
   "state": "Strong",
   "summary": "Strong: substantive support, no open objection (0xB10C)",
   "reason": "Added review comments and question from maflcko regarding how the change fits into issue 35142 and inline suggestions on CI files.",
   "evidence": [
    "0xB10C (question, scope, must be answered, open): Does this change also make the USDT tests work on aarch64?",
    "maflcko (question, scope, must be answered, open): How does this change fit into the larger picture in issue 35142?",
    "maflcko (suggestion, maintenance, must be answered, open): Remove the comment in ci.yml",
    "maflcko (suggestion, maintenance, must be answered, open): Bump like all other sanitizer tests",
    "fanquake: Concept ACK",
    "0xB10C: Concept ACK \u2014 agrees it is a nice simplification to test the Bitcoin Core interface rather than BCC"
   ],
   "objections": [
    {
     "reviewer": "0xB10C",
     "association": "MEMBER",
     "type": "question",
     "kind": "scope",
     "harm": "",
     "request": "",
     "question": "Does this change also make the USDT tests work on aarch64?",
     "text": "Does this change also make the USDT tests work on aarch64?",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-10-23: 'Does this also make the tests work aarch64 ref https://github.com/bitcoin/bitcoin/issues/35142#issuecomment-4959156870?'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#issuecomment-6373632789",
     "id": "c:6373632789",
     "at": "2026-10-23",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    },
    {
     "reviewer": "maflcko",
     "association": "MEMBER",
     "type": "question",
     "kind": "scope",
     "harm": "",
     "request": "",
     "question": "How does this change fit into the larger picture in issue 35142?",
     "text": "How does this change fit into the larger picture in issue 35142?",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-10-26: 'How does this fit into the large picture in https://github.com/bitcoin/bitcoin/issues/35142  ?'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#pullrequestreview-5650761537",
     "id": "r:5650761537",
     "at": "2026-10-26",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    },
    {
     "reviewer": "maflcko",
     "association": "MEMBER",
     "type": "suggestion",
     "kind": "maintenance",
     "harm": "",
     "request": "Remove the comment in ci.yml",
     "question": "",
     "text": "Remove the comment in ci.yml",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-10-26: 'remove the comment?'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#discussion_r4376326934",
     "id": "rc:4376326934",
     "at": "2026-10-26",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    },
    {
     "reviewer": "maflcko",
     "association": "MEMBER",
     "type": "suggestion",
     "kind": "maintenance",
     "harm": "",
     "request": "Bump like all other sanitizer tests",
     "question": "",
     "text": "Bump like all other sanitizer tests",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-10-26: 'bump, like all other sanitizer tests?'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#discussion_r4376328538",
     "id": "rc:4376328538",
     "at": "2026-10-26",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    }
   ],
   "support": [
    {
     "reviewer": "fanquake",
     "reason": "",
     "substantive": false,
     "verdict": "Concept ACK",
     "id": "c:6369364243",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#issuecomment-6369364243",
     "at": "2026-10-23",
     "association": "MEMBER",
     "evidence": "none",
     "areas": []
    },
    {
     "reviewer": "0xB10C",
     "reason": "agrees it is a nice simplification to test the Bitcoin Core interface rather than BCC",
     "substantive": true,
     "verdict": "Concept ACK",
     "id": "c:6373632789",
     "url": "https://github.com/bitcoin/bitcoin/pull/36627#issuecomment-6373632789",
     "at": "2026-10-23",
     "association": "MEMBER",
     "evidence": "read",
     "areas": []
    }
   ],
   "participants": [
    {
     "login": "0xB10C",
     "stance": "support",
     "note": "Concept ACK; asked if this enables USDT tests on aarch64",
     "association": "MEMBER",
     "comments": 1,
     "first": "2026-10-23",
     "last": "2026-10-23"
    },
    {
     "login": "fanquake",
     "stance": "support",
     "note": "Concept ACK",
     "association": "MEMBER",
     "comments": 2,
     "first": "2026-10-23",
     "last": "2026-10-23"
    },
    {
     "login": "maflcko",
     "stance": "question",
     "note": "asked how this fits into issue 35142 and left CI inline comments",
     "association": "MEMBER",
     "comments": 3,
     "first": "2026-10-26",
     "last": "2026-10-26"
    }
   ],
   "derivation": "substantive support, no open objection (0xB10C)",
   "model_state": null,
   "corrections": [],
   "notes": "Added review comments and question from maflcko regarding how the change fits into issue 35142 and inline suggestions on CI files."
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "build",
    "member": false,
    "evidence": "CI script and workflow edits only drop BCC setup and privileged container requirements as a consequence of the test framework change.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 0,
     "leverage": 1,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": "Mechanical updates to CI configuration following from test harness changes do not make the PR a member of the build category."
   },
   {
    "name": "docs",
    "member": false,
    "evidence": "The additions to doc/tracing.md simply document the test framework changes introduced in this PR.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 0,
     "leverage": 1,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": "Documentation updates that accompany code and test harness changes belong to the area being modified rather than Docs."
   },
   {
    "name": "tests",
    "member": true,
    "evidence": "Overhauls USDT functional test framework utilities and multiple test scripts (+413/-1073 in test/functional/).",
    "band": "P3",
    "reason_tag": "cleanup",
    "score": 0.4,
    "factors": {
     "bug_severity": 0,
     "leverage": 1,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": "Replacing BCC and eBPF with GDB removes heavy external dependencies, root permissions, and over 600 lines of test code. Running USDT tests locally without host kernel headers or elevated privileges is a clear usability improvement for developers, though reasonably deferrable."
   },
   {
    "name": "tools",
    "member": false,
    "evidence": "Modifies test harness scripts and CI workflows rather than user-facing or developer scripts in contrib; test helpers are classified under tests, not tools.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 0,
     "leverage": 1,
     "performance": 0,
     "security_stability": 1,
     "user_value": 0
    },
    "rationale": "Does not touch standalone tools or contrib developer utilities, affecting only functional test harness scripts and CI definitions."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": []
 },
 "cost_usd": 0.0,
 "source": {
  "record": "2026-10-27T01:28:27+00:00",
  "code": "2026-10-25T01:16:13+00:00",
  "judgments": 4
 }
}