randomparity / randomparity/kdive

Wire BYO in-target drgn introspection and vmcore postmortem

Open
#1,831 0 comments 0 reactions 0 assignees View on GitHub
area:debug effort:M priority:P1 provider:baremetal-bmc provider:powervm status:blocked type:feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.