Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New error with v3.17.4 and how to do read only #4464

Closed
testower opened this issue Aug 4, 2022 · 7 comments
Closed

New error with v3.17.4 and how to do read only #4464

testower opened this issue Aug 4, 2022 · 7 comments
Labels

Comments

@testower
Copy link
Contributor

testower commented Aug 4, 2022

After upgrading to 3.17.4 I have a new error in my logs not previously seen:

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x25059142, L:/127.0.0.1:62151 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@6568c9ba[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659612415403, 100, ...]\n\tat org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)\n\tat org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)\n\tat org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)\n\tat org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)\n\tat io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)\n\tat io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)\n\tat io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n\tat java.base/java.lang.Thread.run(Thread.java:832)

We use google memorystore with redis, and read replicas. For performance reasons we have 2 kubernetes deployments, one which writes to the main endpoint, and the other reading from the read replica endpoint.

The error above is from the deployment which is only supposed to read, not do any writing.

It's starting to occur to me that I maybe should configure these deployments differently with regards to redisson? Right now they use the same config using single server just pointing to different endpoints.

Why am I only getting this error with upgrade to 3.17.4, and can you point me towards the proper way to configure this setup?

Thanks in advance!

@mrniko
Copy link
Member

mrniko commented Aug 5, 2022

Can you share logs with trace logging level for org.redisson package?

@testower
Copy link
Contributor Author

testower commented Aug 5, 2022

Definitely! Didn't know how much to collect but here's a sample:

2022-08-05 10:10:17.609 DEBUG 66618 --- [oundedElastic-1] org.redisson.command.RedisExecutor       : acquired connection for command (INFO) and params [server] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@1528679632 [redisClient=[addr=redis://localhost:6379], channel=[id: 0xcebf8a96, L:/127.0.0.1:51210 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:17.613 TRACE 66618 --- [isson-netty-2-3] o.r.client.handler.CommandEncoder        : channel: [id: 0xcebf8a96, L:/127.0.0.1:51210 - R:localhost/127.0.0.1:6379] message: *2
$4
INFO
$6
server

2022-08-05 10:10:17.656 TRACE 66618 --- [isson-netty-2-3] o.r.client.handler.CommandDecoder        : reply: $602
# Server
redis_version:6.2.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:1a1bb2d023fdc368
redis_mode:standalone
os:Linux 5.10.90+ x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:6.3.0
process_id:1
process_supervised:no
run_id:9dd4ba4e35bd822cc367557101d7555373f7c621
tcp_port:6379
server_time_usec:1659687017854042
uptime_in_seconds:5455343
uptime_in_days:63
hz:10
configured_hz:10
lru_clock:15519849
executable:/data/redis-server
config_file:/usr/local/etc/redis/redis.conf
io_threads_active:0

, channel: [id: 0xcebf8a96, L:/127.0.0.1:51210 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@269a3b25[Not completed, 1 dependents], command=(INFO), params=[server], codec=org.redisson.client.codec.StringCodec]
2022-08-05 10:10:17.659 DEBUG 66618 --- [isson-netty-2-3] org.redisson.command.RedisExecutor       : connection released for command (INFO) and params [server] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@1528679632 [redisClient=[addr=redis://localhost:6379], channel=[id: 0xcebf8a96, L:/127.0.0.1:51210 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@269a3b25[Completed normally], command=(INFO), params=[server], codec=org.redisson.client.codec.StringCodec], usage=0]
2022-08-05 10:10:18.397 DEBUG 66618 --- [sson-netty-2-22] org.redisson.connection.DNSMonitor       : Request sent to resolve ip address for master host: localhost
2022-08-05 10:10:18.399 DEBUG 66618 --- [sson-netty-2-21] org.redisson.connection.DNSMonitor       : Resolved ip: localhost/127.0.0.1 for master host: localhost
2022-08-05 10:10:18.557 DEBUG 66618 --- [sson-netty-2-23] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@1450590547 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:18.559 TRACE 66618 --- [isson-netty-2-4] o.r.client.handler.CommandEncoder        : channel: [id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$15
vehicleCache_10
$40
redisson__timeout__set:{vehicleCache_10}
$37
redisson__idle__set:{vehicleCache_10}
$44
redisson_map_cache_expired:{vehicleCache_10}
$55
redisson__map_cache__last_access__set:{vehicleCache_10}
$51
redisson__execute_task_once_latch:{vehicleCache_10}
$13
1659687018556
$3
100
$1
5
$1
1

2022-08-05 10:10:18.596 DEBUG 66618 --- [sson-netty-2-24] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@1365164103 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:18.598 TRACE 66618 --- [isson-netty-2-9] o.r.client.handler.CommandEncoder        : channel: [id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$15
stationCache_10
$40
redisson__timeout__set:{stationCache_10}
$37
redisson__idle__set:{stationCache_10}
$44
redisson_map_cache_expired:{stationCache_10}
$55
redisson__map_cache__last_access__set:{stationCache_10}
$51
redisson__execute_task_once_latch:{stationCache_10}
$13
1659687018596
$3
100
$1
5
$1
1

2022-08-05 10:10:18.610 TRACE 66618 --- [isson-netty-2-4] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@7581a742[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:18.610 DEBUG 66618 --- [sson-netty-2-25] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@921931119 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:18.611 DEBUG 66618 --- [isson-netty-2-4] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@1450590547 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@7581a742[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@7581a742[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:18.614 ERROR 66618 --- [isson-netty-2-4] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'vehicleCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x7aec8c3a, L:/127.0.0.1:51211 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@7581a742[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687018556, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:18.616 TRACE 66618 --- [sson-netty-2-10] o.r.client.handler.CommandEncoder        : channel: [id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$23
geofencingZonesCache_10
$48
redisson__timeout__set:{geofencingZonesCache_10}
$45
redisson__idle__set:{geofencingZonesCache_10}
$52
redisson_map_cache_expired:{geofencingZonesCache_10}
$63
redisson__map_cache__last_access__set:{geofencingZonesCache_10}
$59
redisson__execute_task_once_latch:{geofencingZonesCache_10}
$13
1659687018610
$3
100
$1
5
$1
1

2022-08-05 10:10:18.664 TRACE 66618 --- [isson-netty-2-9] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@345d85af[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:18.664 DEBUG 66618 --- [isson-netty-2-9] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@1365164103 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@345d85af[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@345d85af[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:18.664 ERROR 66618 --- [isson-netty-2-9] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'stationCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x356942fa, L:/127.0.0.1:51213 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@345d85af[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687018596, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:18.685 TRACE 66618 --- [sson-netty-2-10] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@518171e5[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:18.685 DEBUG 66618 --- [sson-netty-2-10] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@921931119 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@518171e5[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@518171e5[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:18.685 ERROR 66618 --- [sson-netty-2-10] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'geofencingZonesCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x1413ca1e, L:/127.0.0.1:51214 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@518171e5[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687018610, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:20.591 DEBUG 66618 --- [sson-netty-2-26] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@2088412754 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:20.592 TRACE 66618 --- [sson-netty-2-13] o.r.client.handler.CommandEncoder        : channel: [id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$16
gbfsFeedCache_10
$41
redisson__timeout__set:{gbfsFeedCache_10}
$38
redisson__idle__set:{gbfsFeedCache_10}
$45
redisson_map_cache_expired:{gbfsFeedCache_10}
$56
redisson__map_cache__last_access__set:{gbfsFeedCache_10}
$52
redisson__execute_task_once_latch:{gbfsFeedCache_10}
$13
1659687020590
$3
100
$1
5
$1
1

2022-08-05 10:10:20.639 TRACE 66618 --- [sson-netty-2-13] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@7b10c49e[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:20.639 DEBUG 66618 --- [sson-netty-2-13] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@2088412754 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@7b10c49e[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@7b10c49e[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:20.639 ERROR 66618 --- [sson-netty-2-13] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'gbfsFeedCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x77202081, L:/127.0.0.1:51215 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@7b10c49e[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, gbfsFeedCache_10, redisson__timeout__set:{gbfsFeedCache_10}, redisson__idle__set:{gbfsFeedCache_10}, redisson_map_cache_expired:{gbfsFeedCache_10}, redisson__map_cache__last_access__set:{gbfsFeedCache_10}, redisson__execute_task_once_latch:{gbfsFeedCache_10}, 1659687020590, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:20.924 DEBUG 66618 --- [sson-netty-2-27] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@610058181 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:20.925 TRACE 66618 --- [sson-netty-2-14] o.r.client.handler.CommandEncoder        : channel: [id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$24
validationReportCache_10
$49
redisson__timeout__set:{validationReportCache_10}
$46
redisson__idle__set:{validationReportCache_10}
$53
redisson_map_cache_expired:{validationReportCache_10}
$64
redisson__map_cache__last_access__set:{validationReportCache_10}
$60
redisson__execute_task_once_latch:{validationReportCache_10}
$13
1659687020924
$3
100
$1
5
$1
1

2022-08-05 10:10:20.980 TRACE 66618 --- [sson-netty-2-14] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@3d50665f[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:20.981 DEBUG 66618 --- [sson-netty-2-14] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@610058181 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@3d50665f[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@3d50665f[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:20.981 ERROR 66618 --- [sson-netty-2-14] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'validationReportCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x3a7bd3f8, L:/127.0.0.1:51216 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@3d50665f[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, validationReportCache_10, redisson__timeout__set:{validationReportCache_10}, redisson__idle__set:{validationReportCache_10}, redisson_map_cache_expired:{validationReportCache_10}, redisson__map_cache__last_access__set:{validationReportCache_10}, redisson__execute_task_once_latch:{validationReportCache_10}, 1659687020924, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:23.400 DEBUG 66618 --- [sson-netty-2-28] org.redisson.connection.DNSMonitor       : Request sent to resolve ip address for master host: localhost
2022-08-05 10:10:23.401 DEBUG 66618 --- [sson-netty-2-21] org.redisson.connection.DNSMonitor       : Resolved ip: localhost/127.0.0.1 for master host: localhost
2022-08-05 10:10:23.615 DEBUG 66618 --- [sson-netty-2-29] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@670172570 [redisClient=[addr=redis://localhost:6379], channel=[id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:23.616 TRACE 66618 --- [sson-netty-2-16] o.r.client.handler.CommandEncoder        : channel: [id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$15
vehicleCache_10
$40
redisson__timeout__set:{vehicleCache_10}
$37
redisson__idle__set:{vehicleCache_10}
$44
redisson_map_cache_expired:{vehicleCache_10}
$55
redisson__map_cache__last_access__set:{vehicleCache_10}
$51
redisson__execute_task_once_latch:{vehicleCache_10}
$13
1659687023615
$3
100
$1
5
$1
1

2022-08-05 10:10:23.666 DEBUG 66618 --- [sson-netty-2-30] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@577814324 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:23.667 TRACE 66618 --- [sson-netty-2-16] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@64e57768[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:23.667 TRACE 66618 --- [sson-netty-2-18] o.r.client.handler.CommandEncoder        : channel: [id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$15
stationCache_10
$40
redisson__timeout__set:{stationCache_10}
$37
redisson__idle__set:{stationCache_10}
$44
redisson_map_cache_expired:{stationCache_10}
$55
redisson__map_cache__last_access__set:{stationCache_10}
$51
redisson__execute_task_once_latch:{stationCache_10}
$13
1659687023666
$3
100
$1
5
$1
1

2022-08-05 10:10:23.667 DEBUG 66618 --- [sson-netty-2-16] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@670172570 [redisClient=[addr=redis://localhost:6379], channel=[id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@64e57768[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@64e57768[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:23.668 ERROR 66618 --- [sson-netty-2-16] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'vehicleCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0xc3725620, L:/127.0.0.1:51217 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@64e57768[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, vehicleCache_10, redisson__timeout__set:{vehicleCache_10}, redisson__idle__set:{vehicleCache_10}, redisson_map_cache_expired:{vehicleCache_10}, redisson__map_cache__last_access__set:{vehicleCache_10}, redisson__execute_task_once_latch:{vehicleCache_10}, 1659687023615, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:23.695 DEBUG 66618 --- [sson-netty-2-31] org.redisson.command.RedisExecutor       : acquired connection for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687023695, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using node localhost/127.0.0.1:6379... RedisConnection@230769686 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x85834375, L:/127.0.0.1:51219 - R:localhost/127.0.0.1:6379], currentCommand=null, usage=1]
2022-08-05 10:10:23.696 TRACE 66618 --- [sson-netty-2-20] o.r.client.handler.CommandEncoder        : channel: [id: 0x85834375, L:/127.0.0.1:51219 - R:localhost/127.0.0.1:6379] message: *13
$4
EVAL
$1824
if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[3]); local expiredKeys1 = redis.call('zrangebyscore', KEYS[2], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys1) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys1, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[3], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('zrem', KEYS[2], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); redis.call('hdel', KEYS[1], unpack(expiredKeys1, i, math.min(i+4999, table.getn(expiredKeys1)))); end; local expiredKeys2 = redis.call('zrangebyscore', KEYS[3], 0, ARGV[1], 'limit', 0, ARGV[2]); for i, key in ipairs(expiredKeys2) do local v = redis.call('hget', KEYS[1], key); if v ~= false then local t, val = struct.unpack('dLc0', v); local msg = struct.pack('Lc0Lc0', string.len(key), key, string.len(val), val); local listeners = redis.call('publish', KEYS[4], msg); if (listeners == 0) then break;end; end;end;for i=1, #expiredKeys2, 5000 do redis.call('zrem', KEYS[5], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[3], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('zrem', KEYS[2], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); redis.call('hdel', KEYS[1], unpack(expiredKeys2, i, math.min(i+4999, table.getn(expiredKeys2)))); end; return #expiredKeys1 + #expiredKeys2;
$1
6
$23
geofencingZonesCache_10
$48
redisson__timeout__set:{geofencingZonesCache_10}
$45
redisson__idle__set:{geofencingZonesCache_10}
$52
redisson_map_cache_expired:{geofencingZonesCache_10}
$63
redisson__map_cache__last_access__set:{geofencingZonesCache_10}
$59
redisson__execute_task_once_latch:{geofencingZonesCache_10}
$13
1659687023695
$3
100
$1
5
$1
1

2022-08-05 10:10:23.712 TRACE 66618 --- [sson-netty-2-18] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@195f2eb[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:23.712 DEBUG 66618 --- [sson-netty-2-18] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@577814324 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@195f2eb[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@195f2eb[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:23.712 ERROR 66618 --- [sson-netty-2-18] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'stationCache_10'

org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x047d3016, L:/127.0.0.1:51218 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@195f2eb[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, stationCache_10, redisson__timeout__set:{stationCache_10}, redisson__idle__set:{stationCache_10}, redisson_map_cache_expired:{stationCache_10}, redisson__map_cache__last_access__set:{stationCache_10}, redisson__execute_task_once_latch:{stationCache_10}, 1659687023666, 100, ...]
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:370)
	at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137)
	at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510)
	at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:832)

2022-08-05 10:10:23.743 TRACE 66618 --- [sson-netty-2-20] o.r.client.handler.CommandDecoder        : reply: -ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.
, channel: [id: 0x85834375, L:/127.0.0.1:51219 - R:localhost/127.0.0.1:6379], command: CommandData [promise=java.util.concurrent.CompletableFuture@1665b6f5[Not completed, 1 dependents], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687023695, 100, ...], codec=org.redisson.client.codec.LongCodec]
2022-08-05 10:10:23.743 DEBUG 66618 --- [sson-netty-2-20] org.redisson.command.RedisExecutor       : connection released for command (EVAL) and params [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687023695, 100, ...] from slot NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null] using connection RedisConnection@230769686 [redisClient=[addr=redis://localhost:6379], channel=[id: 0x85834375, L:/127.0.0.1:51219 - R:localhost/127.0.0.1:6379], currentCommand=CommandData [promise=java.util.concurrent.CompletableFuture@1665b6f5[Completed exceptionally: org.redisson.client.RedisException: ERR Error running script (call to f_134cd359e18d2acd4e083ed8eba74aca3024e815): @user_script:1: @user_script: 1: -READONLY You can't write against a read only replica.. channel: [id: 0x85834375, L:/127.0.0.1:51219 - R:localhost/127.0.0.1:6379] command: (EVAL), promise: java.util.concurrent.CompletableFuture@1665b6f5[Not completed, 1 dependents], params: [if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687023695, 100, ...]], command=(EVAL), params=[if redis.call('setnx', KEYS[6], ARGV[4]) == 0 then return -1;end;redis.call('expire', KEYS[6], ARGV[..., 6, geofencingZonesCache_10, redisson__timeout__set:{geofencingZonesCache_10}, redisson__idle__set:{geofencingZonesCache_10}, redisson_map_cache_expired:{geofencingZonesCache_10}, redisson__map_cache__last_access__set:{geofencingZonesCache_10}, redisson__execute_task_once_latch:{geofencingZonesCache_10}, 1659687023695, 100, ...], codec=org.redisson.client.codec.LongCodec], usage=0]
2022-08-05 10:10:23.744 ERROR 66618 --- [sson-netty-2-20] o.r.eviction.MapCacheEvictionTask        : Unable to evict elements for 'geofencingZonesCache_10'

@mrniko
Copy link
Member

mrniko commented Aug 5, 2022

Is it a Redis cluster?

@testower
Copy link
Contributor Author

testower commented Aug 5, 2022

No this is running in Google Cloud Memorystore which does not support clustering.

@testower
Copy link
Contributor Author

testower commented Aug 5, 2022

So it seems that a client which is connected to the read replica endpoint is trying to evict cache entries. Given that I'm using a single server redisson config, it could be that this is intentional (i.e. any redisson client should be able to issue eviction commands), and that I should be configuring redisson differently to avoid this, but I'm still curious as to why the error only surfaces with 3.17.4.

@testower
Copy link
Contributor Author

testower commented Aug 5, 2022

Is the MasterSlaveServerConfiguration the appropriate one to use in this scenario?

@testower
Copy link
Contributor Author

testower commented Aug 9, 2022

I have now rolled out MasterSlaveServerConfiguration with the newest version of redisson and I am now no longer seeing this error, so closing this issue 👍

@testower testower closed this as completed Aug 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

2 participants