for example, if the node is 127.0.0.1 and port is 7003, and it's a master, then exec the command: redis-cli -p 7003 migrate 127.0.0.1 7003 test 0 1000 replace you'll always get the error (error) IOERR error or timeout reading from target node
cause execute the command, the syncRead will block the current process, and the restore command will not get executed in the migrateCommand context.
So, I think the migrate should got stricted.
Comment From: Zectbumo
I'm also having this problem even if I'm copying to a different database number.
$ redis-cli --scan | xargs redis-cli migrate localhost 6379 '' 1 5000 copy keys
(error) IOERR error or timeout reading to target instance
Note: It seems that this command was able to successfully copy all the keys even though there was a timeout error.
Comment From: egoarka
I'm experiencing the same behavior with the localhost.
Comment From: madolson
Seems a bit like this will be solved by https://github.com/redis/redis/issues/6599 so just making the reference.
Comment From: fabn
Same here, maybe is worth to add into relevant doc that migrate will raise that error when run against same redis instance.