Skip to content

node:http/https behavioral parity tail (26.2% → ...) — successor to #2132 #4975

@proggeramlug

Description

@proggeramlug

node:http / node:https behavioral parity tail

Successor to #2132 (which covered the byte-level diff scope — now closed). This tracks the behavioral gap that re-measurement against Node's own test/parallel corpus surfaced: tests that compile and run but crash, hang, or fail an assertion.

Measurement (Node v22 corpus, scripts/node_core_subset.py --api http https)

original (#2132 open) after #2132 fixes
parity 11.6% 26.2%
pass 38 86
runtime-fail 285 240
compile-fail 4 0
diff 2 2

The #2132 fixes (#4903/#4904/#4905/#4906/#4907/#4908/#4909/#4910) cleared the clean single-root-cause clusters (server.address, constructors, missing methods, validation, codegen). What remains is the hard tail.

Remaining 240 runtime-fails by cluster

cluster count notes
no-output / server hang 67 framing / keep-alive / timeout hangs; improved by #4964 but still the biggest mechanical bucket
strict-equal mismatch 63 behavioral semantics — largest, grows as upstream fixes unblock tests
other one-offs 56 mostly hang-with-partial-stdout + the distinct bugs below
read-undefined-prop 25 scattered
not-a-function 13 residual lifecycle methods
https TLS cert 6 residual from #4906
missing-exception 5 residual from #4907
ReferenceError not-defined 5 missing globals (MessageEvent, OutgoingMessage, …)

Sub-tickets (distinct root causes split out)

Not yet split (need triage)

  • strict-equal (63) — behavioral; e.g. test-http-1.0, test-http-agent-scheduling, test-http-agent-keep-alive-timeout-buffer, test-http-blank-header, test-http-chunk-extensions-limit, test-http-client-headers-array. No single root cause — needs per-test diff of actual vs expected.
  • no-output (67) — server hangs; needs stderr instrumentation per test (sub-themes: agent lifecycle, outgoing-message framing, keep-alive).

Method

Reproduce locally: vendor the corpus (git clone --no-checkout --depth 1 --branch v22.x --filter=blob:none https://github.com/nodejs/node <dir> + git sparse-checkout set test/parallel test/common test/fixtures), then scripts/node_core_subset.py --root <dir> --api http https --sample-cap 500. Re-measure after each batch to catch regressions (this run already caught #4970).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingparityNode.js compatibility / parity gaps

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions