Fix for replicaiton with over 2GB dump file initial SYNC stage

This commit is contained in:
antirez 2010-03-06 12:08:22 +01:00
parent 978c2c944c
commit 18e61fa2ff

View File

@ -6787,7 +6787,7 @@ static void updateSlavesWaitingBgsave(int bgsaveerr) {
static int syncWithMaster(void) { static int syncWithMaster(void) {
char buf[1024], tmpfile[256], authcmd[1024]; char buf[1024], tmpfile[256], authcmd[1024];
int dumpsize; long dumpsize;
int fd = anetTcpConnect(NULL,server.masterhost,server.masterport); int fd = anetTcpConnect(NULL,server.masterhost,server.masterport);
int dfd; int dfd;
@ -6839,8 +6839,8 @@ static int syncWithMaster(void) {
redisLog(REDIS_WARNING,"Bad protocol from MASTER, the first byte is not '$', are you sure the host and port are right?"); redisLog(REDIS_WARNING,"Bad protocol from MASTER, the first byte is not '$', are you sure the host and port are right?");
return REDIS_ERR; return REDIS_ERR;
} }
dumpsize = atoi(buf+1); dumpsize = strtol(buf+1,NULL,10);
redisLog(REDIS_NOTICE,"Receiving %d bytes data dump from MASTER",dumpsize); redisLog(REDIS_NOTICE,"Receiving %ld bytes data dump from MASTER",dumpsize);
/* Read the bulk write data on a temp file */ /* Read the bulk write data on a temp file */
snprintf(tmpfile,256,"temp-%d.%ld.rdb",(int)time(NULL),(long int)random()); snprintf(tmpfile,256,"temp-%d.%ld.rdb",(int)time(NULL),(long int)random());
dfd = open(tmpfile,O_CREAT|O_WRONLY,0644); dfd = open(tmpfile,O_CREAT|O_WRONLY,0644);