Skip to content

fix(pg-cloudflare): safely end closed sockets - #3735

Open
pratik-desgn wants to merge 1 commit into
brianc:masterfrom
pratik-desgn:fix-cloudflare-socket-end-after-close
Open

fix(pg-cloudflare): safely end closed sockets#3735
pratik-desgn wants to merge 1 commit into
brianc:masterfrom
pratik-desgn:fix-cloudflare-socket-end-after-close

Conversation

@pratik-desgn

Copy link
Copy Markdown
Contributor

Closes #3689.

CloudflareSocket._addClosedHandler() clears _cfSocket when the underlying socket closes. A later pool cleanup calls end()/destroy(), which currently dereferences the cleared socket and throws.

Use optional chaining so closing an already-closed socket is a no-op. The regression test drives the close handler, verifies the internal socket has been cleared, and confirms end() no longer throws.

Validation:

  • node --test --conditions=workerd packages/pg-esm-test/pg-cloudflare.test.js
  • yarn eslint packages/pg-cloudflare/src/index.ts packages/pg-esm-test/pg-cloudflare.test.js
  • yarn build
  • git diff --check

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pg-cloudflare: CloudflareSocket.end() throws null.close() when releasing a client whose socket already closed

1 participant