randomparity / randomparity/kdive
Wire BYO in-target drgn introspection and vmcore postmortem
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 26m
- Merged PRs (30d)
- 311
Description
Part of #1814
## Problem
A captured vmcore is inert until something opens it, and a running kernel is opaque until something
inspects it. These are the two analysis paths that turn the BYO spine into a debugging tool rather
than a crash-collection pipeline.
Neither needs new infrastructure — the drgn live transport was already generalized away from a
libvirt-specific assumption, and worker-side postmortem is shared. This entry wires an adopted host
into both.
## Evidence
- ADR-0085 — the drgn live-transport generalization; live introspection runs **in-target**, which
is exactly the shape an adopted host needs (there is no hypervisor memory vantage on metal).
- `src/kdive/providers/shared/debug_common/crash_postmortem.py` — the shared worker-side postmortem.
- `src/kdive/providers/shared/debug_common/drgn_program.py` and `core_file.py` — the shared drgn
seams.
- `src/kdive/providers/core/runtime.py:70` — `introspection`, a fail-closed frozenset of
`IntrospectionMode` the provider advertises (ADR-0208).
- `src/kdive/providers/ports/retrieve.py` — `LiveIntrospector`, `VmcoreIntrospector`,
`CrashPostmortem`, all required `ProviderRuntime` ports still on #1817's stubs.
- ADR-0347 / `gdbmi/policy/arch.py` — cross-arch handling already proven for ppc64le vmcores under
the emulated tier; a real LPAR core is the same ELF shape.
## Expected outcome
- `LiveIntrospector` wired over in-target drgn for a booted BYO System, on both arches.
- `CrashPostmortem` and `VmcoreIntrospector` wired against the vmcore #1829 retrieves, reusing the
shared postmortem rather than a provider-local copy.
- `ProviderSupport.introspection` advertises exactly what is wired, fail-closed — no aspirational
mode.
- All introspection output passes the redactor before persistence or response inclusion.
- Any drgn/debuginfo host dependency is declared in the owning Ansible role in the same PR.
Blocked by #1829
Contributor guide
Research direction
This is blocked by #1829. Start with src/kdive/providers/shared/debug_common/crash_postmortem.py, drgn_program.py, core_file.py, src/kdive/providers/core/runtime.py:70, and src/kdive/providers/ports/retrieve.py; review ADR-0085 and ADR-0347/gdbmi/policy/arch.py first. Done means both arches expose only wired introspection modes, vmcore retrieval uses the shared postmortem, output is redacted, and dependencies are declared in the owning Ansible role.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ansible, python
- Domain
- backend, devtools, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100