Skip to content

TCP connections to Milvus grow without bound when TLS is on #1034

Open

Description

@guiguan

Describe the bug:

Against a Milvus with TLS enabled, Attu's TCP connections to the Milvus proxy grow steadily and are never closed.

In our deployment, with a cluster page left open in a browser tab, the proxies held about 590 established connections from the single Attu pod. The count grew by about one per minute, matching the new Connect / GetVersion / CheckHealth sequence the proxy received from Attu each minute. With TLS off, the count stays flat.

The cause is in @zilliz/milvus2-sdk-node, which Attu v3.0.1 ships (3.0.6, with @grpc/grpc-js 1.14.4). When the SDK's channel pool destroys a client, it calls client.close() and then client.getChannel().getConnectivityState(true). On the closed channel, grpc-js then dials a new connection that nothing closes. With TLS each of these is a separate socket. Without TLS grpc-js reuses one socket, which hides the leak.

Fix PR in the SDK: milvus-io/milvus-sdk-node#615

It would help if Attu bumped the SDK once that fix is released. Reusing one client instead of opening a new connection every minute would also avoid the churn.

Steps to reproduce:

  1. Run Attu v3.0.1 against a Milvus with TLS on (common.security.tlsMode: 1).
  2. Open a cluster page and leave the tab open.
  3. Count established connections to port 19530 from the Attu pod on the Milvus proxy (e.g. /proc/net/tcp6 in the proxy container). It grows by about one per minute and never drops.

Attu version:
v3.0.1 (zilliz/attu:v3.0.1)

Activity

  1. changed the title [-]Leaks a TCP connection to Milvus per closed client when TLS is on[/-] [+]TCP connections to Milvus grow without bound when TLS is on[/+] on Oct 3, 2026
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions