Skip to content

v12.16.0 post-mortem #536

Closed
Closed
@targos

Description

@targos

Trying to document what went wrong with v12.16.0 (regressions) and what could be done in the future to reduce the risks.

ESM: Package self-resolution not behind --experimental-modules flag #31754.

v12.16.0 included a lot of changes related to ESM and because the unflagging is the only thing that we did not backport, we couldn't know exactly which code paths will work differently.
For future ESM backports, I suggest that we actively focus on making sure it is flagged.

V8 WASM bug #31752

Uncovered after nodejs/node#30909 landed in v12.16.0. The change was initially released in v13.5.0 but no issue was reported before we included it in v12.16.0.

Because this is a V8 bug that we were not aware of at the time of the release, I don't think we could have done better here, especially since the original change was supposed to fix a regression.

large pages change breaks the build in some cases #31249, #31520

Introduced by nodejs/node#30954.
The second issue was fixed on master in nodejs/node#31547 but isn't released yet. There seems to be no fix for the first issue at the moment.

The problem here is that none of the issues were linked back to the PR that introduced them. They do not appear in the PR's timeline.
To avoid this happening again, I think we need somehow to instruct collaborators to do these when a regression is found:

  • Comment on the PR with a link to the new issue
  • If the PR is not going to be reverted on master, add the backport-blocked label
  • If the PR is going to be reverted on master, add the dont-land-on label to both the original and the revert PRs.

async_hooks change causes Node process to crash #31783

Introduced in nodejs/node#30965.
That bug was only reported to us after it landed in v12.16.0 and is now fixed.

http response listener throwing does not result in emit of uncaughtException #31796

Introduced in nodejs/node#30236.
That bug was only reported to us after it landed in v12.16.0 and is now fixed.

New enumerable and nonwritable field on EventEmitter caused issues #30932

Introduced in nodejs/node#30932.
That was only reported to us after it landed in v12.16.0.

It is not obvious to me what we could have done better about the last three issues. They only affect specific cases that we did not test for and were not detected by people who use or run their tests on v13.x Current.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions