First of all thank you very much
The program is written in java
I used 10 threads to execute the jedis.lpush method in while, and for 2 days all threads were runable and blocked on jedis.lpush.
It seems that none of the timeout methods set by jedis are effective. I hope you can get help, thank you very much
Here’s some of the information I printed in jstack:
<code>"f:0" #237 prio=5 os_prio=0 tid=0x000000003d518800 nid=0x2938 runnable [0x000000005217f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at redis.clients.jedis.util.RedisInputStream.ensureFill(RedisInputStream.java:199)
at redis.clients.jedis.util.RedisInputStream.readByte(RedisInputStream.java:43)
at redis.clients.jedis.Protocol.process(Protocol.java:154)
at redis.clients.jedis.Protocol.read(Protocol.java:219)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:309)
at redis.clients.jedis.Connection.getIntegerReply(Connection.java:260)
at redis.clients.jedis.BinaryJedis.lpush(BinaryJedis.java:1150)
at com.croot.framework.communication.redis.f.run(RedisResponseSender.java:54)
Locked ownable synchronizers:
<code>"f:0" #237 prio=5 os_prio=0 tid=0x000000003d518800 nid=0x2938 runnable [0x000000005217f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at redis.clients.jedis.util.RedisInputStream.ensureFill(RedisInputStream.java:199)
at redis.clients.jedis.util.RedisInputStream.readByte(RedisInputStream.java:43)
at redis.clients.jedis.Protocol.process(Protocol.java:154)
at redis.clients.jedis.Protocol.read(Protocol.java:219)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:309)
at redis.clients.jedis.Connection.getIntegerReply(Connection.java:260)
at redis.clients.jedis.BinaryJedis.lpush(BinaryJedis.java:1150)
at com.croot.framework.communication.redis.f.run(RedisResponseSender.java:54)
Locked ownable synchronizers:
- None
</code>
"f:0" #237 prio=5 os_prio=0 tid=0x000000003d518800 nid=0x2938 runnable [0x000000005217f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
at redis.clients.jedis.util.RedisInputStream.ensureFill(RedisInputStream.java:199)
at redis.clients.jedis.util.RedisInputStream.readByte(RedisInputStream.java:43)
at redis.clients.jedis.Protocol.process(Protocol.java:154)
at redis.clients.jedis.Protocol.read(Protocol.java:219)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:309)
at redis.clients.jedis.Connection.getIntegerReply(Connection.java:260)
at redis.clients.jedis.BinaryJedis.lpush(BinaryJedis.java:1150)
at com.croot.framework.communication.redis.f.run(RedisResponseSender.java:54)
Locked ownable synchronizers:
- None