Instructions
...
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
hidden | true |
---|
...
This articles explains how to create a thread dump series, which can be a useful tool to investigate unexpected behaviour.
Instructions
On a virtual machine
Create a run script called jStackSeries.sh that looks as follows on your HiveMQ machine
Code Block language bash #!/bin/bash if [ $# -eq 0 ]; then echo >&2 "Usage: jstackSeries <pid> <run_user> [ <count> [ <delay> ] ]" echo >&2 " Defaults: count = 10, delay = 0.5 (seconds)" exit 1 fi pid=$1 # required user=$2 # required count=${3:-10} # defaults to 10 times delay=${4:-0.5} # defaults to 0.5 seconds while [ $count -gt 0 ] do sudo -u $user jstack -l $pid >jstack.$pid.$(date +%H%M%S.%N) sleep $delay let count-- echo -n "." done
Find the HiveMQ run user <user> and process ID <pid> by running
ps aux | grep hivemq
Run the script as follows:
sh jStackSeries-docker.sh <pid> <user> 20
This will result in 20 files (filename: 'jstack.<pid>.<date>.N') being generated
Please pack these 20 files in a zip file and attach them to your HiveMQ Support issue
In docker
Create the following run run-script jstack-series.sh
Code Block language bash #!/bin/bash if [ $# -eq 0 ]; then echo >&2 "Usage: jstackSeries [ <count> [ <delay> ] ]" echo >&2 " Defaults: count = 10, delay = 0.5 (seconds)" exit 1 fi count=${1:-20} # defaults to 10 times delay=${2:-0.5} # defaults to 0.5 seconds while [ $count -gt 0 ] do ./jattach 1 threaddump>jstack.$pid.$(date +%H%M%S.%N) sleep $delay let count-- echo -n "." done
Run the following inside your Docker container:
Code Block language bash curl -L https://github.com/apangin/jattach/releases/download/v1.5/jattach > jattach && \ chmod +x jattach
Run the created script:
./jstack-series.sh
This will result in 20 files (filename: 'jstack.<pid>.<date>.N') being generated
Please pack these 20 files in a zip file and attach them to your HiveMQ Support issue
Info |
---|
Make sure that you run the script with user that has the necessary permissions. (i.e. root or the HiveMQ run user) |