Customer Support Notes

Metadata collection

Database inconsistencies

Running the AccuRev GUI in debug mode

User authentication problems

Getting AccuRev version information

Integration issues

AccuRev license issues

Potential AccuRev defects

Replication problems

Performance problems

Server task list

To assist in a speedy resolution of problems with AccuRev usage or performance, AccuRev Customer Support personnel may ask you to provide data that you may not be used to gathering on a day-to-day basis.  The most frequently requested items are listed below, with instructions on how to gather the data. In your initial email communication with Customer Support, please include the data item(s) that you know (or suspect) are related to your specific issue.

Metadata collection

UNIX or Linux

  1. Use accurev show slices to find the location of the relevant depot directory (slice).

  2. Stop the AccuRev Server.

  3. tar your site_slice directory. Example:

    cd /opt/accurev/storage/site_slice

    tar -cvf ~/site_slice.tar . (don't forget the '.')

  4. tar the relevant depot directory (slice), but exclude the data subtree. (The data subtree contains your source code;  please do not send it to us!) Example:

    cd /opt/accurev/storage/depots/ACME

    tar -cvf ~/ACME.tar --exclude data . (the --exclude option is supported by GNU tar)

  5. gzip both tar files. Example:

    gzip ~/site_slice.tar ~/ACME.tar

  6. Start the AccuRev Server.

  7. Send both gzip'ed files (.tar.gz suffix) to Customer Support. We recommend using FTP rather than email, since the files may be too large for your outgoing email server. Please contact support@accurev.com to obtain a username and password for our FTP server.

Windows

  1. Use accurev show slices to find the location of the relevant depot directory (slice).

  2. Stop the AccuRev Server.

  3. Create a ZIP archive of the site_slice directory. Typically, it's C:\Program Files\AccuRev\storage\site_slice.

  4. Create a ZIP archive of the relevant depot directory (slice). Typically, it's a subdirectory of C:\Program Files\AccuRev\storage\depots.

  5. Remove the data subtree from the ZIP archive. (The data subtree contains your source code;  please do not send it to us!)

  6. Start the AccuRev Server.

  7. Send both ZIP files to Customer Support. We recommend using FTP rather than email, since the files may be too large for your outgoing email server. Please contact support@accurev.com to obtain a username and password for our FTP server.

Database inconsistencies

Gather the following information to begin troubleshooting the issue:

  1. What changed in the environment? Power failure? Hardware failure?

  2. What are the hardware specs on the AccuRev Server machine?

  3. What is the AccuRev version on the AccuRev Server machine?

  4. Get output of "accurev info" on the AccuRev Server machine.

  5. Copy (ZIP or tar file) all AccuRev Server logs, located in subdirectory .../storage/site_slice/logs. Search for any messages that might be the cause of your issue: disk failure, power outage, etc.

  6. Copy all operating system logs (location varies from OS to OS).

  7. Stop the AccuRev Server.

  8. Get output of "maintain dbcheck". (Never run "maintain reindex" unless instructed by Customer Support.)

  9. Start the AccuRev Server.

  10. Gather AccuRev metadata.

Running the AccuRev GUI in debug mode

If you experience your problem while running the AccuRev GUI, then running the GUI in Java debug mode can help diagnose and further troubleshoot your problem. Running in debug mode is also useful for monitoring the commands that the GUI sends to the AccuRev Server. This can help with scripting efforts, for example.

Windows example

(adjust pathnames as appropriate)

cd C:\Program Files\AccuRev\bin

java -Daccurev.debug.acapi -cp "oro.jar;xercesImpl.jar;xml-apis.jar;fw.jar" fw.MainApp

 

Windows example (AccuRev 3.7 or earlier)

(adjust pathnames as appropriate)

cd C:\Program Files\AccuRev\bin

java -Daccurev.debug.acapi -cp "oro.jar;xerces.jar;fw.jar" fw.MainApp

UNIX/Linux example

Use the following sh script (adjust pathnames as appropriate).

#!/bin/sh
acbin=/opt/accurev/bin
acjre=/opt/accurev/jre/bin/java
cd $acbin
$acjre -Daccurev.debug.acapi -Daccurev.debug.env \
-classpath "oro.jar:xercesImpl.jar:xml-apis.jar:fw.jar" fw.MainApp

UNIX/Linux example (AccuRev 3.7 or earlier)

Use the following sh script (adjust pathnames as appropriate).

#!/bin/sh
acbin=/home/accurev/bin
acjre=/home/accurev/jre/bin/java
cd $acbin
$acjre -Daccurev.debug.acapi -Daccurev.debug.env \
 -classpath "oro.jar:xerces.jar:fw.jar" fw.MainApp

User authentication problems

You can diagnose authentication problems with the secinfo command, which is not currently documented:

accurev secinfo

The output is one of these keywords:

anyuser

The user does not have a password set on the server.  In this case, the user is allowed to perform operations on streams except where ACL permissions require you to be an authenticated user.

authuser

The user has a password set on the AccuRev Server, and the correct password has been entered in the authn file on the client machine. The user is considered authenticated.

notauth

The user has a password set on the server but the correct password has not been entered in the authn file on the client machine.  The user is "not authenticated".

 The authn file lives under the user's home directory, in the .accurev subdirectory.  Only users that have passwords will have an authn file.

 

Getting AccuRev Server and client version information

How can you get the version information about the AccuRev Server without having to log into the server machine? You can perform either of the following operations on any AccuRev client machine:

> accurev info -v
...
client_ver:    58
...
server_ver:    58

 ...

<serverInfo/>

accurev xml -l ver.xml

The command output in this format:

<serverInfo>
<serverVersion
major="4"
minor="5"
patch="0"/>
<handleCount>10</handleCount>
</serverInfo>

This example indicates that the AccuRev Server is Version 4.5.0.

Integration issues

If you are reporting a problem with an AccuRev integration with a third-party IDE, send to Customer Support:

  1. The name and version number of the IDE software.

  2. The steps required to reproduce the problem. Be sure to include the type of project you're working with in the IDE and the location of the AccuRev workspace you're accessing through the IDE.

  3. The version of AccuRev you are using.

  4. (if applicable) The version of the AccuBridge integration you are using.

AccuRev license issues

Send to Customer Support copies of:

Potential AccuRev defects

Send to Customer Support:

accurev

accurev info -v

accurev show wspaces

accurev show streams

accurev show slices

accurev show depots

accurev diag

Replication problems

Send to Customer Support:

accurev diag

Performance problems

Send to Customer Support the answers to this questionnaire:

  1. Has performance always been poor? If not, what changed in the environment?

  2. What exactly was the user trying to do? Does the performance problem occur with other users, on different client machines?  Or is it a common issue on the same machine?

  3. Does the operation actually finish? (A hang or lock-up can often be mistaken as performance problem.)

  4. What are the AccuRev versions on the problem clients and server machines?

  5. What are the hardware specs on the problem clients and server machines?

  6. Is performance different in the AccuRev CLI and the AccuRev GUI?

  7. Is the user's home directory on a remote disk? If so, consider moving the home directory so that it is on the machine where the AccuRev client software runs.

Send to Customer Support:

server_admin_trig

server_preop_trig

The filenames might include a suffix, such as .bat on Windows.)

Server task list

How do you create a listing of the AccuRev Servers currently active tasks (execution threads)?

  1. Create a file (say, tasks.xml), containing this very short XML document:

<tasklist/>

  1. Submit this file as an argument to the xml command:

accurev xml -l tasks.xml > tasklist.out

The contents of tasklist.out will resemble this example:

<tasklist>
<task>
<task_id>1299</task_id>
<task_name>promote</task_name>
<user>john</user>
<host>192.168.89.222</host>
<status>1</status>
<starttime>2006/07/25 14:42:49</starttime>
<seconds_on_server>2</seconds_on_server>
<depot_write_lock>true</depot_write_lock>
<progress_counter
counter="0"
count="6"
max_count="11"/>
<progress_counter
counter="1"
count="200"
max_count="900"/>
</task>
<task>
<task_id>1300</task_id>
<task_name>xml</task_name>
<user>john</user>
<host>192.168.89.222</host>
<status>1</status>
<starttime>2006/07/25 14:42:51</starttime>
<seconds_on_server>0</seconds_on_server>
</task>
</tasklist>