Skip to content

AsyncLocalStorage behaviour change breaking test suite #41214

Open
@horrendo

Description

@horrendo

Version

v16.7.0

Platform

Darwin au-fvfwj01dhv2g 20.6.0 Darwin Kernel Version 20.6.0: Tue Oct 12 18:33:42 PDT 2021; root:xnu-7195.141.8~1/RELEASE_X86_64 x86_64

Subsystem

No response

What steps will reproduce the bug?

We use AsyncLocalStorage and have a large suite of end-to-end tests. Our app currently uses v14 but now that v16 has gone LTS we are preparing to upgrade. When we started testing node v16 we noticed all our e2e tests were failing. It turned out this was because we initialise AsyncLocalStorage in our e2e tests and depend on it persisting to the processing of the request.

By testing different versions of node I found the behaviour changed in v16.7.0 and persists through v16.13.1. Versions from v14 through to v16.6.2 and v17+ all 'work' as far as our e2e tests are concerned.

I have distilled this down to a simple repo - [email protected]:horrendo/als-test.git.

How often does it reproduce? Is there a required condition?

Using the tests in the above repo shows the issue we're having 100% of the time.

What is the expected behavior?

The supplied test passes.

What do you see instead?

The supplied tests fails with v16.7.0 through v16.13.1.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    async_hooksIssues and PRs related to the async hooks subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions