这两天Baoq为升级JDK7而打一个前置patch的时候,adworker会一直卡在对xdf文件的处理上,自己Jar Signing的问题没头绪,也帮他一起分析。
1、从数据库层面看不到任何的明显等待事件,4个worker session都在空闲等待,这否定了很多MOS上已有的案例
2、警告日志无异常信息,机器资源使用情况正常
3、在MOS上找到了手工导入xdf文件的方法(MOS Document ID:551325.1),kill掉adpatch进程后,手动导入xdf文件成功
4、重启adpatch,仍卡在问题xdf的执行上。启动阿dctrl,使用隐藏选项8来指示跳过相应adworker上的job,但被告知该job的状态不是failed
5、使用adctrl指示adwork01(正运行问题xdf文件的)failed its job,然后用选项8让其跳过该job,结果该job被移到其他worker上重新执行
6、尝试修改fnd_install_processes表中对应worker的status列,以期能骗过adpatch,结果adpatch直接报错想退出(猜测代码里应该有检测及自我保护的部分)
7、Baoq怀疑是导入xdf的参数设置错误,打开了patch的driver file,和其他的patch进行对比,没有发现差异
8、重启adpatch,仍执行问题xdf,OS上kill相应的worker进程,而不是在adctrl里控制,当worker变failed后再用adctrl选项8跳过失败job
9、kill adpatch,再重启,adpatch终于不执行那个不需要的job了,不过后面在执行到xdf文件时又卡住了,还有6个。。。。。 Baoq节哀
ps:adworker hang住时系统中并没有java进程,很奇怪,不确定是java进程没启动还是启动后出错退出了 。 w/a的过程也相当的纠结