From 364b9d4ad1314f34af6bca30314980f64d3d2e3b Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sep 01 2020 09:03:58 +0000 Subject: [PATCH 1/2] Handle possible problems with message validation in fedmsg JIRA: RHELWF-1650 Signed-off-by: Lukas Holecek --- diff --git a/greenwave/consumers/consumer.py b/greenwave/consumers/consumer.py index 62dfb99..7acc812 100644 --- a/greenwave/consumers/consumer.py +++ b/greenwave/consumers/consumer.py @@ -88,6 +88,20 @@ class Consumer(fedmsg.consumers.FedmsgConsumer): self.greenwave_api_url = self.flask_app.config['GREENWAVE_API_URL'] log.info('Greenwave handler listening on: %s', self.topic) + def validate(self, message): + """ + Wraps fedmsg.consumers.FedmsgConsumer.validate() to avoid propagating + unexpected exceptions which would cause fedmsg-hub to get stuck (stops + processing messages but doesn't quit). + """ + try: + return super(Consumer, self).validate(message) + except RuntimeWarning: + raise + except Exception: + log.exception('Failed to validate message: %s', message) + raise RuntimeWarning('Unexpected exception during message validation') + def consume(self, message): """ Process the given message and take action. From baf932eb689a02985beb624e6e8c8c9c4e42abab Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sep 01 2020 09:09:46 +0000 Subject: [PATCH 2/2] Make missing-decision-context message consistent Signed-off-by: Lukas Holecek --- diff --git a/greenwave/api_v1.py b/greenwave/api_v1.py index 39fad87..6a7f8f4 100644 --- a/greenwave/api_v1.py +++ b/greenwave/api_v1.py @@ -599,7 +599,7 @@ def validate_gating_yaml_post(): msg = {'message': ('Greenwave could not find a parent policy(ies) for following decision' ' context(s): {}. Please change your policy so that it will match a ' 'decision context in the parent policies.'.format( - ', '.join(missing_decision_contexts)))} + ', '.join(sorted(missing_decision_contexts))))} else: msg = {'message': 'All OK'}