Exercise native allocation failures through the public API
- Dominant language
- Python
- Stars
- 62
- Forks
- 3
- Avg merge
- 7h
- Merged PRs (30d)
- 62
Description
Decision: Valid hardening gap.
Evidence: The Python layer has 100% branch coverage, but native allocations use `std.heap.c_allocator` directly across callback queues, timers, DNS, transports, and process setup. Sanitizers and the lifecycle soak detect corruption and growth but do not inject allocation failures.
Impact: Partial-construction cleanup, fatal-error latching, and ownership rollback can regress without any deterministic test reaching those branches.
Next action: Introduce test-build allocator indirection or another deterministic failure boundary, then drive failures through public asyncio APIs rather than native private helpers.
Acceptance criteria: Public-API tests fail each allocation point in scheduling, timer, DNS, transport write, datagram send, and process construction paths and prove there are no leaked references, descriptors, handles, or resumable half-failed states.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the public asyncio APIs for scheduling, timers, DNS, transport writes, datagram sends, and process construction, then locate the native c_allocator uses behind those paths. Add deterministic test-build allocation failures and make public-API tests cover each allocation point, with no leaked references, descriptors, handles, or resumable half-failed states.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, zig
- Domain
- backend-api-design, networking, testing
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100