tair-opensource / RedisShake

RedisShake is a Redis data processing and migration tool.
https://tair-opensource.github.io/RedisShake/
MIT License
3.83k stars 698 forks source link

使用restore模式时,报PNC EOF #571

Open polaris-alioth opened 1 year ago

polaris-alioth commented 1 year ago

问题描述

这里描述你的问题。 目标为redis 5 cluster,使用使用restore模式时,报PNC EOF 2023-03-08 09:01:56 INF GOOS: linux, GOARCH: amd64

2023-03-08 09:01:56 INF Ncpu: 3, GOMAXPROCS: 3
2023-03-08 09:01:56 INF pid: 16042
2023-03-08 09:01:56 INF pprof_port: 0
2023-03-08 09:01:56 INF No lua file specified, will not filter any cmd.
2023-03-08 09:01:56 INF auth successful. address=[7.225.151.121:6379]
2023-03-08 09:01:56 INF redisClusterWriter load cluster nodes. line=11f1444610aba77c4c51f5972b1216417dd87fb9 7.225.150.43:6379@12226 master - 0 1678237368710 2 connected 5461-10922
2023-03-08 09:01:56 INF auth successful. address=[7.225.150.43:6379]
2023-03-08 09:01:56 INF redisWriter connected to redis successful. address=[7.225.150.43:6379]
2023-03-08 09:01:56 INF redisClusterWriter load cluster nodes. line=2a03fd7ea3fd7f9502cade80e746d4875527a0a4 7.225.150.153:6379@13373 master - 0 1678237369000 3 connected 10923-16383
2023-03-08 09:01:56 INF auth successful. address=[7.225.150.153:6379]
2023-03-08 09:01:56 INF redisWriter connected to redis successful. address=[7.225.150.153:6379]
2023-03-08 09:01:56 INF redisClusterWriter load cluster nodes. line=21039c74b39d47f6f2a9fecf2f5596587b74d9c6 7.225.151.121:6379@12765 myself,master - 0 1678237366000 1 connected 0-5460
2023-03-08 09:01:56 INF auth successful. address=[7.225.151.121:6379]
2023-03-08 09:01:56 INF redisWriter connected to redis successful. address=[7.225.151.121:6379]
2023-03-08 09:01:56 INF redisClusterWriter connected to redis cluster successful. addresses=[7.225.150.43:6379 7.225.150.153:6379 7.225.151.121:6379]
2023-03-08 09:01:56 INF NewRDBReader: path=[/home/paas/redis-2-0.rdb]
2023-03-08 09:01:56 INF NewRDBReader: absolute path=[/home/paas/redis-2-0.rdb]
2023-03-08 09:01:56 INF start send RDB. path=[/home/paas/redis-2-0.rdb]
2023-03-08 09:01:56 INF RDB version: 9
2023-03-08 09:01:56 INF RDB AUX fields. key=[redis-ver], value=[6.2.7]
2023-03-08 09:01:56 INF goroutine 19 [running]:  [runtime/debug.Stack()]<-runtime/debug/stack.go:24 +0x65  [github.com/alibaba/RedisShake/internal/log.Panicf({0x79a4ac, 0x3}, {0x0, 0x0, 0x0})]<-github.com/alibaba/RedisShake/internal/log/func.go:27 +0x36  [github.com/alibaba/RedisShake/internal/log.PanicError({0x8167a0, 0xc00004e070})]<-github.com/alibaba/RedisShake/internal/log/func.go:36 +0x33  [github.com/alibaba/RedisShake/internal/rdb/structure.ReadBytes({0x816540, 0xc000096240}, 0x666bf5)]<-github.com/alibaba/RedisShake/internal/rdb/structure/byte.go:17 +0x65  [github.com/alibaba/RedisShake/internal/rdb/structure.ReadString({0x816540, 0xc000096240})]<-github.com/alibaba/RedisShake/internal/rdb/structure/string.go:42 +0x1a7  [github.com/alibaba/RedisShake/internal/rdb.(*Loader).parseRDBEntry(0xc0000cc000, 0xc000096240)]<-github.com/alibaba/RedisShake/internal/rdb/rdb.go:116 +0x168  [github.com/alibaba/RedisShake/internal/rdb.(*Loader).ParseRDB(0xc0000cc000)]<-github.com/alibaba/RedisShake/internal/rdb/rdb.go:85 +0x3f7  [github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead.func1()]<-github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:42 +0x185  [created by github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead]<-github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:32 +0x8f  [
2023-03-08 09:01:56 PNC EOF
panic: EOF

goroutine 19 [running]:
github.com/rs/zerolog.(*Logger).Panic.func1({0xc0000a6337, 0x0})
        github.com/rs/zerolog@v1.28.0/log.go:375 +0x2d
github.com/rs/zerolog.(*Event).msg(0xc0000960c0, {0xc0000a6337, 0x3})
        github.com/rs/zerolog@v1.28.0/event.go:156 +0x2b8
github.com/rs/zerolog.(*Event).Msgf(0xc0000960c0, {0x79a4ac, 0x528}, {0x0, 0x79a3e6, 0x3})
        github.com/rs/zerolog@v1.28.0/event.go:129 +0x4e
github.com/alibaba/RedisShake/internal/log.Panicf({0x79a4ac, 0x3}, {0x0, 0x0, 0x0})
        github.com/alibaba/RedisShake/internal/log/func.go:32 +0xef
github.com/alibaba/RedisShake/internal/log.PanicError({0x8167a0, 0xc00004e070})
        github.com/alibaba/RedisShake/internal/log/func.go:36 +0x33
github.com/alibaba/RedisShake/internal/rdb/structure.ReadBytes({0x816540, 0xc000096240}, 0x666bf5)
        github.com/alibaba/RedisShake/internal/rdb/structure/byte.go:17 +0x65
github.com/alibaba/RedisShake/internal/rdb/structure.ReadString({0x816540, 0xc000096240})
        github.com/alibaba/RedisShake/internal/rdb/structure/string.go:42 +0x1a7
github.com/alibaba/RedisShake/internal/rdb.(*Loader).parseRDBEntry(0xc0000cc000, 0xc000096240)
        github.com/alibaba/RedisShake/internal/rdb/rdb.go:116 +0x168
github.com/alibaba/RedisShake/internal/rdb.(*Loader).ParseRDB(0xc0000cc000)
        github.com/alibaba/RedisShake/internal/rdb/rdb.go:85 +0x3f7
github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead.func1()
        github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:42 +0x185
created by github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead
        github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:32 +0x8f

redis-shake 的日志:

{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"GOOS: linux, GOARCH: amd64"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"Ncpu: 3, GOMAXPROCS: 3"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"pid: 16042"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"pprof_port: 0"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"No lua file specified, will not filter any cmd."}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"auth successful. address=[7.225.151.121:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisClusterWriter load cluster nodes. line=11f1444610aba77c4c51f5972b1216417dd87fb9 7.225.150.43:6379@12226 master - 0 1678237368710 2 connected 5461-10922"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"auth successful. address=[7.225.150.43:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisWriter connected to redis successful. address=[7.225.150.43:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisClusterWriter load cluster nodes. line=2a03fd7ea3fd7f9502cade80e746d4875527a0a4 7.225.150.153:6379@13373 master - 0 1678237369000 3 connected 10923-16383"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"auth successful. address=[7.225.150.153:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisWriter connected to redis successful. address=[7.225.150.153:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisClusterWriter load cluster nodes. line=21039c74b39d47f6f2a9fecf2f5596587b74d9c6 7.225.151.121:6379@12765 myself,master - 0 1678237366000 1 connected 0-5460"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"auth successful. address=[7.225.151.121:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisWriter connected to redis successful. address=[7.225.151.121:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"redisClusterWriter connected to redis cluster successful. addresses=[7.225.150.43:6379 7.225.150.153:6379 7.225.151.121:6379]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"NewRDBReader: path=[/home/paas/redis-2-0.rdb]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"NewRDBReader: absolute path=[/home/paas/redis-2-0.rdb]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"start send RDB. path=[/home/paas/redis-2-0.rdb]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"RDB version: 9"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"RDB AUX fields. key=[redis-ver], value=[6.2.7]"}
{"level":"info","time":"2023-03-08T09:01:56+08:00","message":"goroutine 19 [running]:  [runtime/debug.Stack()]<-runtime/debug/stack.go:24 +0x65  [github.com/alibaba/RedisShake/internal/log.Panicf({0x79a4ac, 0x3}, {0x0, 0x0, 0x0})]<-github.com/alibaba/RedisShake/internal/log/func.go:27 +0x36  [github.com/alibaba/RedisShake/internal/log.PanicError({0x8167a0, 0xc00004e070})]<-github.com/alibaba/RedisShake/internal/log/func.go:36 +0x33  [github.com/alibaba/RedisShake/internal/rdb/structure.ReadBytes({0x816540, 0xc000096240}, 0x666bf5)]<-github.com/alibaba/RedisShake/internal/rdb/structure/byte.go:17 +0x65  [github.com/alibaba/RedisShake/internal/rdb/structure.ReadString({0x816540, 0xc000096240})]<-github.com/alibaba/RedisShake/internal/rdb/structure/string.go:42 +0x1a7  [github.com/alibaba/RedisShake/internal/rdb.(*Loader).parseRDBEntry(0xc0000cc000, 0xc000096240)]<-github.com/alibaba/RedisShake/internal/rdb/rdb.go:116 +0x168  [github.com/alibaba/RedisShake/internal/rdb.(*Loader).ParseRDB(0xc0000cc000)]<-github.com/alibaba/RedisShake/internal/rdb/rdb.go:85 +0x3f7  [github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead.func1()]<-github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:42 +0x185  [created by github.com/alibaba/RedisShake/internal/reader.(*rdbReader).StartRead]<-github.com/alibaba/RedisShake/internal/reader/rdb_reader.go:32 +0x8f  ["}
{"level":"panic","time":"2023-03-08T09:01:56+08:00","message":"EOF"}
suxb201 commented 1 year ago

@polaris-alioth 排除一下是不是 rdb 文件损坏。你可以先使用 Redis 本地加载这份 rdb 文件,看看能否正常加载。