当前位置:   article > 正文

Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案

attempt to unlock lock, not locked by current thread by node id: 42458342-66

Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案

问题背景

Redisson做分布式锁是目前比较流行的方式,但是在使用的过程中遇到一些坑:

  • Redisson的分布式锁只能通过创建锁的线程进行解锁,正所谓解铃还须系铃人,不是同一个线程解锁会报异常
  • 因为Redisson是为锁而生,所以一开始设计的时候,为了防止死锁,默认锁的过期时间为30S
  • 当时我居然傻到用单元测试来测试Redisson的分布式锁,我太傻了,单元测试之后马上就会结束项目运行,那么就没有线程持有锁了,更别说还需要同线程解锁了

报异常:

2022-05-07 10:10:36.005  INFO 67300 --- [           main] c.y.redisson.utils.DistributedRedisLock  : lock:true
2022-05-07 10:10:36.011  INFO 67300 --- [           main] c.y.redisson.utils.DistributedRedisLock  : lock.isHeldByCurrentThread: false
2022-05-07 10:10:36.039 ERROR 67300 --- [           main] c.y.redisson.utils.DistributedRedisLock  : DistributedRedisLock unlock [yuange] Exception:

java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: 51f450d1-f832-4950-8e78-aec9a7484b8e thread-id: 1
	at org.redisson.RedissonBaseLock.lambda$unlockAsync$1(RedissonBaseLock.java:316) ~[redisson-3.16.8.jar:3.16.8]
	at java.util.concurrent.CompletableFuture.uniHandle(Com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1009048
推荐阅读
相关标签
  

闽ICP备14008679号