WrapperActionServer

某天有個運氣很好的同事,測試某個功能時,發生Service自己異常中止的問題。

Trace

經過初步trace,發現那台機器被Nessus掃瞄過後,JVM就異常中止:

ERROR  | wrapper  | 2017/10/06 16:42:16 | JVM exited unexpectedly.
於是我將wrapper log level改為DEBUG,並打開了wrapper ping jvm的log:
wrapper.logfile.loglevel=DEBUG
wrapper.ping.alert.loglevel=DEBUG
最後發現訊息出現:
INFO   | jvm 1    | 2017/10/06 16:42:13 | WrapperManager: WARNING: Making JVM appear to be hung...
這個問題看起來是Nessus連線讓wrapper造成jvm hang住。

WrapperActionServer

從WrapperActionServer的javadoc中得知,它可以綁定某個port提供以下功能:

S : Shutdown cleanly.
H : Immediate forced shutdown.
R : Restart
D : Perform a Thread Dump
U : Unexpected shutdown. (Simulate a crash for testing)
V : Cause an access violation. (For testing)
G : Make the JVM appear to be hung. (For testing)
預設情況下是disable的;但假如你都設為enable,就會發生我們所遇到的慘劇。所以怎麼解決? 只要enable需要的功能即可。

其實我個人並不推薦使用wrapper這個功能,因為有心人士很容易就把你系統給搞掛了。