Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[#13977] ysql: Import Check for too many postmaster children before s…
…pawning a bgworker Summary: Upstream commit was 3887e9455f812035473eee1cba0cf9c237969998 commit message was: The postmaster's code path for spawning a bgworker neglected to check whether we already have the max number of live child processes. That's a bit hard to hit, since it would necessarily be a transient condition; but if we do, AssignPostmasterChildSlot() fails causing a postmaster crash, as seen in a report from Bhargav Kamineni. To fix, invoke canAcceptConnections() in the bgworker code path, as we do in the other code paths that spawn children. Since we don't want the same pmState tests in this case, add a child-process-type parameter to canAcceptConnections() so that it can know what to do. Back-patch to 9.5. In principle the same hazard exists in 9.4, but the code is enough different that this patch wouldn't quite fix it there. Given the tiny usage of bgworkers in that branch it doesn't seem worth creating a variant patch for it. Discussion: https://postgr.es/m/18733.1570382257@sss.pgh.pa.us Test Plan: Existing test suite Reviewers: plee Reviewed By: plee Subscribers: yql Differential Revision: https://phabricator.dev.yugabyte.com/D19475
- Loading branch information
Showing
1 changed file
with
33 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters