Responding to my own query.
I got this fixed. The solr startup was maintained by systemd script
which was configured with "PrivateTmp=true". I have changed that to
"PrivateTmp=false" and "/tmp/hsperfdata_<user>/<pid>" is not removed
after server startup then jstack worked.
On 8/29/16 11:31 AM, Rallavagu wrote:
I have run into a strange issue where "jstack -l <pid>" does not work. I
have tried this as the user that solr (5.4.1) is running as. I get
following error.
$ jstack -l 24064
24064: Unable to open socket file: target process not responding or
HotSpot VM not loaded
The -F option can be used when the target process is not responding
I am running Solr 5.4.1, JDK 8 with latest updates.
I have also downloaded Jetty separately, installed and started the
server. However, jstack on directly downloaded jetty (not solr bundled)
works just fine. After some research, I have found that
/tmp/hsperfdata_<user>/<pid> files is not created by the bundled Solr
while similar file is created by standalone jetty server. After some
more debugging, it appears that the solr startup process creates the
file (/tmp/hsperfdata_<user>/<pid>) and then removes it. I have tried
with "-F" option but no use. I have also set "-XX:+UsePerfData"
explicitly to no avail. I have enabled JMX and connected via visualvm to
get thread dump as of now. But, for me jstack is more convenient to
trigger a series of thread dumps. Any ideas? Thanks.