mercredi 11 mai 2011

JStat does not work anymore with tomcat !

Those 2 last months I went into a very weird problem.I couldn't make jstat ans jps work anymore with tomcat...jps couldn't find the process, neither jstat (pid not found) ! I wanted to supervise correctly my new Confluence and Jira installations, so I couldn't just accept it !

My first thought was this was related to my unbuntu installation, as I am not very used with this linux distribution and had to learn how to move from open-jdk to the sun jdk with the "alternatives" system.
I asked atlassian for some help in the investifation of this problem after some unsuccessful tries (after some supposition like a vm issue, having tried on another linux system, confirmed it work on open-jdk jstat version...).
We spend some time to figure out what was the real problem : this is a bug in jdk1.6u23 and u24 ! It has been finally fixed in u25... Does that mean that sun... hoops... oracle doesn't make any regression test with its java tools ? Anyway I can now safely put my favorite tools in place to optimize my jvm installation and supervise it to get alerts in case of memory troubles (yes, some people do that ;) ), and add this blog post in case someone goes in the same trooble as I couldn't find anything related to this on the net!

3 commentaires:

killbulle a dit…

on peut le faire fonctionner en jouant sur les tmp dir
mais ca fait mal...au c

Nicolas FRANK a dit…

Yes, in fact if this can provide some value for anyone here are some link that give more details and workaround :

http://stackoverflow.com/questions/5159564/jstack-and-jstat-stopped-working-with-upgrade-to-jdk6u23

http://stackoverflow.com/questions/3805376/jps-returns-no-output-even-when-java-processes-are-running/3822795#3822795

http://bugs.sun.com/view_bug.do?bug_id=6447182

Nicolas FRANK a dit…

an other fun one with java 5 : if the username has an _ then jps/jstat won't work ! Happily you can still use java 6 (where it has been fixed) to monitor a java 5 application (difficult to make a big bank to change the way they create usernames...).