Kludex / Kludex/zuvloop

Exercise native allocation failures through the public API

Open
#165 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.