You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(registry): a custom protocol's name stays in pcapkit.protocols.__proto__ after it is unregistered #1505
Describe the bug
Registering a custom protocol adds its name to the global protocol registry, and nothing removes it when the shipped entry is restored.
Reproduction
In the #1202 repro (register_tcp(80, Custom) then register_tcp(80, shipped)), 'CUSTOM' in pcapkit.protocols.__proto__ goes from False to True and stays True.
Expected behavior
Restoring the shipped entry leaves pcapkit.protocols.__proto__ as it was before.
System information
Linux, CPython 3.14.7, main at 00aa1fc90.
Additional context pcapkit/foundation/registry/protocols.py:235 adds the name (protocol_registry[name] = protocol, reached from e.g. :416). There is no corresponding removal.
Found by the #1202 foundation round-trip slice; reproduced on main.
Blocked until the #1202 foundation-slice test PR (branch test/1202-foundation-roundtrips) merges. That PR adds this defect's Gap row, and the fix must delete the row.
Activity
JarryShaw commentedon Oct 9, 2026
Blocked until the #1202 foundation-slice test PR (branch
test/1202-foundation-roundtrips) merges. That PR adds this defect'sGaprow, and the fix must delete the row.test(foundation): reassembly, traceflow, engine and registry round tr…
test(foundation): reassembly, traceflow, engine and registry round tr…
test(foundation): reassembly, traceflow, engine and registry round tr…
test(foundation): reassembly, traceflow, engine and registry round tr…
test(foundation): reassembly, traceflow, engine and registry round tr…
test(foundation): reassembly, traceflow, engine and registry round tr…
JarryShaw commentedon Oct 9, 2026
Unblocked: #1508 has merged, so this defect's known-failure row is on
main. A worker is on the fix, and the fix PR deletes the row.fix(registry): unregistering a custom protocol removes its name from …
fix(registry): unregistering a custom protocol removes its name from …