Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 3429 by rbt post does not work with CVS when commiting from remote server (locally it works)

*** You must complete this form in its entirety, or your bug report will be
*** rejected.
*** If you have a security issue to report, please send it confidentially
*** Posting security-related issues to this bug
*** tracker causes us to have to do an emergency release.
*** For customer support, please post to
*** If you have a patch, please submit it to
*** This bug tracker is public. Please check that any logs or other
*** that you include has been stripped of confidential information.

What version are you running?
Review Board 2.0.2
RBTools 0.6

What's the URL of the page containing the problem?

What steps will reproduce the problem?
1. Install Review Board 2.0.2 on dedicated server A
2. Install CVS 1.12.13 on dedicated server B
3. Install RBTools 0.6 on server B
4. Add CVS hook on post commit (in script loginfo on server B)
5. Checkout a project on server B, make a change in a file, commit it --> rbt post works as expected and request is created 6. Checkout a project on remote server C, make a change in a file, commit it --> file is commited but rbt post reports an error and no review request is created

What is the expected output? What do you see instead?
the error displayed is:
RBTools 0.6
Python 2.7.6 (default, Mar 22 2014, 22:59:38)
[GCC 4.8.2]
Running on Linux-3.13.0-24-generic-i686-with-Ubuntu-14.04-trusty
Home = /root
Current directory = /var/tmp/cvs-serv9906
Checking for a CVS repository...
ERROR: The provided repository type was not detected in the current directory.

What operating system are you using? What browser?
CVS server and RBtools are on Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic i686) (server A above) ReviewBoard server is on Ubuntu 12.04.4 LTS (GNU/Linux 3.11.0-15-generic x86_64) (server B above) Remote CVS is on AIX Version 7.1 (server C above) and CVS version on C is 1.11.23

Please provide any additional information below.

I've noticed the following function cannot return info and is the root of the problem:
    def get_repository_info(self):
        if not check_install(['cvs']):
            logging.debug('Unable to execute "cvs": skipping CVS')
            return None

        cvsroot_path = os.path.join("CVS", "Root")

        if not os.path.exists(cvsroot_path):
            return None

        fp = open(cvsroot_path, "r")
        repository_path =

        i = repository_path.find("@")
        if i != -1:
            repository_path = repository_path[i + 1:]

        i = repository_path.rfind(":")
        if i != -1:
            host = repository_path[:i]
                canon = socket.getfqdn(host)
                repository_path = repository_path.replace('%s:' % host,
                                                          '%s:' % canon)
            except socket.error, msg:
                logging.error("failed to get fqdn for %s, msg=%s"
                              % (host, msg))

        return RepositoryInfo(path=repository_path)
because when a remote commit is done from server C, the CVS on server B (where RBtools are installed) uses a temporary directory (something like '/var/tmp/cvs-serv9906') instead of a normal directory with checked-out project like in step 5.

In the CVS hook I have the following call (some variables are precalculated as $USER but they are not relevant here):

rbt post --debug --submit-as $USER --target-groups Reviewers_G1 --disable-proxy --server $REVIEWBOARD_URL --re pository $REPOSITORY --username service_user --password some_password --markdown --summary "$SUMMARY" --description "$DESC

You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:

You received this message because you are subscribed to the Google Groups 
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To post to this group, send email to
Visit this group at
For more options, visit

Reply via email to