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 

Reply via email to