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
now logic to acquire a redis lock need 2 steps.
setnx and set expire .
I meet a bug that setnx is sucessed but set expire not. this may cause by network or other weird reasons, but I think this can fix by atomic operation
I fount a pr but it have't be accept, #29076
2. try to acquire a redislock
3. wait the breakpoint fire, stop the redis server
4.resume the breakpoint and return
5. restore the redis server
then you will get a never expires lock...
Although the probability of its occurrence is very low, once it occurs, it will cause very serious consequences. In a real business scenario, I have been experiencing this problem recently. Just now I finally discovered the source of the problem.
I hope to be able to fix it.
Thank you.
The text was updated successfully, but these errors were encountered:
Description:
now logic to acquire a redis lock need 2 steps.
setnx and set expire .
I meet a bug that setnx is sucessed but set expire not. this may cause by network or other weird reasons, but I think this can fix by atomic operation
I fount a pr but it have't be accept, #29076
Steps To Reproduce:
1.breakpoint in
framework/src/Illuminate/Cache/RedisLock.php
Line 40 in dca4598
2. try to acquire a redislock
3. wait the breakpoint fire, stop the redis server
4.resume the breakpoint and return
5. restore the redis server
then you will get a never expires lock...
Although the probability of its occurrence is very low, once it occurs, it will cause very serious consequences. In a real business scenario, I have been experiencing this problem recently. Just now I finally discovered the source of the problem.
I hope to be able to fix it.
Thank you.
The text was updated successfully, but these errors were encountered: