Merge pull request #7328 from oranagra/daily_tls_test
avoid using sendfile if tls-replication is enabled
This commit is contained in:
commit
caf7c50408
15
.github/workflows/daily.yml
vendored
15
.github/workflows/daily.yml
vendored
@ -49,6 +49,21 @@ jobs:
|
|||||||
- name: module api test
|
- name: module api test
|
||||||
run: ./runtest-moduleapi --verbose
|
run: ./runtest-moduleapi --verbose
|
||||||
|
|
||||||
|
test-tls:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: make
|
||||||
|
run: |
|
||||||
|
make BUILD_TLS=yes
|
||||||
|
- name: test
|
||||||
|
run: |
|
||||||
|
sudo apt-get install tcl8.5 tcl-tls
|
||||||
|
./utils/gen-test-certs.sh
|
||||||
|
./runtest --accurate --verbose --tls
|
||||||
|
- name: module api test
|
||||||
|
run: ./runtest-moduleapi --verbose --tls
|
||||||
|
|
||||||
test-valgrind:
|
test-valgrind:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 14400
|
timeout-minutes: 14400
|
||||||
|
@ -1032,39 +1032,46 @@ 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 ((nwritten = redis_sendfile(conn->fd,slave->repldbfd,
|
if (!server.tls_replication) {
|
||||||
slave->repldboff,PROTO_IOBUF_LEN)) == -1)
|
if ((nwritten = redis_sendfile(conn->fd,slave->repldbfd,
|
||||||
{
|
slave->repldboff,PROTO_IOBUF_LEN)) == -1)
|
||||||
if (errno != EAGAIN) {
|
{
|
||||||
serverLog(LL_WARNING,"Sendfile error sending DB to replica: %s",
|
if (errno != EAGAIN) {
|
||||||
strerror(errno));
|
serverLog(LL_WARNING,"Sendfile error sending DB to replica: %s",
|
||||||
freeClient(slave);
|
strerror(errno));
|
||||||
|
freeClient(slave);
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
ssize_t buflen;
|
|
||||||
char buf[PROTO_IOBUF_LEN];
|
|
||||||
|
|
||||||
lseek(slave->repldbfd,slave->repldboff,SEEK_SET);
|
|
||||||
buflen = read(slave->repldbfd,buf,PROTO_IOBUF_LEN);
|
|
||||||
if (buflen <= 0) {
|
|
||||||
serverLog(LL_WARNING,"Read error sending DB to replica: %s",
|
|
||||||
(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);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (!nwritten) {
|
||||||
|
ssize_t buflen;
|
||||||
|
char buf[PROTO_IOBUF_LEN];
|
||||||
|
|
||||||
|
lseek(slave->repldbfd,slave->repldboff,SEEK_SET);
|
||||||
|
buflen = read(slave->repldbfd,buf,PROTO_IOBUF_LEN);
|
||||||
|
if (buflen <= 0) {
|
||||||
|
serverLog(LL_WARNING,"Read error sending DB to replica: %s",
|
||||||
|
(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);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user