Skip to content

fix: initialize pool sizing before queue workers start - #1329

Merged
ferhatelmas merged 1 commit into
masterfrom
ferhat/sizing-order
Aug 14, 2026
Merged

fix: initialize pool sizing before queue workers start#1329
ferhatelmas merged 1 commit into
masterfrom
ferhat/sizing-order

Conversation

@ferhatelmas

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

Bug fix

What is the current behavior?

Queue workers are started before pool sizing and cluster discovery.
Pool strategy caches num of workers but it's never rebalanced unlike cluster size.
If a strategy is cached during that window, it will be using more connections (x numWorkers) until expire (or indefinitely by capacity).

What is the new behavior?

Do it before queue start.
It doesn't apply worker entrypoint since their multiplier is always one.

Additional context

Seal the order via a test.

@ferhatelmas
ferhatelmas requested a review from a team as a code owner August 14, 2026 15:48
Copilot AI lite review requested due to automatic review settings August 14, 2026 15:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a startup-order bug where tenant pool sizing and cluster discovery could be initialized after queue workers start, allowing workers to create pools using an incorrect cached numWorkers multiplier until cache expiry.

Changes:

  • Move PgTenantConnection.poolManager initialization (setNumWorkers/monitor) ahead of queue startup.
  • Move Cluster.init and cluster change handling ahead of queue startup to ensure pools created by queue workers are sized with correct cluster context.
  • Add a Vitest regression test to assert boot order (pool sizing + cluster discovery happen before queue starts).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/start/server.ts Reorders startup to initialize pool sizing and cluster discovery before queue workers can create tenant pools.
src/start/server.test.ts Adds a boot-order regression test to prevent future startup-order regressions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/start/server.test.ts
@coveralls

coveralls commented Aug 14, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 31817125840

Coverage decreased (-0.06%) to 81.129%

Details

  • Coverage decreased (-0.06%) from the base build.
  • Patch coverage: 2 uncovered changes across 1 file (4 of 6 lines covered, 66.67%).
  • No coverage regressions found.

Uncovered Changes

File Changed Covered %
src/start/server.ts 6 4 66.67%

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 12966
Covered Lines: 10941
Line Coverage: 84.38%
Relevant Branches: 7706
Covered Branches: 5830
Branch Coverage: 75.66%
Branches in Coverage %: Yes
Coverage Strength: 531.73 hits per line

💛 - Coveralls

Signed-off-by: ferhat elmas <elmas.ferhat@gmail.com>
@ferhatelmas
ferhatelmas merged commit 0e4c1a4 into master Aug 14, 2026
28 of 29 checks passed
@ferhatelmas
ferhatelmas deleted the ferhat/sizing-order branch August 14, 2026 17:59
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.

4 participants