Skip to content

[BUG] 100k+ open pipe handles causes KeyDB to stop accepting new connections #453

@patrickhampson

Description

@patrickhampson

Describe the bug

KeyDB opens a significant amount of pipes on the system (Ubuntu 20.04 - kernel 5.4.0-113) and is unable to handle any new connections. Existing connections remain stable. Running keydb-cli hangs and keydb-diagnostic-tool reports too many open files.

Open handles:

root@redis1:~# lsof | grep keydb | wc -l
116736
root@redis1:~# keydb-diagnostic-tool
Could not connect to Redis at 127.0.0.1:6379: Can't create socket: Too many open files
Segmentation fault (core dumped)

lsof output snippet:

keydb-ser  16232                             keydb   13r     FIFO               0,13      0t0     266389 pipe
keydb-ser  16232                             keydb   14w     FIFO               0,13      0t0     266389 pipe
keydb-ser  16232                             keydb   15r     FIFO               0,13      0t0     722606 pipe
keydb-ser  16232                             keydb   16r     FIFO               0,13      0t0     266488 pipe
keydb-ser  16232                             keydb   17w     FIFO               0,13      0t0     266488 pipe
keydb-ser  16232                             keydb   18r     FIFO               0,13      0t0     266606 pipe
keydb-ser  16232                             keydb   19w     FIFO               0,13      0t0     266606 pipe

To reproduce

Unknown, KeyDB ran stable for ~1 month and then experienced this bug.

Expected behavior

KeyDB should maintain a reasonable number of pipes.

Additional information

Running KeyDB 6.3.1 standalone on Ubuntu 20.04 from the keydb.dev repo.

Configuration is mostly default, this installation is using active-active replication between 2 members. Authentication is enabled and there are about 15 TCP connections to the DB. Both replicas exhibit the same issue with 100k open pipe handles.

The DB is still in the above state so happy to run any diagnostic commands necessary.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions