Giter Club home page Giter Club logo

Comments (21)

navyaijm2017 avatar navyaijm2017 commented on May 18, 2024

刚试了最新版本的也报这个错误,
improve-1.2.3,6125a52fc920762dae57c2ae5bb35e3e6ba0e0de,go1.10.3,2019-04-13_15:27:05

我的配置如下:

id = redis-shake
log_file = /tmp/shake.log

system_profile = 9310
http_profile = 9320

ncpu = 0

parallel = 4

input_rdb = local_dump

output_rdb = local_dump

source.address = 192.168.x.x:10379
source.password_raw = 123456
source.auth_type = auth
source.version = 7

target.address = 172.1.x.x:6382
target.password_raw = 123456
target.auth_type = auth
target.version = 7
target.db = -1

fake_time =

rewrite = true

filter.db =
filter.key =
filter.slot =

big_key_threshold = 524288000

psync = false

metric = true
metric.print_log = true

heartbeat.url =
heartbeat.interval = 3
heartbeat.external = test external
heartbeat.network_interface =

sender.size = 104857600
sender.count = 5000
sender.delay_channel_size = 65535

replace_hash_tag = false

extra = false

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

这个应该是增量同步到目的端,目的端断开连接了。确认下目的端redis的状态。

from redisshake.

navyaijm2017 avatar navyaijm2017 commented on May 18, 2024

执行同步命令:
./bin/redis-shake.linux64 -type=sync -conf=redis-shake.conf

在源的redis(codis的一个分片的master)日志打印:
3473:M 24 Apr 07:21:50.650 * Slave 172.17.x.x: asks for synchronization
3473:M 24 Apr 07:21:50.650 * Starting BGSAVE for SYNC with target: disk
3473:M 24 Apr 07:21:50.654 * Background saving started by pid 28065
28065:C 24 Apr 07:21:52.373 * DB saved on disk
28065:C 24 Apr 07:21:52.375 * RDB: 66 MB of memory used by copy-on-write
3473:M 24 Apr 07:21:52.394 * Background saving terminated with success
3473:M 24 Apr 07:21:56.622 * Synchronization with slave 172.17.x.x: succeeded
3473:M 24 Apr 07:22:01.011 # Connection with slave 172.17.x.x lost.

然后redis-shake进程退出,在源的redis上info查看,redis-shake这个slave也掉了

from redisshake.

navyaijm2017 avatar navyaijm2017 commented on May 18, 2024

验证了redis_version:5.0.2到redis_version:5.0.2 的同步也是这个问题,100%重现

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

掉应该是表象,主要原因是和目的的连接断了,然后shake退出了,自然和源端的连接也断掉了。
你目的端查看正常吗?是不是目的端网络抖动了

from redisshake.

navyaijm2017 avatar navyaijm2017 commented on May 18, 2024

我先说明下环境,我这是在阿里云vpc内部,网络应该是没有问题的,为了验证你说的目的网络抖动的问题,我把redis-shake和目的redis放在一台机器上,问题依旧,然后我测了源也是redis 5.0.2的正常,把源换成codis的redis-server就不行,我怀疑还是和这个有关系,每次全量同步完就断了,100%出现,应该和网络抖动没关系,能帮忙定位下是哪里出问题了嘛。

源:172.17.110.80 redis_version:3.2.4 (codis)
目标:172.17.37.91 redis_version:5.0.2
redis-shake:172.17.37.91 improve-1.2.3,6125a52fc920762dae57c2ae5bb35e3e6ba0e0de,go1.10.3,2019-04-13_15:27:05

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

捞一下整个日志给我吧,或者私信发我微信,加我一下,README里面最后有我的个人微信账号

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

目的端redis压力正常吗?配置参数中有个sender.count的参数,修改成0看看

from redisshake.

navyaijm2017 avatar navyaijm2017 commented on May 18, 2024

目的端redis没有访问,是我测试用的redis,我加你微信吧

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

用户反馈的日志:
image
redis本身运行期间没有挂过
image

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

用户反馈源端没有写入。
建议排查下目的端的情况,负载,redis的日志。
这个问题不是shake的问题。是目的端断开连接。

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

用户反馈,全量同步也出现类似错误:
image

from redisshake.

IT-xiaoge avatar IT-xiaoge commented on May 18, 2024

我这边遇到的问题是proxy端报错,然后复制断开了:
parsed unsupported command 'select'

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

@IT-xiaoge 完整的错误日志贴一下,源端和目的端版本是什么?

from redisshake.

IT-xiaoge avatar IT-xiaoge commented on May 18, 2024

@IT-xiaoge 完整的错误日志贴一下,源端和目的端版本是什么?

我源端是redis cluster,目的端是twemproxy。报错的时候,我看到proxy里面的wf log是“parsed unsupported command 'select'”,工具有可能发出select命令吗?

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

@IT-xiaoge 理论上不应该,你可以开debug日志确认下,所有发送的命令都有记录。

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

@IT-xiaoge 有什么结论吗?

from redisshake.

IT-xiaoge avatar IT-xiaoge commented on May 18, 2024

@IT-xiaoge 有什么结论吗?

日志里面记录的是有发送select操作的:
[DEBUG] dbSyncer[1] send command[1]: [select [0]]

dbSyncer[1] Event:NetErrorWhileFlush Id:redis-shake Error:write tcp xxxx->xxxx: use of closed network connection

Event:NetErrorWhileReceive Id:redis-shake Error:EOF

这里感觉像是连接超时了

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

理论上只有收到源端的select命令,shake才会向目的端进行转发。这块你可以钉钉联系我一下,必现的话,配合抓包一起看一下。

from redisshake.

Ops-learning avatar Ops-learning commented on May 18, 2024

请问一下这个问题解决了吗?
我这边也碰到同样的问题。codis导向twemproxy架构, 从proxy的日志上看,shake端发出select命令,proxy不支持命令则改close连接。
nc_redis.c:943 parsed unsupported command 'select'
同一时间codis没有抓取到select命令。
而shake的debug日志来看,做完全量同步之后发起select命令。

[DEBUG] dbSyncer[0] send command[1]: [select [0]]
[DEBUG] dbSyncer[0] send command[2]:xxx
[DEBUG] dbSyncer[0] send command[3]:xxx
[DEBUG] dbSyncer[0] send command[4]:xxx
[DEBUG] dbSyncer[0] send command[5]:xxx
[DEBUG] dbSyncer[0] send command[6]:xxx
[DEBUG] dbSyncer[0] send command[7]:xxx
[DEBUG] dbSyncer[0] send command[8]:xxx
[DEBUG] dbSyncer[0] send command[9]:xxx
[DEBUG] dbSyncer[0] send command[10]:xxx
[DEBUG] dbSyncer[0] send command[11]:xxx
[DEBUG] dbSyncer[0] send command[12]:xxx
[DEBUG] dbSyncer[0] send command[13]:xxx
[DEBUG] dbSyncer[0] send command[14]:xxx
[DEBUG] dbSyncer[0] send command[15]:xxx
[DEBUG] dbSyncer[0] receive reply-id[1]: [], error:[EOF]
[PANIC] dbSyncer[0] Event:NetErrorWhileReceive Id:codis Error:EOF

from redisshake.

vinllen avatar vinllen commented on May 18, 2024

twemproxy我记得只支持db 0的,这个你升级到2.0版本试试,我优化了这个driver

from redisshake.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.