Commit d1e23e04 authored by antirez's avatar antirez
Browse files

Revert "avoid using sendfile if tls-replication is enabled"

This reverts commit b9abecfc.
parent bdd54117
...@@ -1067,46 +1067,39 @@ void sendBulkToSlave(connection *conn) { ...@@ -1067,46 +1067,39 @@ void sendBulkToSlave(connection *conn) {
} }
} }
/* If the preamble was already transferred, send the RDB bulk data. /* If the preamble was already transferred, send the RDB bulk data. */
* try to use sendfile system call if supported, unless tls is enabled.
* fallback to normal read+write otherwise. */
nwritten = 0;
#if HAVE_SENDFILE #if HAVE_SENDFILE
if (!server.tls_replication) { if ((nwritten = redis_sendfile(conn->fd,slave->repldbfd,
if ((nwritten = redis_sendfile(conn->fd,slave->repldbfd, slave->repldboff,PROTO_IOBUF_LEN)) == -1)
slave->repldboff,PROTO_IOBUF_LEN)) == -1) {
{ if (errno != EAGAIN) {
if (errno != EAGAIN) { serverLog(LL_WARNING,"Sendfile error sending DB to replica: %s",
serverLog(LL_WARNING,"Sendfile error sending DB to replica: %s", strerror(errno));
strerror(errno)); freeClient(slave);
freeClient(slave);
}
return;
} }
return;
} }
#endif #else
if (!nwritten) { ssize_t buflen;
ssize_t buflen; char buf[PROTO_IOBUF_LEN];
char buf[PROTO_IOBUF_LEN];
lseek(slave->repldbfd,slave->repldboff,SEEK_SET);
lseek(slave->repldbfd,slave->repldboff,SEEK_SET); buflen = read(slave->repldbfd,buf,PROTO_IOBUF_LEN);
buflen = read(slave->repldbfd,buf,PROTO_IOBUF_LEN); if (buflen <= 0) {
if (buflen <= 0) { serverLog(LL_WARNING,"Read error sending DB to replica: %s",
serverLog(LL_WARNING,"Read error sending DB to replica: %s", (buflen == 0) ? "premature EOF" : strerror(errno));
(buflen == 0) ? "premature EOF" : strerror(errno)); freeClient(slave);
return;
}
if ((nwritten = connWrite(conn,buf,buflen)) == -1) {
if (connGetState(conn) != CONN_STATE_CONNECTED) {
serverLog(LL_WARNING,"Write error sending DB to replica: %s",
connGetLastError(conn));
freeClient(slave); freeClient(slave);
return;
}
if ((nwritten = connWrite(conn,buf,buflen)) == -1) {
if (connGetState(conn) != CONN_STATE_CONNECTED) {
serverLog(LL_WARNING,"Write error sending DB to replica: %s",
connGetLastError(conn));
freeClient(slave);
}
return;
} }
return;
} }
#endif
slave->repldboff += nwritten; slave->repldboff += nwritten;
server.stat_net_output_bytes += nwritten; server.stat_net_output_bytes += nwritten;
if (slave->repldboff == slave->repldbsize) { if (slave->repldboff == slave->repldbsize) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment