implement haproxy check page that can be forced to return a 500 error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Francis J. Lacoste |
Bug Description
This bug is intended to describe the solution to RT#41503. Essentially what we're looking for is:
- A lightweight page that we can check for in haproxy (this would be being checked every 2 seconds)
- A means of forcing that page to return a 500 (this could be sending a signal, checking for the presence of a file, etc.)
This will allow us to implement "no downtime" rolling upgrades by:
1) Force the check page to return haproxy
2) Watch haproxy to confirm the service is reported as down, and wait til it reports no active connections to the instance in question
3) Stop the instance in question using normal shutdown process
4) Start the service again using new code
5) Haproxy will automatically see the new instance as "up" and start sending traffic to it
Related branches
- Gary Poster (community): Approve
-
Diff: 293 lines (+197/-9)8 files modifiedlib/canonical/launchpad/webapp/configure.zcml (+11/-0)
lib/canonical/launchpad/webapp/dbpolicy.py (+2/-2)
lib/canonical/launchpad/webapp/haproxy.py (+63/-0)
lib/canonical/launchpad/webapp/publication.py (+8/-5)
lib/canonical/launchpad/webapp/sighup.py (+26/-0)
lib/canonical/launchpad/webapp/tests/test_haproxy.py (+49/-0)
lib/canonical/launchpad/webapp/tests/test_sighup.py (+36/-0)
utilities/page-performance-report.ini (+2/-2)
tags: | added: canonical-losa-lp |
Changed in launchpad-foundations: | |
status: | New → Triaged |
importance: | Undecided → High |
tags: | added: bugjam2010 |
Changed in launchpad: | |
assignee: | nobody → Francis J. Lacoste (flacoste) |
status: | Triaged → In Progress |
tags: |
added: qa-bad removed: qa-needstesting |
Changed in launchpad: | |
status: | Triaged → Fix Committed |
Fixed in stable r12104 <http:// bazaar. launchpad. net/~launchpad- pqm/launchpad/ stable/ revision/ 12104>.