Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: New uploads link

...

To fix a problem, we may need a wide range of information about your system as well as various logs. The section below explains how to collect such information.

In this section:

Table of Contents
maxLevel3
minLevel2

Anchor
hang
hang

Hangs and Thread Dumps

...

If the server UI is not usable please use approaches described below.
Please note that if you can take a thread dump without using TeamCity UI, that can be preferable since the thread dump taken from UI can lack some diagnostics information.

...

  • if you need server thread dump and the server is run from console, press Ctrl+Break in the console window (this will not work for agent, since it's console belongs to launcher process).
  • if JDK 1.6 is used, use jstack <pid_of_java_process> command (jstack is located in the "bin" directory of JDK installation).
  • you can also use TeamCity-bundled thread dump tool (can be found in agent's plugins). Run the command:

    Code Block
    
    <TeamCity agent>\plugins\stacktracesPlugin\bin\x86\JetBrains.TeamCity.Injector.exe <pid_of_java_process>
    

...

Alternatively, you can try to run a thread dumping tool using Microsoft PsExec.
Use the following command line to get the dump:

Code Block

psexec -u <user> -p <password> <full path to the util> <process pid> stacktrace <output file>

...

You can also use third-party GUI tool: AdaptJ StackTrace Utility.
It supports Windows, Linux or Mac OS X. Choose "Launch" on the page (if you have Java installed). When the application is started, select the process id via "Process > Select", then dump its thread dump with "Process > Thread Dump".

See also Server Performance section below.

Database-related slowdowns

...

Along with server thread dump, please attach output of "show processlist;" SQL command executed in MySQL console. Much like the thread dumps it makes sense to execute the command when the slowness is occurring several times and send us the output.
Also, MySQL can be set up to keep a log of long queries executed with the changes in my.ini:

Code Block

[mysqld]
...
  log-slow-queries
  long_query_time=15

The log can also be sent to us for analysis.

Back to top

Anchor
oom
oom

OutOfMemory Problems

...

  • Determine what process encounters the error (the actual building process, the TeamCity server, or the TeamCity agent)
  • If server is to blame, please check you have increased memory settings from default ones for using the server in production (see the section).
  • If you use x64 JVM, please consider using 32 bit JVM (instructions for server).
  • Try to increase the memory for the process via '-Xmx' JVM option, like -Xmx512m. If the error message is "java.lang.OutOfMemoryError: PermGen space", increase the value in -XX:MaxPermSize=250m JVM option.
    The option needs to be passed to the process with problems:
  • If increasing memory size does not help, please get the memory dump, archive it and send it to us for further analysis. Please reduce the Xmx setting to normal before getting the dump (smaller snapshots are easier to analyze and easier to upload):
    • to get a memory dump (hprof file) automatically when an OutOfMemory error occurs, add the following JVM option (works for JDK 1.5.0_07+): -XX:+HeapDumpOnOutOfMemoryError. When OOM error occurs next time, java_xxx.hprof file will be created in the process startup directory (<TeamCity home>/bin or <TeamCity Agent home>/bin);
    • if for some reason the previous option does not suit, you can take the memory dump manually right from the web UI when the memory usage is at it's peak. Go to the Administration | Server Configuration | Diagnostics tab and click Dump Memory Snapshot.

See how to change JVM options for the server and for agents.

Back to top

Logging Events
Anchor
logging
logging

...

TeamCity Server Logs
Viewing Build Agent Logs

Back to top

Version Control Debug Logging
Anchor
vcs
vcs

...

Alternatively, you can change the Log4j configuration manually in <TeamCity home>\conf\teamcity-server-log4j.xml or <BuildAgent home>\conf\teamcity-agent-log4j.xml files to have fragment:

Code Block
xml
xml

<category name="jetbrains.buildServer.VCS" additivity="false">
    <appender-ref ref="ROLL.VCS"/>
    <appender-ref ref="CONSOLE-ERROR"/>
    <priority value="DEBUG"/>
</category>

...

Alternative manual approach:
First, please enable generic VCS debug logging, as described above.

Uncomment SVN-related parts (SVN.LOG appender and javasvn.output category) of Log4j configuration file on server and on agent (if agent-side checkout is used). The log will be saved to the logs/teamcity-svn.log file. Generic VCS log should be also taken from logs/teamcity-vcs.log

...

Agent log will contain the line "Patch is saved to file ${file.name}"
Get the file and provide it with the problem description.

Back to top

Anchor
remote
remote

Remote Run Problems

The changes that are sent form the IDE to the server on a remote run can be retrieved from server's .BuildServer\system\changes directory. Locate the <change_number>.changes file that corresponds to your change (you can pick the latest number available or deduce the from the URL of the change form the web UI).
The file contains the patch in the binary form. Please provide it with the problem description.

Back to top

Anchor
serverperformance
serverperformance

...

  • after server startup wait for some time to allow it to "warm up". This can take from 5 to 20 minutes depending on the data volume that TeamCity stores.
  • when CPU usage increase is found on the server, please try to indicate what actions cause the load
  • start CPU profiling and repeat the action several times (5 - 10)
  • capture the snapshot
  • archive the snapshot and send it to us including description of the actions that cause CPU load

Back to top

Logging in TeamCity Visual Studio plugin

...

  1. Close all instances of Microsoft Visual Studio.
  2. Open <username-profile-folder>\Local Settings\Temp\JetLogs folder.
  3. Delete all of the files in this folder.
  4. Restart Microsoft Visual Studio.
  5. Open a solution.
  6. Try to log in to TeamCity.
  7. Close Microsoft Visual Studio.
  8. Navigate back to the <username-profile-folder>\Local Settings\Temp\JetLogs folder. All of the files that were created are logs.

Back to top

Anchor
sendingLargeFiles
sendingLargeFiles

...

To enable tracing for the plugin, run Eclipse IDE with the -debug <filename> program argument. The <filename> portion of the program argument is a properties file containing key-value pairs. Name of each property corresponds to the plugin module and value is either 'true' (to enable debug) or 'false'. Here is an example of enabling most common tracing options:

Code Block

jetbrains.teamcity.core/debug = true
jetbrains.teamcity.core/debug/communications = false
jetbrains.teamcity.core/debug/ui = true
jetbrains.teamcity.core/debug/vcs = true
jetbrains.teamcity.core/debug/vcs/detail = true
jetbrains.teamcity.core/debug/parser = true
jetbrains.teamcity.core/debug/platform = true
jetbrains.teamcity.core/debug/teamcity = true
jetbrains.teamcity.core/perfomance/vcs = true
jetbrains.teamcity.core/perfomance/teamcity = true

Read more about Eclipse Debug mode Gathering Information About Your Plug-in and built-in Eclipse help.

Back to top

Sending Information to the Developers

...

If the file is over 5 Mb, you can upload the archived files to ftpvia https://ftp.intellij.net/.uploads and let us know the exact file name. If you receive permission denied error on upload attempt, please rename the file. It's OK that you do not see the file listing on the FTP.jetbrains.com.

You can also send small files via email: teamcity-feedback@jetbrains.com Please do not forget to mention your TeamCity version and environment

Back to top