I am running ReviewBoard 2.5.6.1 from the BitNami Package 2.0.15. I 
installed ReviewBot 0.2alpha. The bot runs perfectly fine when I only have 
one tool enabled. When I run 2 tools, however, the second tools just keeps 
posting on the request. I found the issue to be with the celery queue. Here 
is a snippet of the log file from celery.

[2016-07-06 10:54:30,076: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Tool execution completed successfully
[2016-07-06 10:54:30,076: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Publishing review
[2016-07-06 10:54:33,525: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Review completed successfully
[2016-07-06 10:54:33,539: INFO/MainProcess] Received task: 
reviewbot.tasks.ProcessReviewRequest[22c1e163-ef75-445c-9623-a33be90da746]
[2016-07-06 10:54:33,539: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Request to execute review tool 'cppcheck' for 
http://loggerhead4:8080/reviewboard/
[2016-07-06 10:54:33,539: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Initializing RB API
[2016-07-06 10:54:33,539: INFO/MainProcess] Task 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72] 
succeeded in 205.299999952s: True
[2016-07-06 10:54:33,572: CRITICAL/MainProcess] Couldn't ack 1, 
reason:error(10054, 'An existing connection was forcibly closed by the 
remote host')
Traceback (most recent call last):
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\kombu-3.0.35-py2.7.egg\kombu\message.py",
 
line 93, in ack_log_error
    self.ack()
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\kombu-3.0.35-py2.7.egg\kombu\message.py",
 
line 88, in ack
    self.channel.basic_ack(self.delivery_tag)
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\amqp-1.4.9-py2.7.egg\amqp\channel.py",
 
line 1584, in basic_ack
    self._send_method((60, 80), args)
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\amqp-1.4.9-py2.7.egg\amqp\abstract_channel.py",
 
line 56, in _send_method
    self.channel_id, method_sig, args, content,
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\amqp-1.4.9-py2.7.egg\amqp\method_framing.py",
 
line 221, in write_method
    write_frame(1, channel, payload)
  File 
"C:\BitNami\reviewboard-2.0.15-0\python\lib\site-packages\amqp-1.4.9-py2.7.egg\amqp\transport.py",
 
line 182, in write_frame
    frame_type, channel, size, payload, 0xce,
  File "C:\BitNami\reviewboard-2.0.15-0\python\lib\socket.py", line 224, in 
meth
    return getattr(self._sock,name)(*args)
error: [Errno 10054] An existing connection was forcibly closed by the 
remote host
[2016-07-06 10:54:34,601: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Loading requested tool 'cppcheck'
[2016-07-06 10:54:34,601: INFO/Worker-1] 
reviewbot.tasks.ProcessReviewRequest[ef22f626-a315-4b8f-8502-547b06b71c72]: 
Initializing review

The tool execution that finished in the first line was cpp check. This is 
the second tool. The first tool completed with out a problem. Celery then 
load cpp check again and this loop continues for what looks like a random 
amount of iterations.

I fixed by modifying the reviewbot source code. In the 
file ReviewBot\bot\reviewbot\celery.py, I added the two lines shown below.

from __future__ import absolute_import

import logging
import pkg_resources

from celery import Celery
from kombu import Exchange, Queue


celery = Celery('reviewbot.celery', include=['reviewbot.tasks'])

celery.conf.CELERY_ACKS_LATE = True            # Added this
celery.conf.CELERYD_PREFETCH_MULTIPLIER = 1    # and this

default_exchange = Exchange('celery', type='direct')
celery.conf.CELERY_QUEUES = [
    Queue('celery', default_exchange, routing_key='celery'),
]
...

The reason I'm writing this is to ask how ReviewBoard has they're ReviewBot 
setup. When I have two tools enabled, I get two posts by ReviewBot but 
ReviewBoard has one post with both of their tools. Example 
https://reviews.reviewboard.org/r/8262/. I tried making a custom ReviewBot 
Tool that executes both tools that I want. Is that how it's done here or 
are they using 0.3alpha. I also tried to get this working but the tool 
specific settings aren't showing up. Can I get some help with this or 
should I stick with 0.2 because it looks like 0.3 is no longer being 
developed?

Thanks,
Jerry

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to