-
Notifications
You must be signed in to change notification settings - Fork 612
(GH-198) Fix race condition on startup #292
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(GH-198) Fix race condition on startup #292
Conversation
fi | ||
done | ||
|
||
echo 'Unable to connect to puppetdb' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
beep bloop puppetdb
Test FAILed. |
Test FAILed. |
retest this please |
Test FAILed. |
retest this please |
Test FAILed. |
This patch is a fix for the race condition that keeps occuring during postgresql setup. Its very rare on its own, but when you are using this module in a CI environment it happens quite frequently. Basically what happens is that sometimes the service will announce the database has started, but really it is still working in the background. Sometimes the unix socket may not be listening, and sometimes the system is still loading and you get a weird client error. The fix itself is a modification to postgresql::validate_db_connection so that it is able to connect on the local unix socket, plus retry until the database is available. This new and improved validate_db_connection can then be put into the build pipeline (in the service class in particular) to ensure the database is started before continuing on with the remaining steps. This in effect blocks the puppet module from continuing until the postgresql database is fully started and able to receive connections which is perfect. Tests and documentation provided. Signed-off-by: Ken Barber <ken@bob.sh>
Since the class is now throwing an error when you use the class directly, I'm just removing it. We left this in from the last rewrite as someone reported an issue a long time ago, but alas we have been unable to prove its a problem. Signed-off-by: Ken Barber <ken@bob.sh>
Signed-off-by: Ken Barber <ken@bob.sh>
Signed-off-by: Ken Barber <ken@bob.sh>
Test FAILed. |
Test FAILed. |
retest this please |
Test FAILed. |
Signed-off-by: Ken Barber <ken@bob.sh>
Test PASSed. |
…ion_on_startup (GH-198) Fix race condition on startup
…bsGH-198-race_condition_on_startup (puppetlabsGH-198) Fix race condition on startup
This patch is a fix for the race condition that keeps occuring during
postgresql setup. Its very rare on its own, but when you are using this
module in a CI environment it happens quite frequently.
Basically what happens is that sometimes the service will announce the
database has started, but really it is still working in the background.
Sometimes the unix socket may not be listening, and sometimes the
system is still loading and you get a weird client error.
The fix itself is a modification to postgresql::validate_db_connection
so that it is able to connect on the local unix socket, plus retry
until the database is available.
This new and improved validate_db_connection can then be put into the
build pipeline (in the service class in particular) to ensure the
database is started before continuing on with the remaining steps.
This in effect blocks the puppet module from continuing until the
postgresql database is fully started and able to receive connections
which is perfect.
Tests and documentation provided.
ALSO:
Remove concat::setup for include
Since the class is now throwing an error when you use the class directly, I'm just removing it.
We left this in from the last rewrite as someone reported an issue a long time ago, but alas we have been unable to prove its a problem.