redis.clients.jedis.exceptions.JedisConnectionException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • The concurrent use of {{SCAN}} and iteration over the resulting {{Cursor}} causes various Exceptions using the Jedis Driver. Test case: https://gist.github.com/mp911de/327cb876117bc1d74049aff25e5509cb {code} redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: 5 at redis.clients.jedis.Protocol.process(Protocol.java:154) at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:196) at redis.clients.jedis.Protocol.process(Protocol.java:147) at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:196) at redis.clients.jedis.Protocol.process(Protocol.java:147) at redis.clients.jedis.Protocol.read(Protocol.java:205) at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297) at redis.clients.jedis.Connection.getRawObjectMultiBulkReply(Connection.java:242) at redis.clients.jedis.Connection.getObjectMultiBulkReply(Connection.java:248) at redis.clients.jedis.BinaryJedis.hscan(BinaryJedis.java:3300) at org.springframework.data.redis.connection.jedis.JedisConnection$5.doScan(JedisConnection.java:3437) {code} {code} java.lang.ClassCastException: [B cannot be cast to java.util.List at redis.clients.jedis.Connection.getRawObjectMultiBulkReply(Connection.java:242) at redis.clients.jedis.Connection.getObjectMultiBulkReply(Connection.java:248) at redis.clients.jedis.BinaryJedis.hscan(BinaryJedis.java:3300) at org.springframework.data.redis.connection.jedis.JedisConnection$5.doScan(JedisConnection.java:3437) {code} This issue gets only visible if: 1. Multiple threads try to use the {{SCAN}} command and iterate over the resulting {{Cursor}} 2. There is enough data to keep the iteration busy The reason is that the resulting {{Cursor}} s hold a reference to the connection that was allocated during the {{.scan()}} invocation. {{.scan()}} allocates a connection but then it releases the connection back and so can multiple {{Cursors}} in different {{Thread}} s share the same Jedis connection.
    via by Mark Paluch,
  • socket time out during replication
    via GitHub by sima1
    ,
  • jedis多线程异常 | 日拱一卒
    via by Unknown author,
  • Unknown reply: P
    via GitHub by jordi9
    ,
    • redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: 5 at redis.clients.jedis.Protocol.process(Protocol.java:154) at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:196) at redis.clients.jedis.Protocol.process(Protocol.java:147) at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:196) at redis.clients.jedis.Protocol.process(Protocol.java:147) at redis.clients.jedis.Protocol.read(Protocol.java:205) at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297) at redis.clients.jedis.Connection.getRawObjectMultiBulkReply(Connection.java:242) at redis.clients.jedis.Connection.getObjectMultiBulkReply(Connection.java:248) at redis.clients.jedis.BinaryJedis.hscan(BinaryJedis.java:3300) at org.springframework.data.redis.connection.jedis.JedisConnection$5.doScan(JedisConnection.java:3437)

    Users with the same issue

    Unknown visitor
    Unknown visitor2 times, last one,
    Unknown visitor
    Unknown visitor1 times, last one,
    Unknown visitor
    Unknown visitor1 times, last one,