test: verify urllib GET without timeout fails on main kernel#107
test: verify urllib GET without timeout fails on main kernel#107danbugs wants to merge 1 commit into
Conversation
Signed-off-by: danbugs <danilochiarlone@gmail.com>
There was a problem hiding this comment.
Pull request overview
Adds a new Python networking regression test that performs an urllib.request.urlopen() HTTP GET without passing an explicit timeout, and wires it into the examples CI so the behavior on mainline kernels can be observed (intended to reproduce the hang/regression described in #106).
Changes:
- Add
examples/networking-py/urllib_get_no_timeout.py(urllib GET withouttimeout=). - Include the new script in the
networking-pyinitrd build (examples/networking-py/Dockerfile). - Add the new script to the Linux + Windows examples CI matrices (
.github/workflows/test-examples.yml).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| examples/networking-py/urllib_get_no_timeout.py | New urllib-based HTTP GET script that omits timeout= to exercise the problematic no-timeout path. |
| examples/networking-py/Dockerfile | Copies the new script into the initrd so it can be executed in the guest. |
| .github/workflows/test-examples.yml | Runs the new script in the examples test matrix on both Linux and Windows runners. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - example: networking-py | ||
| args: "--net -- /urllib_get_no_timeout.py" | ||
| expect: "SUCCESS: urllib GET \\(no timeout\\) worked!" |
| - example: networking-py | ||
| args: "--net -- /urllib_get_no_timeout.py" | ||
| expect: "SUCCESS: urllib GET \\(no timeout\\) worked!" |
| This exercises the code path used by mxc, where the Unikraft guest | ||
| kernel relies on the idle thread's halt_irq callback to poll sockets | ||
| via __hl_sleep rather than an explicit timeout-driven poll cycle. |
There was a problem hiding this comment.
Linux Benchmarks
Details
| Benchmark suite | Current: fcd363c | Previous: 682ad20 | Ratio |
|---|---|---|---|
hello_world (median) |
20 ms |
20 ms |
1 |
pandas (median) |
110 ms |
120 ms |
0.92 |
density (per VM) |
8 MB |
8 MB |
1 |
snapshot (disk) |
653 MiB |
653 MiB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Windows Benchmarks
Details
| Benchmark suite | Current: fcd363c | Previous: 682ad20 | Ratio |
|---|---|---|---|
hello_world (median) |
333 ms |
291 ms |
1.14 |
pandas (median) |
960 ms |
1024 ms |
0.94 |
density (per VM) |
7 MB |
7 MB |
1 |
snapshot (disk) |
661 MiB |
661 MiB |
1 |
This comment was automatically generated by workflow using github-action-benchmark.
Adds the same
urllib_get_no_timeout.pytest from #106 but against main's kernel (no idle-poll fix). Expected to fail — verifies the regression exists on main.Do not merge — verification-only branch, will be closed after CI runs.