Performing a thread dump
If Bamboo stops responding, or is performing poorly, you should create a thread dump to help Atlassian determine the cause of the problem.
This will show the state of each thread in the JVM, including a stack trace and information about what locks that thread is holding and waiting for.
Linux (and Solaris and other Unixes) Users
Find the process id of the JVM and issue the command:
Use the ps command to get list of all processes.
kill -3 <pid>
Note: This will not kill your server (so long as you included the "-3" option, no space in between).
The thread dump will be printed to Bamboo's standard output.
Please note that some application servers (like tomcat) redirect stdout (to catalina.out for instance).
Jstack (any Platform with an JAVA JDK)
Sun JDK 1.5 and above ship with native tool called jstack
to perform thread dump. To use the tool find the Proccess ID and execute the command:
jstack <ProcessID>
When running jstack, please be sure to run it as the same user that runs the process you're targeting for thread dumps.
If you run your Atlassian product via wrapper (as a service) on Windows, you may encounter this error, 'Not enough storage is available to process this command'. See the suggestions in this KB article for workarounds.
Java VisualVM (any Platform with an JAVA JDK)
Oracle JDK has a native tool jvisualvm
to perform thread dumps (and much more). To use the tool execute the command:
jvisualvm
Find Bamboo process ({{com.atlassian.bamboo.server.Server}}) and execute "Thread Dump" option available from a context menu.