Intermittent test failure caused by missing request
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Low
|
Matthew Oliver |
Bug Description
There is an intermittent test failure that has been seen on the stable/newton branch. In testing this only happens every now and again, sometimes it takes 10 iterations other ties 200
NEWTON
=====
FAIL: test_GET (test.unit.
-----
Traceback (most recent call last):
File "/home/
do_
File "/home/
self.
File "/home/
self.
AssertionError: 404 != 503
'404 != 503' = '%s != %s' % (safe_repr(404), safe_repr(503))
'404 != 503' = self._formatMes
>> raise self.failureExc
number of runs: 114
This feels like it shouldn't be limited to just newton so I checked on master:
MASTER
=====
FAIL: test_GET (test.unit.
-----
Traceback (most recent call last):
File "/home/
self.
File "/home/
self.
AssertionError: 404 != 503
'404 != 503' = '%s != %s' % (safe_repr(404), safe_repr(503))
'404 != 503' = self._formatMes
>> raise self.failureExc
number of runs: 135
So Turns out it isn't. It happens on master to. Doing some debugging I see that during a failure we loose a request:
0.1s fake_http_connect: code_iter=(404, 503, 503)
0.1s connect: status=404
0.1s connect: status=503
0.1s connect: status=503
0.1s fake_http_connect: code_iter=(404, 503, 503)
0.1s connect: status=404
0.1s connect: status=503
^— Loosing a req some where.
After much more debugging it comes down to the proxy server error_limiting a node.. then the proxies node_iter fails to iterout this node. As the tests use a default FakeRing with no extra handoffs we only get 2 requests which is not enough for quorum.
I've managed to fix it by clearing the error_limited dict on each call, but a better way would be to simply either to add hand off nodes or reduce the error_limited supression time to 0. Inital patch incoming.
This should fix the above test failure, but I want see if the container and object controller suffer from the same problem. And if so make a single patch to correct them all. Stay tuned.