1.46.0升级后登录报错,其中redis已经升级到7.2版本
- Dominant language
- Java
- Stars
- 19k
- Forks
- 2.9k
- PR merge metrics
- No merged PRs in 30d
Description
报错信息如下,与文档里的常见问题排查中的错误不一样
org.springframework.dao.InvalidDataAccessApiUsageException: ERR invalid expire time in 'set' command. channel: [id: 0x8c6bc329, L:/192.168.31.7:65282 - R:192.168.31.70/192.168.31.70:6379] command: (SET), params: [[65, 117, 116, 104, 111, 114, 105, 122, 97, 116, ...], [123, 34, 64, 99, 108, 97, 115, 115, 34, 58, ...], PX, -2000, XX], promise: java.util.concurrent.CompletableFuture@325b407d[Not completed, 1 dependents]
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:52) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) ~[spring-data-redis-3.5.2.jar:3.5.2]
at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:209) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:204) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:375) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.redisson.spring.data.connection.RedissonConnection.write(RedissonConnection.java:741) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.redisson.spring.data.connection.RedissonConnection.set(RedissonConnection.java:534) ~[redisson-spring-data-35-3.50.0.jar:3.50.0]
at org.springframework.data.redis.connection.DefaultStringRedisConnection.set(DefaultStringRedisConnection.java:780) ~[spring-data-redis-3.5.2.jar:3.5.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[?:?]
at org.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:61) ~[spring-data-redis-3.5.2.jar:3.5.2]
at jdk.proxy2/jdk.proxy2.$Proxy358.set(Unknown Source) ~[?:?]
at cn.dev33.satoken.dao.SaTokenDaoForRedisTemplate.lambda$setStringAndKeepTTL$1(SaTokenDaoForRedisTemplate.java:177) ~[sa-token-redis-template-1.46.0.jar:?]
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:413) ~[spring-data-redis-3.5.2.jar:3.5.2]
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:380) ~[spring-data-redis-3.5.2.jar:3.5.2]
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:367) ~[spring-data-redis-3.5.2.jar:3.5.2]
at cn.dev33.satoken.dao.SaTokenDaoForRedisTemplate.setStringAndKeepTTL(SaTokenDaoForRedisTemplate.java:176) ~[sa-token-redis-template-1.46.0.jar:?]
at cn.dev33.satoken.dao.SaTokenDaoForRedisTemplate.update(SaTokenDaoForRedisTemplate.java:108) ~[sa-token-redis-template-1.46.0.jar:?]
at cn.dev33.satoken.dao.auto.SaTokenDaoByObjectFollowString.updateObject(SaTokenDaoByObjectFollowString.java:74) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.dao.auto.SaTokenDaoBySessionFollowObject.updateSession(SaTokenDaoBySessionFollowObject.java:55) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.session.SaSession.update(SaSession.java:412) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.session.SaSession.addTerminal(SaSession.java:343) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.stp.StpLogic.createLoginSession(StpLogic.java:507) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.stp.StpLogic.login(StpLogic.java:465) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.stp.StpLogic.login(StpLogic.java:434) ~[sa-token-core-1.46.0.jar:?]
at cn.dev33.satoken.stp.StpUtil.login(StpUtil.java:186) ~[sa-token-core-1.46.0.jar:?]
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at SaTokenDaoForRedisTemplate.setStringAndKeepTTL around lines 176-177 in the stack trace, then inspect the RedisTemplate call that issues SET with PX -2000. Reproduce the login failure with Redis 7.2 and verify that login completes without an invalid-expire-time error, adding a regression test if the project’s existing tests cover this entry point.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, redis, spring
- Domain
- authentication, databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100