Skip to content

two more fuzzer-noise sources: Runner._on_sigint and http.cookiejar's own warning - #263

Merged
devdanzin merged 1 commit into
mainfrom
asyncio-sigint-and-cookiejar-noise
Aug 19, 2026
Merged

two more fuzzer-noise sources: Runner._on_sigint and http.cookiejar's own warning#263
devdanzin merged 1 commit into
mainfrom
asyncio-sigint-and-cookiejar-noise

Conversation

@devdanzin

Copy link
Copy Markdown
Owner

From triaging fusil-pypy311_fleet_03. Together these were 35 of 53 kept dirs — 66% of
everything that fleet kept.

1. asyncio.runners.Runner._on_sigint — 29 dirs (55%)

It is the SIGINT handler Runner installs. Called directly as a fuzz target it
unconditionally does:

raise KeyboardInterrupt()      # asyncio/runners.py:157

KeyboardInterrupt is a BaseException, so it blows straight through the generated script's
except Exception handlers and takes the session with it — the same #192 class as
signal.default_int_handler (blacklisted in #259). Reached only because --test-private
exposes the underscore-prefixed method.

2. http.cookiejar bug! — 6 dirs

http/cookiejar.py:74 warns this, in its own words, when it meets a malformed cookie —
routine input for a fuzzer:

warnings.warn("http.cookiejar bug!\n%s" % msg, stacklevel=2)

The text carries the bug word (0.10). Harmless on its own, but enough to push an otherwise
boring session over the threshold alongside another weak signal. It's the target's benign
diagnostic, not a defect, so it joins the core ignore regexes — and the test asserts a real
1.0 hit still scores afterwards.

Full suite green (1267); ruff clean.

🤖 Generated with Claude Code

… own warning

Measured on a PyPy stdlib fleet (fusil-pypy311_fleet_03, 53 kept dirs); together these were
35 of 53 -- 66% -- of everything the fleet kept.

1. asyncio.runners.Runner._on_sigint (29 dirs, 55%). It is the SIGINT handler the Runner
   installs, and called directly as a fuzz target it unconditionally
   `raise KeyboardInterrupt()`. That is a BaseException, so it blows through the generated
   script's `except Exception` handlers and takes the session with it -- the same #192 class
   as signal.default_int_handler, blacklisted in #259, and reached here only because
   --test-private exposes the underscore-prefixed method.

2. http.cookiejar's "http.cookiejar bug!" warning (6 dirs). cookiejar.py:74 warns this, in
   its own words, when it meets a malformed cookie -- routine input for a fuzzer. The text
   carries the "bug" word (0.10): harmless alone, but enough to push a boring session over
   the threshold alongside another weak signal. It is the target's benign diagnostic, not a
   defect, so it joins the core ignore regexes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WhcpLoyjUWLbETGZnA9boj
@devdanzin
devdanzin merged commit 16a332d into main Aug 19, 2026
0 of 2 checks passed
@devdanzin
devdanzin deleted the asyncio-sigint-and-cookiejar-noise branch August 19, 2026 05:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant