Skip to content

CPU at 100% when forking processes that import node-redis #2868

Open
@prlanzarin

Description

@prlanzarin

Description

In Node.js versions >= 20.x, forking child processes that import the Redis
package while the application operates under the FIFO CPU scheduling policy
causes both parent and child processes to hang indefinitely, consuming 100% CPU.

The issue does not occur if:

  • The Redis package is not imported.
  • The application is running under a different CPU scheduling policy.
  • The application is running on Node.js versions prior to 20.x.

This is reproducible with both [email protected] and [email protected].

The following repo has a sample reproducible application: https://github.com/prlanzarin/cp-fork-sample
See the README for instructions.


PS.: I quickly poked at [email protected] and ended up figuring out that commenting the following prototype assignment got the application to stop misbehaving:

Multi.prototype[command.toUpperCase()] = Multi.prototype[command] = function () {

I've not looked into the equivalent breakpoint in 4.7.0.

PS2.: I reckon this may be a Node.js issue specifically, but I'm yet unable to reproduce this without any external dependencies - so I'm opening this issue here first.

Node.js Version

v22.11.0 (or 20.x)

Redis Server Version

6.0.16 malloc=jemalloc-5.2.1 bits=64

Node Redis Version

[email protected] (or [email protected])

Platform

Ubuntu 22.04 (or 20.04)

Logs

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions