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
A full-tree Sphinx build hangs indefinitely while documenting pcapkit/const/reg, on the repo venv (Python 3.14.7, Sphinx 9.1.0).
Confirmed CPU-bound, not a memory leak.
Hangs inside typing.get_type_hints(), called from autodoc.
Reproduces on both -b dummy and -b html.
Reaches ~32% of reading sources, so it is past most of the tree.
Workaround that gets a build through: -D exclude_patterns=pcapkit/const/reg.rst.
Why this matters beyond the inconvenience
It invalidates the warning-count baseline every changelog round has been measured against.#657's rounds compared against build succeeded, 53 warnings (raw grep -c 55, the two extras being the Scapy content lines use_2_bytes_asn: True and CARP overwrites VRRP !). With reg.rst excluded the same head measures 36 real / 38 raw — a different scope, so the two numbers are not comparable. Any future "no new warnings" check needs either this fixed or the exclusion applied consistently on both sides.
Whether Sphinx 9.1.0 or Python 3.14 is the trigger — typing.get_type_hints() behaviour changed across recent Pythons.
Found while running round 9 of #657. Worth knowing that gh-pages deploys from a docs build, so if this reproduces in CI the docs site is affected too — I have not checked whether the CI build hits it, since CI uses a different install path.
A full-tree Sphinx build hangs indefinitely while documenting
pcapkit/const/reg, on the repo venv (Python 3.14.7, Sphinx 9.1.0).typing.get_type_hints(), called from autodoc.-b dummyand-b html.reading sources, so it is past most of the tree.Workaround that gets a build through:
-D exclude_patterns=pcapkit/const/reg.rst.Why this matters beyond the inconvenience
It invalidates the warning-count baseline every changelog round has been measured against. #657's rounds compared against
build succeeded, 53 warnings(rawgrep -c55, the two extras being the Scapy content linesuse_2_bytes_asn: TrueandCARP overwrites VRRP !). Withreg.rstexcluded the same head measures 36 real / 38 raw — a different scope, so the two numbers are not comparable. Any future "no new warnings" check needs either this fixed or the exclusion applied consistently on both sides.Not yet established
docs/source/changelog/1.5.0.rstis read successfully at 22%, well before the hang. Bisecting against an oldermainor an older Sphinx would localise it.pcapkit/const/regspecifically or size. That package holdsapptype.pywith 8,182 members, so a pathologicalget_type_hints()cost on a very large enum is plausible; design: AppType is str-valued with 1,004 port=-1 members, unlike its int-valued sibling registries #732's split into per-transport modules might change it either way.typing.get_type_hints()behaviour changed across recent Pythons.Found while running round 9 of #657. Worth knowing that
gh-pagesdeploys from a docs build, so if this reproduces in CI the docs site is affected too — I have not checked whether the CI build hits it, since CI uses a different install path.