I have recently taken an installation from a Debian site host to a new
CentOS 6 host. We initially setup Review Board on the Debian system for
evaluation. Our developers code on Windows systems running Cygwin and use
Perforce for revision control. We have installed post-review on our
developer systems and have been able to post and update reviews.
I installed Review Board on our new server and transferred the MySQL
database. All has been well with one exception: Our new server will not
connect to Perforce. I have entered our Perforce information to the
repository database, and have looked at the table directly in MySQL (select
* from scmtools_repository) and see all the same/correct information. I am
able to log onto the host machine and execute Perforce commands.
One thing I've noted that is different between the two hosts is that on the
Debian system the Apache user was 'www-data' and was a login user. On the
CentOS 6 the Apache user is 'apache' and is not a login user. I haven't been
able to determine if that is significant or not.
On interesting observation is that when I run post-review in debug mode I am
able to see the Perforce info being pulled from the Review Board site and
used successfully to run the diff on the client Windows/Cygwin system. But
when post-review executes the "http://.../api/json/reviewrequests/new" POST
the new request fails. I can see an error reported in the Review Board log
on the server under the Admin Dashboard. Here is the full error log message:
Internal Server Error: /api/json/reviewrequests/new/
Traceback (most recent call last):
line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
line 79, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
line 61, in _view
response = view_func(*args, **kwargs)
line 88, in _checklogin
return view_func(*args, **kwargs)
line 45, in inner
return func(request, *args, **kwargs)
line 318, in new_review_request
user, repository, request.POST.get('changenum', None))
line 90, in create
line 358, in update_from_changenum
update_obj_with_changenum(self, self.repository, changenum)
line 40, in update_obj_with_changenum
changeset = repository.get_scmtool().get_changeset(changenum)
line 64, in get_changeset
line 48, in _connect
P4Exception: [P4.connect()] Connect to server failed; check $P4PORT.
TCP connect to perforce...:1666 failed.
connect: perforce...:1666: Permission denied
As you can see, we are using RB 1.5.5. It's interesting that the
"perforce...com:1666" is the correct P4PORT setting (I've replaced our
actual p4 server name with perforce...).
I've tried hacking into the perforce.py file to find out what it thinks the
perforce port, user, and password are, but I'm new to Python and haven't
been able to get it to tell me those values. I can't imagine why these would
not be the values in the repository database, but I can't confirm it.
Any help would be greatly appreciated. I was hoping this would be a quick
and easy transfer, and most everything has gone fine, except for this.
Want to help the Review Board project? Donate today at
Happy user? Let us know at http://www.reviewboard.org/users/
To unsubscribe from this group, send email to
For more options, visit this group at