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(protocols): restoring a protocol registration puts back the class, not the shipped ModuleDescriptor #1504
Describe the bug
Registering a custom class over a shipped entry and then registering the shipped one back leaves the dispatch table holding the resolved class instead of the original descriptor.
Expected behavior TCP.__proto__[80] is shipped, as the foundation registrars already guarantee (#1363, #1364).
System information
Linux, CPython 3.14.7, main at 00aa1fc90.
Additional context
Each protocol register resolves the descriptor: protocol.py:924, link/link.py:148, internet/internet.py:168, transport/transport.py:122, misc/pcap/frame.py:155, misc/pcapng.py:1027, transport/sctp.py:748 (all under pcapkit/protocols/). It affects all 9 module registrars.
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.
#1533 has merged: six of the seven restore sites now put back the shipped ModuleDescriptor, and the Gap(1504) row is narrowed to the 6 register_linktype/register_pcapng labels.
The seventh site, PCAPNG.register at protocols/misc/pcapng.py:1021-1035, is still open. #1523 edits that file. Blocked until #1523 merges; the fix then applies the same seven lines as the other sites and deletes the Gap(1504) row.
Unblocking early to meet a deadline. A worker started from main (a3da376dd) on #1502, #1504 and #1558 together, since all three need pcapkit/protocols/misc/pcapng.py. It will rebase over #1523 when that merges, keeping every #1523 hunk.
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.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.JarryShaw commentedon Oct 9, 2026
#1533 has merged: six of the seven restore sites now put back the shipped
ModuleDescriptor, and theGap(1504)row is narrowed to the 6register_linktype/register_pcapnglabels.The seventh site,
PCAPNG.registeratprotocols/misc/pcapng.py:1021-1035, is still open. #1523 edits that file. Blocked until #1523 merges; the fix then applies the same seven lines as the other sites and deletes theGap(1504)row.JarryShaw commentedon Oct 10, 2026
Unblocking early to meet a deadline. A worker started from
main(a3da376dd) on #1502, #1504 and #1558 together, since all three needpcapkit/protocols/misc/pcapng.py. It will rebase over #1523 when that merges, keeping every #1523 hunk.fix(protocols): PCAPNG.register restores the shipped descriptor; a ze…