mozilla / jira-bugzilla-integration

Jira Bugzilla Integration (JBI) - system to sync bugs and issues

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

System is able to "drop" erring messages without user interference

bsieber-mozilla opened this issue · comments

Yeah, I wonder if part of the answer here is to remove some of the burden from the heartbeat / SRE by making the system either more self-healing or self-repairable by customers. -- #343 (comment)

Along with additional validation features, like config-validation prior to merge, the goal would be for errors to not "halt" processing for any users.

When an error causes a WH queue to no longer send messages, the system becomes dependent on an admin to drop the erring message.

This act of dropping the message could be automated when a bugzilla request is received--if the processing results in a failure or error, that should be caught--once caught if the amount of webhook errors (from the webhook api) is greater than X (0?) than the message could be "dropped". This would align with current human-workflows.

We could possibly further this process by making this action transparent; via a slack message to the channel with the associated bug id.

  • System is able to "drop" erring messages without user interference

As we discussed on Zoom:

In addition to dropping messages, we could (should?) also try to find a way to drop issues that are blocking the queue through the Bugzilla API. This endpoint doesn't currently exit -- we'd have to make this request to the Bugzilla devs to help us out.

As we discussed on Zoom:

In addition to dropping messages, we could (should?) also try to find a way to drop issues that are blocking the queue through the Bugzilla API. This endpoint doesn't currently exit -- we'd have to make this request to the Bugzilla devs to help us out.

To "drop" a message could be to send a 200 back to bugzilla when the errors in the webhook queue api is greater than 0 and at the end of processing a request it would've resulted in an error.

Perhaps its a bit odd to say 200/Success for an erring message--but I see this 200 as more of a, we've processed this message in a way that's aligned with how our system should process it. Any side-effects from the request being not sync'd (error messages on bugzilla bug) could be done as a last step in the processing?

In terms of using the Bugzilla API; it would be nice to have the feature mentioned:

  • drop last/latest request
  • read error for last/latest request
  • enable/disable webhook
  • ...

To "drop" a message could be to send a 200 back to bugzilla when the errors in the webhook queue api is greater than 0 and at the end of processing a request it would've resulted in an error.

That's true and is a good defensive option. It doesn't completely save us, but it would be a good addition to also having the ability to clear the queue the queue through the API.

Perhaps its a bit odd to say 200/Success for an erring message--but I see this 200 as more of a, we've processed this message in a way that's aligned with how our system should process it.

I agree, and in fact I think this is the recommended approach when using webhooks. A 2xx is more of an ack than anything else