Open atonce opened 12 years ago
如果监控的对象的属性是String类型,则无法显示其值 inspect Subs.subsCode subsCode跳过trace -d Subs是可以看到其又被赋值,但是inspect却看不到其值
感谢提交!
能否提供上述两个场景下控制台的字符显示内容呢? 请不要截图, 复制粘贴文本就好, 例如:
housemd> trace -t 2 TraceTarget$A.m
INFO : probe class TraceTarget$A
TraceTarget$A.m(int, String) TraceTarget$CL@42719c 0 -ms null
TraceTarget$A.m(String) TraceTarget$CL@42719c 2 3ms TraceTarget$A@401369
TraceTarget$A.m(int, String) TraceTarget$CL@42719c 0 -ms null
TraceTarget$A.m(String) TraceTarget$CL@42719c 4 1ms TraceTarget$A@401369
INFO : Ended by timeout
INFO : reset class TraceTarget$A
关于字母u(小写)的问题:
[vsop@es86app1:/export/home/vsop]$ housemd 20266 INFO : load agent /export/home/vsop/housemd-assembly-0.2.2.jar INFO : options: INFO : /export/home/vsop/housemd-assembly-0.2.2.jar INFO : com.github.zhongl.housemd.duck.Telephone INFO : 54321 INFO : com.github.zhongl.housemd.command.Trace INFO : com.github.zhongl.housemd.command.Loaded INFO : com.github.zhongl.housemd.command.Env INFO : com.github.zhongl.housemd.command.Inspect INFO : connection established on 54321 housemd> loaded Squit
No matched class ERROR: connection breaked causeby ERROR: java.io.IOException: 连接被对等方复位 (errno:232) ERROR: You can get more details in /tmp/housemd.err.20266 com.github.zhongl.housemd.house.Mobilephone@1976011: caught java.lang.IllegalSta teException: Shutdown in progress java.lang.IllegalStateException: Shutdown in progress at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.ja va:55) at java.lang.Runtime.removeShutdownHook(Runtime.java:220) at scala.sys.ShutdownHookThread.remove(ShutdownHookThread.scala:19) at com.github.zhongl.housemd.house.Mobilephone$$anonfun$act$1$$anonfun$a pply$1.apply(MobilePhone.scala:77) at com.github.zhongl.housemd.house.Mobilephone$$anonfun$act$1$$anonfun$a pply$1.apply(MobilePhone.scala:68) at scala.actors.ReactorTask.run(ReactorTask.scala:31) at scala.actors.Reactor$class.resumeReceiver(Reactor.scala:129) at com.github.zhongl.housemd.house.Mobilephone.scala$actors$ReplyReactor $$super$resumeReceiver(MobilePhone.scala:35) at scala.actors.ReplyReactor$class.resumeReceiver(ReplyReactor.scala:68) at com.github.zhongl.housemd.house.Mobilephone.resumeReceiver(MobilePhon e.scala:35) at scala.actors.Actor$class.searchMailbox(Actor.scala:500) at com.github.zhongl.housemd.house.Mobilephone.searchMailbox(MobilePhone .scala:35) at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.a pply$mcV$sp(Reactor.scala:117) at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.a pply(Reactor.scala:114) at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.a pply(Reactor.scala:114) at scala.actors.ReactorTask.run(ReactorTask.scala:33) at scala.actors.threadpool.ThreadPoolExecutor.runWorker(Unknown Source) at scala.actors.threadpool.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Thread.java:662)
而且出错后进程挂死掉了,不能quit或者ctr+d退出
只有杀掉该housemd进程,重新开一个cmd窗口连接上去
每次执行同样的命令都会出现这样的现象吗?
产生这个直接退出的问题, 有规律呢, 还是很随机的?
根据你提供的异常堆栈信息, 我结合代码的判断是:
并非字母
u
会被转换成quit
(这我已经验证), 而是HouseMD
的进程的ShutdownHook
被触发了, 请确定你的环境中是否有其他人为或自动的行为在kill
你启动的HouseMD
关于null的问题: 我前端浏览器传入到action中,仅做了一次查询,所有的参数和场景都是一致的(只是时间点不一致,一次为了 trace 一次做inspect)
这个是inspect的记录: INFO : Ended by overlimit INFO : Reset class com.eshore.vsop.dao.model.PartnerParam housemd> inspect -i 10 -t 60 -l 6 PartnerParam.partnerCode INFO : Probe class com.eshore.vsop.dao.model.PartnerParam PartnerParam.partnerCode null com.eshore.vsop.dao.model.PartnerParam@142c9ed weblogic.utils .classloaders.ChangeAwareClassLoader@1894800 finder: weblogic.utils.classloaders.CodeGenCla ssFinder@fd899 annotation: vsop@vsop
INFO : Ended by overlimit INFO : Reset class com.eshore.vsop.dao.model.PartnerParam
这个是trace -d的日志文件:
2012-06-21 14:31:41 0ms [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (s
elf-tuning)'] com.eshore.vsop.dao.model.PartnerParam@179344a com/eshore/vsop/dao/model/Part
nerParam.clear [] void
2012-06-21 14:31:41 1ms [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (s
elf-tuning)'] com.eshore.vsop.dao.model.PartnerParam@179344a com/eshore/vsop/dao/model/Part
nerParam.
每次都出现 我在cmd中telnet和fterm中都试了,每次都如此,不是随机出现的 也不会有人杀进程
以上测试主机的操作系统是HP UNIX
方便的话, 请加下我的Gtalk: zhong.lunfu@gmail.com, 提升以下沟通效率。
在 2012年6月21日 下午2:47,atonce < reply@reply.github.com
写道:
每次都出现 我在cmd中telnet和fterm中都试了,每次都如此,不是随机出现的 也不会有人杀进程
Reply to this email directly or view it on GitHub: https://github.com/zhongl/HouseMD/issues/55#issuecomment-6475370
zhongl
不好意思,没有用过gtalk
上班时间,也不能用即时通工具
------------------ 原始邮件 ------------------ 发件人: "Lunfu Zhong"reply@reply.github.com; 发送时间: 2012年6月21日(星期四) 下午2:53 收件人: "atonce"281099014@qq.com;
主题: Re: [HouseMD] 如果需要监控的类或者方法里含有u字母,则会自动匹配到quit命令 退出 (#55)
方便的话, 请加下我的Gtalk: zhong.lunfu@gmail.com, 提升以下沟通效率。
在 2012年6月21日 下午2:47,atonce < reply@reply.github.com
写道:
每次都出现 我在cmd中telnet和fterm中都试了,每次都如此,不是随机出现的 也不会有人杀进程
Reply to this email directly or view it on GitHub: https://github.com/zhongl/HouseMD/issues/55#issuecomment-6475370
zhongl
Reply to this email directly or view it on GitHub: https://github.com/zhongl/HouseMD/issues/55#issuecomment-6475447
重新在 SunOS 5.10上测试了下,没有出现刚才‘u’自动退出的问题,跟操作系统有关系
每次都出现 我在cmd中telnet和fterm中都试了,每次都如此
这句话有点笼统, 每次是指进入housemd>
后, 第一次输入命令就出现上面的异常退出了吗? 不是的话, 能够细致的说明一下, 方便我分析问题
cmd
是指什么?
我能想到的HouseMD
使用场景应该不需要telnet
以及fterm
参与。
能麻烦你详细描述你的操作的步骤吗?
貌似你要跟踪的进程是Weblogic
, 然后又是HP Unix
, 我恐怕很难模拟你的场景, 所以更多操作步骤和系统信息, 会对我分析这个问题原因很有帮助,谢谢:)
重新在 SunOS 5.10上测试了下,没有出现刚才‘u’自动退出的问题,跟操作系统有关系
我到觉得JDK
的版本会是个嫌疑最大的对象, 我测试过Open jdk
和Sun jdk
.
我的自己的机器是windows xp cmd就是指 dos命令行界面输入telnet操作登录到远程服务器上,执行housemd(一个sh脚本)内容是: [vsop@es86app1:/export/home/vsop]$ more housemd java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.2.jar $1
执行监控命令: [vsop@es86app1:/export/home/vsop]$ housemd 20266 INFO : load agent /export/home/vsop/housemd-assembly-0.2.2.jar INFO : options: INFO : /export/home/vsop/housemd-assembly-0.2.2.jar INFO : com.github.zhongl.housemd.duck.Telephone INFO : 54321 INFO : com.github.zhongl.housemd.command.Trace INFO : com.github.zhongl.housemd.command.Loaded INFO : com.github.zhongl.housemd.command.Env INFO : com.github.zhongl.housemd.command.Inspect INFO : connection established on 54321 housemd>
housemd> loaded Squit
bNo matched class housemd> quit
INFO : bye [vsop@es86app1:/export/home/vsop]$ b
这个是hpunix的java: [vsop@es86app1:/tmp/trace/20266@es86app1]$ java -version java version "1.6.0.10" Java(TM) SE Runtime Environment (build 1.6.0.10-jinteg_11_mar_2011_09_19-b00) Java HotSpot(TM) Server VM (build 19.1-b02-jinteg:2011mar11-07:33, mixed mode)
这个是sunos的java: -bash-3.00$ java -version java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)
我的自己的机器是windows xp cmd就是指 dos命令行界面输入telnet操作登录到远程服务器上,执行housemd(一个sh脚本)内容是: [vsop@es86app1:/export/home/vsop]$ more housemd java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.2.jar $1
执行监控命令: [vsop@es86app1:/export/home/vsop]$ housemd 20266 INFO : load agent /export/home/vsop/housemd-assembly-0.2.2.jar INFO : options: INFO : /export/home/vsop/housemd-assembly-0.2.2.jar INFO : com.github.zhongl.housemd.duck.Telephone INFO : 54321 INFO : com.github.zhongl.housemd.command.Trace INFO : com.github.zhongl.housemd.command.Loaded INFO : com.github.zhongl.housemd.command.Env INFO : com.github.zhongl.housemd.command.Inspect INFO : connection established on 54321 housemd>
housemd> loaded Squit
bNo matched class housemd> quit
INFO : bye [vsop@es86app1:/export/home/vsop]$ b
这个是hpunix的java: [vsop@es86app1:/tmp/trace/20266@es86app1]$ java -version java version "1.6.0.10" Java(TM) SE Runtime Environment (build 1.6.0.10-jinteg_11_mar_2011_09_19-b00) Java HotSpot(TM) Server VM (build 19.1-b02-jinteg:2011mar11-07:33, mixed mode)
这个是sunos的java: -bash-3.00$ java -version java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)
我的自己的机器是windows xp cmd就是指 dos命令行界面输入telnet操作登录到远程服务器上,执行housemd(一个sh脚本)内容是: [vsop@es86app1:/export/home/vsop]$ more housemd java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.2.jar $1
执行监控命令: [vsop@es86app1:/export/home/vsop]$ housemd 20266 INFO : load agent /export/home/vsop/housemd-assembly-0.2.2.jar INFO : options: INFO : /export/home/vsop/housemd-assembly-0.2.2.jar INFO : com.github.zhongl.housemd.duck.Telephone INFO : 54321 INFO : com.github.zhongl.housemd.command.Trace INFO : com.github.zhongl.housemd.command.Loaded INFO : com.github.zhongl.housemd.command.Env INFO : com.github.zhongl.housemd.command.Inspect INFO : connection established on 54321 housemd>
housemd> loaded Squit
bNo matched class housemd> quit
INFO : bye [vsop@es86app1:/export/home/vsop]$ b
这个是hpunix的java: [vsop@es86app1:/tmp/trace/20266@es86app1]$ java -version java version "1.6.0.10" Java(TM) SE Runtime Environment (build 1.6.0.10-jinteg_11_mar_2011_09_19-b00) Java HotSpot(TM) Server VM (build 19.1-b02-jinteg:2011mar11-07:33, mixed mode)
这个是sunos的java: -bash-3.00$ java -version java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)
我的自己的机器是windows xp cmd就是指 dos命令行界面输入telnet操作登录到远程服务器上,执行housemd(一个sh脚本)内容是: [vsop@es86app1:/export/home/vsop]$ more housemd java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-0.2.2.jar $1
执行监控命令: [vsop@es86app1:/export/home/vsop]$ housemd 20266 INFO : load agent /export/home/vsop/housemd-assembly-0.2.2.jar INFO : options: INFO : /export/home/vsop/housemd-assembly-0.2.2.jar INFO : com.github.zhongl.housemd.duck.Telephone INFO : 54321 INFO : com.github.zhongl.housemd.command.Trace INFO : com.github.zhongl.housemd.command.Loaded INFO : com.github.zhongl.housemd.command.Env INFO : com.github.zhongl.housemd.command.Inspect INFO : connection established on 54321 housemd>
housemd> loaded Squit
bNo matched class housemd> quit
INFO : bye [vsop@es86app1:/export/home/vsop]$ b
这个是hpunix的java: [vsop@es86app1:/tmp/trace/20266@es86app1]$ java -version java version "1.6.0.10" Java(TM) SE Runtime Environment (build 1.6.0.10-jinteg_11_mar_2011_09_19-b00) Java HotSpot(TM) Server VM (build 19.1-b02-jinteg:2011mar11-07:33, mixed mode)
这个是sunos的java: -bash-3.00$ java -version java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)
主题: Re: [HouseMD] 如果需要监控的类或者方法里含有u字母,则会自动匹配到quit命令 退出 (#55)
每次都出现 我在cmd中telnet和fterm中都试了,每次都如此
这句话有点笼统, 每次是指进入housemd>
后, 第一次输入命令就出现上面的异常退出了吗? 不是的话, 能够细致的说明一下, 方便我分析问题
cmd
是指什么?
我能想到的HouseMD
使用场景应该不需要telnet
以及fterm
参与。
能麻烦你详细描述你的操作的步骤吗?
貌似你要跟踪的进程是Weblogic
, 然后又是HP Unix
, 我恐怕很难模拟你的场景, 所以更多操作步骤和系统信息, 会对我分析这个问题原因很有帮助,谢谢:)
Reply to this email directly or view it on GitHub: https://github.com/zhongl/HouseMD/issues/55#issuecomment-6475998
囧, 好吧, 我土了。
在SunOS下也是通过telnet吗?
hp和sun,我都有cmd telnet和fterm 2种方式测试
现在测试 我之前提到的 类的字符串属性为null,在sunos也不为空了
真bt,给你添麻烦了
我后面有时间再测试下Redhat linux
------------------ 原始邮件 ------------------ 发件人: "Lunfu Zhong"reply@reply.github.com; 发送时间: 2012年6月21日(星期四) 下午3:50 收件人: "atonce"281099014@qq.com;
主题: Re: [HouseMD] 如果需要监控的类或者方法里含有u字母,则会自动匹配到quit命令 退出 (#55)
囧, 好吧, 我土了。
在SunOS下也是通过telnet吗?
Reply to this email directly or view it on GitHub: https://github.com/zhongl/HouseMD/issues/55#issuecomment-6476234
哪里话, 你都为HouseMD做了两个操作系统的平台级测试了, 我应该感谢你的:)
只可惜 我手上没有这样资源, 有点无能为力阿, 囧。
期待你后续的反馈, 多多感谢了!
假设我要监控某一个一个类明为Subs 如果输入了trace Su,就会自动激活quit,退出housemd