zephyr_mirror: Add exception handling around all main loop code.

(imported from commit 5dc46decf882302a6c58f3bb788362f82f293b35)
This commit is contained in:
Tim Abbott 2012-11-19 12:41:46 -05:00
parent 36280c2769
commit 244ff8459e

View file

@ -171,7 +171,12 @@ def process_loop(log):
sleep_count = 0 sleep_count = 0
sleep_time = 0.1 sleep_time = 0.1
while True: while True:
notice = zephyr.receive(block=False) try:
notice = zephyr.receive(block=False)
except Exception:
logger.exception("Error checking for new zephyrs:")
time.sleep(1)
continue
if notice is not None: if notice is not None:
try: try:
process_notice(notice, log) process_notice(notice, log)
@ -179,7 +184,10 @@ def process_loop(log):
logger.exception("Error relaying zephyr:") logger.exception("Error relaying zephyr:")
time.sleep(2) time.sleep(2)
maybe_restart_mirroring_script() try:
maybe_restart_mirroring_script()
except Exception:
logging.exception("Error checking whether restart is required:")
time.sleep(sleep_time) time.sleep(sleep_time)
sleep_count += sleep_time sleep_count += sleep_time
@ -187,7 +195,10 @@ def process_loop(log):
sleep_count = 0 sleep_count = 0
if options.forward_class_messages: if options.forward_class_messages:
# Ask the Humbug server about any new classes to subscribe to # Ask the Humbug server about any new classes to subscribe to
update_subscriptions_from_humbug() try:
update_subscriptions_from_humbug()
except Exception:
logging.exception("Error updating subscriptions from Humbug:")
def parse_zephyr_body(zephyr_data): def parse_zephyr_body(zephyr_data):
try: try:
@ -468,8 +479,13 @@ def maybe_forward_to_zephyr(message):
def humbug_to_zephyr(options): def humbug_to_zephyr(options):
# Sync messages from zephyr to humbug # Sync messages from zephyr to humbug
logger.info("Starting syncing messages.") logger.info("Starting syncing messages.")
humbug_client.call_on_each_message(maybe_forward_to_zephyr, while True:
options={"mirror": 'zephyr_mirror'}) try:
humbug_client.call_on_each_message(maybe_forward_to_zephyr,
options={"mirror": 'zephyr_mirror'})
except Exception:
logger.exception("Error syncing messages:")
time.sleep(1)
def subscribed_to_mail_messages(): def subscribed_to_mail_messages():
# In case we have lost our AFS tokens and those won't be able to # In case we have lost our AFS tokens and those won't be able to