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): thirteen code-keyed registrars warn "already registered, overwriting" on re-registering the identical object #1362
Describe the bug #718 and #739 moved the registrars that store a class to an identity guard (incumbent is not x), but the registrars that store a parser (str or tuple) still test presence only, so handing back the object already stored warns about a displacement that did not happen.
To Reproduce
For each class, take code, value = next(iter(cls.__option__.items())) and call cls.register_option(code, value): 13 of 13 emit RegistryWarning: ... already registered, overwriting.
Expected behavior
Silent when the incumbent is the same object (incumbent is not None and incumbent is not meth), as in #718. The auditor also listed extraction.py (4 sites) and traceflow.py:244; those already have the identity guard and are not part of this issue.
Found by the round-trip audit of pcapkit/foundation. Run /tmp/rtissues/foundation-repro.py from the repo root (it prints pcapkit.__file__ first).
Found by the foundation round-trip audit (#1202). The repro was re-checked by an independent verifier, and I re-ran it on main at c9676c563.
Blocked until the open per-protocol PRs that edit these registrar files merge: #1344 (ipv4.py), #1342 (hip.py), #1345 (mh.py), #1348 (tcp.py) and #1310 (hopopt.py, ipv6_opts.py). A sweep across all thirteen sites now would conflict with each of them.
Still blocked, narrower now:#1342 (hip.py) and #1310 (hopopt.py, ipv6_opts.py) have merged. #1344 (ipv4.py), #1345 (mh.py) and #1348 (tcp.py) are still open.
Still blocked, but only on #1367 now.#1344, #1345 and #1348 have merged. The remaining overlap is protocols/internet/hip.py: this issue's :690 site and #1367 both edit that file. The issue unblocks when #1367 merges.
Unblocked:#1376 and #1390 have merged. A worker is starting on it. The IPv4 TS and SEC code is being worked in parallel for #1391–#1393, so this worker keeps to register_option in ipv4.py.
Activity
JarryShaw commentedon Oct 7, 2026
Blocked until the open per-protocol PRs that edit these registrar files merge: #1344 (
ipv4.py), #1342 (hip.py), #1345 (mh.py), #1348 (tcp.py) and #1310 (hopopt.py,ipv6_opts.py). A sweep across all thirteen sites now would conflict with each of them.JarryShaw commentedon Oct 7, 2026
Still blocked, narrower now: #1342 (
hip.py) and #1310 (hopopt.py,ipv6_opts.py) have merged. #1344 (ipv4.py), #1345 (mh.py) and #1348 (tcp.py) are still open.JarryShaw commentedon Oct 7, 2026
Still blocked, but only on #1367 now. #1344, #1345 and #1348 have merged. The remaining overlap is
protocols/internet/hip.py: this issue's:690site and #1367 both edit that file. The issue unblocks when #1367 merges.JarryShaw commentedon Oct 8, 2026
Still blocked, now on different PRs. #1367 has merged, so
hip.pyis clear. But this issue's sites still overlap two open PRs:protocols/internet/ipv4.py:502(register_option) is also edited by fix(ipv4)!: the TS option zeroes the timestamp slots beyond the pointer on rebuild (#1349) #1390;traceflow.py:244guard is also edited by fix(registry): foundation registrars restore the built-in a name shipped with (#1363) #1376.Blocked until #1390 and #1376 merge.
JarryShaw commentedon Oct 8, 2026
Unblocked: #1376 and #1390 have merged. A worker is starting on it. The IPv4 TS and SEC code is being worked in parallel for #1391–#1393, so this worker keeps to
register_optioninipv4.py.fix(protocols): parser registrars warn only when the entry really cha…