Add timeout to Review Bot tools.

Review Request #8532 — Created Nov. 10, 2016 and submitted — Latest diff uploaded

Information

ReviewBot
master
85ec48d...

Reviewers

This change adds a timeout to tools for use in the status updates. This makes
it so that if, for some reason, the tool doesn't execute, it will show up as
"timed out" after a period. In production this can happen if there are no
workers that have that tool available, or the broker has decided to stop
passing messages because the disk is filling up.

  • Enabled extension after switching to this branch and saw that the evolution
    was correctly applied (after a couple hours of banging my head against the
    wall because of some .pyc nonsense).
  • Refreshed the tool list and saw that the timeouts defined in the tool
    classes were properly plumbed through into the DB models.
  • Stopped my worker node and triggered some tools by publishing a review
    request. Saw that the new status updates were initially listed as "starting",
    and that after the configured timeout, were then listed as "timed out".
  • Restarted my worker node and saw the tools run and the status update
    change to "passed".
bot/reviewbot/tasks.py
bot/reviewbot/tools/__init__.py
bot/reviewbot/tools/cppcheck.py
bot/reviewbot/tools/cpplint.py
bot/reviewbot/tools/jshint.py
bot/reviewbot/tools/pep8.py
bot/reviewbot/tools/pyflakes.py
extension/reviewbotext/admin.py
extension/reviewbotext/integration.py
extension/reviewbotext/models.py
extension/reviewbotext/resources.py
extension/reviewbotext/evolutions/__init__.py
extension/reviewbotext/evolutions/tool_timeout.py
Loading...