You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@pavel-hp There could be many Redis operations in one EVAL command. I think, because of this reason, the author thought setting timeout to infinite is a better approach.
Hello @sazzad16 !
Let me explain why it is a problem.
We faced with this issue when we did resilience and failover tests with Redis.
Our application must be able to gracefully shutdown in case of unresolvable problem. But in this case we cannot close Application in proper way, because threads were in RUNNING state and application has to wait for unfinished jobs.
Yes for sure, there could be many Redis operations in LUA script but what is the point to have Infinite timeout on socket read? We still talking about Redis which is memory database and should be fast. If operation not performed let say during one minute it has to be timeouted for sure.
I think user should have ability to control this parameter (eval & evalSHA related). By default it could have let say 30 seconds value (or even less) but not Infinite for sure!
Could you please explain why Jedis uses setTimeoutInfinite (socket.setSoTimeout(0);) when it runs eval&evalSha command?
https://github.com/xetorthio/jedis/blob/c9c118aa86a1ff473b94dddd7fb28d640837e194/src/main/java/redis/clients/jedis/BinaryJedis.java#L3317
I faced with an issue when thread just stuck here..
The text was updated successfully, but these errors were encountered: