wait() timeout is not sufficiently propagated
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Amulet |
Triaged
|
High
|
Unassigned |
Bug Description
sentry.wait() will time out after about 10 minutes despite being passed a very large timeout value. Something in the guts of all this has an implicit timeout that is not being overridden.
A simple fix would be to catch exceptions and retry the wait until the requested timeout is actually reached.
Traceback (most recent call last):
File "/home/
self.wait()
File "/home/
self.
File "/usr/lib/
status = self.unit[
File "/usr/lib/
return self._run_
File "/usr/lib/
raise IOError(output)
OSError: ERROR command timed out
Changed in amulet: | |
status: | New → Triaged |
importance: | Undecided → High |
milestone: | none → 1.10.0 |
Changed in amulet: | |
milestone: | 1.10.0 → 1.11.0 |
# Work around Bug #1421195 by retrying failed waits. wait(timeout= timeout)
self. sentry. wait(timeout= timeout)
break helpers. TimeoutError) :
raise
# self.sentry.
until = time.time() + timeout
while True:
timeout = int(min(max(until - time.time(), 0), 300))
try:
except (OSError, amulet.
if time.time() > until: