java.net.PlainSocketImpl.socketAvailable CPU 100%
xiaoyu
2013-05-28
今天遇到一个很奇怪的问题,发现服务器一个java 线程cpu一直100% (sys很高), 然后做了一个stack dump:
"Thread-0" prio=10 tid=0x0952f000 nid=0x855 runnable [0x2e2d6000] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAvailable(Native Method) at java.net.PlainSocketImpl.available(PlainSocketImpl.java:472) - locked <0x34960f58> (a java.net.SocksSocketImpl) at java.net.SocketInputStream.available(SocketInputStream.java:217) at com.mysql.jdbc.util.ReadAheadInputStream.available(ReadAheadInputStream.java:232) at com.mysql.jdbc.MysqlIO.clearInputStream(MysqlIO.java:949) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2426) at com.mysql.jdbc.MysqlIO.disableMultiQueries(MysqlIO.java:3771) at com.mysql.jdbc.PreparedStatement.executePreparedBatchAsMultiStatement(PreparedStatement.java:1675) - locked <0x349c0468> (a com.mysql.jdbc.JDBC4Connection) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1463) - locked <0x349c0468> (a com.mysql.jdbc.JDBC4Connection) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294) ....... 然后到了Mysql Server去使用show full processlist; 发现也没有任何sql被执行。 比较可惜的是我没有做core dump 就重启了应用(做了几次jstack -m pid 都失败了)。 我以为是网卡中断问题导致cpu 100%, 但是又想如果网卡中断问题,应该总有结束的时候(我可是等了快一个小时了,都没有发现恢复)(PS:不过查看网卡中断,的确这个通讯的网卡中断都是使用一个CPU的) 环境是: 2.6.38-8-generic-pae #42-Ubuntu SMP java 6u31 mysql JDBC driver 5.1.22 mysql 5.5 server |
|
xia5203166
2014-04-22
我也是这个问题 请教下 最后是怎么解决的?
|
|
RednaxelaFX
2014-04-23
楼主提到的stack trace可能调用到的native方法有这几个:
Java_java_net_PlainSocketImpl_socketAvailable http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/0d7eefa2946a/src/solaris/native/java/net/PlainSocketImpl.c#l862 JVM_SocketAvailable http://hg.openjdk.java.net/jdk6/jdk6/hotspot/file/942fdd23d6f5/src/share/vm/prims/jvm.cpp#l3665 os::socket_available http://hg.openjdk.java.net/jdk6/jdk6/hotspot/file/942fdd23d6f5/src/os/linux/vm/os_linux.cpp#l4667 ioctl http://man7.org/linux/man-pages/man2/ioctl.2.html 这里开始我就不熟悉了。楼主看到这里有啥思路不? |
|
rink1969
2014-08-20
刚才一个朋友碰到同样的问题
在网上搜了一下,问题在这里 http://bugs.mysql.com/bug.php?id=73053 是linux内核(3.6及以下版本)的一个bug导致的,上面的帖子里面有内核补丁的链接 到处都是坑啊~~~ |
|
xia5203166
2014-09-28
据说是mysql-connnectoer的一个bug
|
|
xiaoyu
2014-11-29
rink1969 写道 刚才一个朋友碰到同样的问题
在网上搜了一下,问题在这里 http://bugs.mysql.com/bug.php?id=73053 是linux内核(3.6及以下版本)的一个bug导致的,上面的帖子里面有内核补丁的链接 到处都是坑啊~~~ 应该就是这个问题了 |
相关讨论
相关资源推荐
- 执行FlinkSql报错 java.net.PlainSocketImpl.socketConnect
- Tomcat拒绝连接 java.net.ConnectException: 拒绝连接 at java.net.PlainSocketImpl.socketConnect(Native Method)
- 解决Flink中报 java.net.ConnectException:拒绝连接 在java.net.PlainSocketImpl.socketConnect
- java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Meth
- Java.net.PlainSocketImpl
- java.net.conne_Java网络问题:java.net.ConnectException:连接被...
- java.net.connect_java.net.ConnectException: Connection refused: connect
- java.net.ConnectException: Connection refused
- java net connect,java.net.ConnectException:连接被拒绝
- Caused by java.net.ConnectException Connection timed out connect