Fixed a subtle VM bug... was not flushing the buffer so the child process read truncated data

This commit is contained in:
antirez 2010-03-02 00:52:50 +01:00
parent a3f9eec291
commit ba76a8f901

View File

@ -7416,6 +7416,7 @@ static int vmWriteObjectOnSwap(robj *o, off_t page) {
return REDIS_ERR; return REDIS_ERR;
} }
rdbSaveObject(server.vm_fp,o); rdbSaveObject(server.vm_fp,o);
fflush(server.vm_fp);
if (server.vm_enabled) pthread_mutex_unlock(&server.io_swapfile_mutex); if (server.vm_enabled) pthread_mutex_unlock(&server.io_swapfile_mutex);
return REDIS_OK; return REDIS_OK;
} }
@ -7443,7 +7444,6 @@ static int vmSwapObjectBlocking(robj *key, robj *val) {
(unsigned long long) page, (unsigned long long) pages); (unsigned long long) page, (unsigned long long) pages);
server.vm_stats_swapped_objects++; server.vm_stats_swapped_objects++;
server.vm_stats_swapouts++; server.vm_stats_swapouts++;
fflush(server.vm_fp);
return REDIS_OK; return REDIS_OK;
} }