差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:servicewrapper:wrapperactionserver [2017/10/11 18:04] tony [Trace] |
java:servicewrapper:wrapperactionserver [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 2: | 行 2: | ||
====== WrapperActionServer ====== | ====== WrapperActionServer ====== | ||
===== Problem ===== | ===== Problem ===== | ||
- | 某天有個運氣很好的同事,測試某個功能時,發生Service自己異常中止的問題。經過初步trace,發現那台機器被[[https://www.tenable.com/products/nessus-vulnerability-scanner|Nessus]]掃瞄過後,JVM就異常中止了。 | + | 某天有個運氣很好的同事,測試某個功能時,發生Service自己異常中止的問題。 |
+ | ===== How to resolve? ===== | ||
+ | ==== Trace ==== | ||
+ | 經過初步trace,發現那台機器被[[https://www.tenable.com/products/nessus-vulnerability-scanner|Nessus]]掃瞄過後,JVM就異常中止: | ||
<code> | <code> | ||
ERROR | wrapper | 2017/10/06 16:42:16 | JVM exited unexpectedly. | ERROR | wrapper | 2017/10/06 16:42:16 | JVM exited unexpectedly. | ||
</code> | </code> | ||
- | ===== How to resolve? ===== | + | 於是我將wrapper log level改為DEBUG,並打開了wrapper ping jvm的log: |
- | ==== Trace ==== | + | |
- | 首先我將wrapper log level改為DEBUG,並打開了wrapper ping jvm的log: | + | |
<code> | <code> | ||
wrapper.logfile.loglevel=DEBUG | wrapper.logfile.loglevel=DEBUG | ||
wrapper.ping.alert.loglevel=DEBUG | wrapper.ping.alert.loglevel=DEBUG | ||
</code> | </code> | ||
- | 接著發現訊息出現: | + | 最後發現訊息出現: |
<code> | <code> | ||
INFO | jvm 1 | 2017/10/06 16:42:13 | WrapperManager: WARNING: Making JVM appear to be hung... | INFO | jvm 1 | 2017/10/06 16:42:13 | WrapperManager: WARNING: Making JVM appear to be hung... | ||
</code> | </code> | ||
- | 這個問題看起來是外力讓wrapper造成了jvm的hang。 | + | 這個問題看起來是Nessus連線讓wrapper造成jvm hang住。 |
+ | ==== WrapperActionServer ==== | ||
+ | 從WrapperActionServer的javadoc中得知,它可以綁定某個port提供以下功能: | ||
+ | <code> | ||
+ | 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) | ||
+ | </code> | ||
+ | 預設情況下是disable的;但假如你都設為enable,就會發生我們所遇到的慘劇。所以怎麼解決? 只要enable需要的功能即可。\\ | ||
+ | \\ | ||
+ | 其實我個人並不推薦使用wrapper這個功能,因為有心人士很容易就把你系統給搞掛了。 | ||
===== Reference ===== | ===== Reference ===== | ||
+ | * [[https://www.tenable.com/products/nessus-vulnerability-scanner|Nessus]] | ||
* [[https://wrapper.tanukisoftware.com/doc/english/example.html|Running the TestWrapper Example Application]] | * [[https://wrapper.tanukisoftware.com/doc/english/example.html|Running the TestWrapper Example Application]] | ||
* [[https://wrapper.tanukisoftware.com/doc/english/prop-jvm-kill-delay.html|thread dump的問題]] | * [[https://wrapper.tanukisoftware.com/doc/english/prop-jvm-kill-delay.html|thread dump的問題]] | ||
* [[https://wrapper.tanukisoftware.com/jdoc/org/tanukisoftware/wrapper/WrapperActionServer.html|javadoc - WrapperActionServer]] | * [[https://wrapper.tanukisoftware.com/jdoc/org/tanukisoftware/wrapper/WrapperActionServer.html|javadoc - WrapperActionServer]] | ||
+ | ===== ===== | ||
+ | ---- | ||
+ | \\ | ||
+ | ~~DISQUS~~ | ||