Skip to content

[INLONG-12202][SDK] Close connPool before netClient to avoid dial goroutine leak in Dataproxy Go SDK - #12209

Open
yfsn666 wants to merge 1 commit into
apache:masterfrom
yfsn666:INLONG-12202
Open

[INLONG-12202][SDK] Close connPool before netClient to avoid dial goroutine leak in Dataproxy Go SDK#12209
yfsn666 wants to merge 1 commit into
apache:masterfrom
yfsn666:INLONG-12202

Conversation

@yfsn666

@yfsn666 yfsn666 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Fixes #12202

Motivation

In the Dataproxy Go SDK, subsequent Dial calls can block forever in EnrollContext once the gnet event-loop has exited during client close, causing goroutine leaks.

Modifications

Reordered the shutdown sequence in client.Close() to close the connection pool before stopping the netClient, reducing the window in which new dials can enter EnrollContext after the event-loop has already stopped.

Verifying this change

(Please pick either of the following options)

  • This change is a trivial rework/code cleanup without any test coverage.

  • This change is already covered by existing tests, such as:
    (please describe tests)

  • This change added tests and can be verified as follows:

    (example:)

    • Added integration tests for end-to-end deployment with large payloads (10MB)
    • Extended integration test for recovery after broker failure

Documentation

  • Does this pull request introduce a new feature? no

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Improve][SDK] Fix potential goroutine leak on close in the DataProxy Go SDK by closing connPool before netClient

1 participant