Keystone stops processing HTTP requests
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mirantis OpenStack |
Fix Committed
|
High
|
Alexander Makarov |
Bug Description
At some point Keystone stops processing HTTP requests and HAProxy moves the server out of pool. Once Keystones on all controllers stuck HAProxy starts to respond with HTTP 503 error.
Symptoms:
~~~~~~~~~
HAProxy log:
2014-12-
Keystone keeps accepting TCP connection, but hangs at HTTP level (meaning that telnet works, but curl hangs)
root@node-
Process 26330 attached - interrupt to quit
futex(0xe50420, FUTEX_WAIT_PRIVATE, 0, NULL
The last logged message from stuck process:
2014-12-05 17:01:20.749 26330 DEBUG keystone.
Version:
~~~~~~
VERSION:
feature_groups:
- mirantis
production: "docker"
release: "6.0"
api: "1.0"
build_number: "36"
build_id: "2014-12-
astute_sha: "16b252d93be6aa
fuellib_sha: "1eb704034c31a7
ostf_sha: "7e79964ddb5092
nailgun_sha: "d2e732c5f54e35
fuelmain_sha: "7ab330b4958ab2
tags: | added: keystone |
Changed in mos: | |
importance: | Undecided → Critical |
tags: | added: scale |
Changed in mos: | |
assignee: | nobody → MOS Keystone (mos-keystone) |
Changed in mos: | |
milestone: | none → 6.0 |
importance: | Critical → High |
status: | New → In Progress |
Changed in mos: | |
status: | In Progress → Fix Committed |
The reason seems to be memcached pool depletion:
it's build atop of python queue.Queue class, which locks thread if something tries to extract element from empty queue.
According to the log provided this is a possible case.