一次线上debug的过程

事情的缘由是这样的,很久之前,我写了一个爬虫,然后爬虫幸福的运行在服务器上,突然有一天,我收到一份邮件,上面写着爬虫失效,然后 肯定先是ssh上去看看进程. 先top一下看状况,一切良好,java进程的运行比较平稳,所以排除了死循环的错误,或者是NPE退出的错误. 然后线上使用jstack查了下虚拟机栈,然后就发现了如下一段奇葩的栈: “pool-6-thread-629” prio=10 tid=0x00007fcfb4004000 nid=0x51e0 runnable [0x00007fcf6c6c4000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) … at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)…