zmirror: Fix buggy retries on subscribe failures.

(imported from commit 786cb63be5aa5889283a4cbbecafe58690ad4ac9)
This commit is contained in:
Tim Abbott 2013-01-02 10:27:23 -05:00
parent 506eac99d6
commit a29f3b78b5

View file

@ -148,23 +148,30 @@ for (stream, test) in test_streams:
else: else:
zephyr_subs_to_add.append((stream, '*', '*')) zephyr_subs_to_add.append((stream, '*', '*'))
actually_subscribed = False
for tries in xrange(10): for tries in xrange(10):
try: try:
zephyr.init() zephyr.init()
zephyr._z.subAll(zephyr_subs_to_add) zephyr._z.subAll(zephyr_subs_to_add)
zephyr_subs = zephyr._z.getSubscriptions() zephyr_subs = zephyr._z.getSubscriptions()
missing = 0
for elt in zephyr_subs_to_add: for elt in zephyr_subs_to_add:
if elt not in zephyr_subs: if elt not in zephyr_subs:
logging.error("Failed to subscribe to %s" % (elt,)) logging.error("Failed to subscribe to %s" % (elt,))
continue missing += 1
break if missing == 0:
actually_subscribed = True
break
except IOError, e: except IOError, e:
if tries > 5: if "SERVNAK received" in e:
if "SERVNAK received" in e: logger.error("SERVNAK repeatedly received, punting rest of test")
logger.error("SERVNAK repeatedly received, punting rest of test") else:
else: logger.exception("Exception subscribing to zephyrs")
logger.exception("Exception subscribing to zephyrs")
print_status_and_exit(1) if not actually_subscribed:
logger.error("Failed to subscribe to zephyrs")
print_status_and_exit(1)
# Prepare keys # Prepare keys
zhkeys = {} zhkeys = {}