Merge "Shutdown backend EC connection contexts on disconnect"
This commit is contained in:
commit
475e448366
@ -926,6 +926,7 @@ class ResumingGetter(object):
|
|||||||
if nchunks % 5 == 0:
|
if nchunks % 5 == 0:
|
||||||
sleep()
|
sleep()
|
||||||
|
|
||||||
|
part_iter = None
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
start_byte, end_byte, length, headers, part = \
|
start_byte, end_byte, length, headers, part = \
|
||||||
@ -939,6 +940,9 @@ class ResumingGetter(object):
|
|||||||
self.pop_range()
|
self.pop_range()
|
||||||
except StopIteration:
|
except StopIteration:
|
||||||
req.environ['swift.non_client_disconnect'] = True
|
req.environ['swift.non_client_disconnect'] = True
|
||||||
|
finally:
|
||||||
|
if part_iter:
|
||||||
|
part_iter.close()
|
||||||
|
|
||||||
except ChunkReadTimeout:
|
except ChunkReadTimeout:
|
||||||
self.app.exception_occurred(node[0], _('Object'),
|
self.app.exception_occurred(node[0], _('Object'),
|
||||||
|
@ -1118,6 +1118,11 @@ class ECAppIter(object):
|
|||||||
self.stashed_iter = None
|
self.stashed_iter = None
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
|
# close down the stashed iter first so the ContextPool can
|
||||||
|
# cleanup the frag queue feeding coros that may be currently
|
||||||
|
# executing the internal_parts_iters.
|
||||||
|
if self.stashed_iter:
|
||||||
|
self.stashed_iter.close()
|
||||||
for it in self.internal_parts_iters:
|
for it in self.internal_parts_iters:
|
||||||
close_if_possible(it)
|
close_if_possible(it)
|
||||||
|
|
||||||
|
@ -5827,6 +5827,7 @@ class TestObjectController(unittest.TestCase):
|
|||||||
exp = 'HTTP/1.1 201'
|
exp = 'HTTP/1.1 201'
|
||||||
self.assertEqual(headers[:len(exp)], exp)
|
self.assertEqual(headers[:len(exp)], exp)
|
||||||
|
|
||||||
|
with mock.patch.object(_test_servers[0], 'client_timeout', new=5):
|
||||||
# get object
|
# get object
|
||||||
fd.write('GET /v1/a/ec-discon/test HTTP/1.1\r\n'
|
fd.write('GET /v1/a/ec-discon/test HTTP/1.1\r\n'
|
||||||
'Host: localhost\r\n'
|
'Host: localhost\r\n'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user