diff --git a/src/sentinel.c b/src/sentinel.c index 9da7732a0..75030df78 100644 --- a/src/sentinel.c +++ b/src/sentinel.c @@ -2126,6 +2126,7 @@ void sentinelReconnectInstance(sentinelRedisInstance *ri) { /* Commands connection. */ if (link->cc == NULL) { link->cc = redisAsyncConnectBind(ri->addr->ip,ri->addr->port,NET_FIRST_BIND_ADDR); + if (!link->cc->err) anetCloexec(link->cc->c.fd); if (!link->cc->err && server.tls_replication && (instanceLinkNegotiateTLS(link->cc) == C_ERR)) { sentinelEvent(LL_DEBUG,"-cmd-link-reconnection",ri,"%@ #Failed to initialize TLS"); @@ -2135,7 +2136,6 @@ void sentinelReconnectInstance(sentinelRedisInstance *ri) { link->cc->errstr); instanceLinkCloseConnection(link,link->cc); } else { - anetCloexec(link->cc->c.fd); link->pending_commands = 0; link->cc_conn_time = mstime(); link->cc->data = link; @@ -2154,6 +2154,7 @@ void sentinelReconnectInstance(sentinelRedisInstance *ri) { /* Pub / Sub */ if ((ri->flags & (SRI_MASTER|SRI_SLAVE)) && link->pc == NULL) { link->pc = redisAsyncConnectBind(ri->addr->ip,ri->addr->port,NET_FIRST_BIND_ADDR); + if (!link->pc->err) anetCloexec(link->pc->c.fd); if (!link->pc->err && server.tls_replication && (instanceLinkNegotiateTLS(link->pc) == C_ERR)) { sentinelEvent(LL_DEBUG,"-pubsub-link-reconnection",ri,"%@ #Failed to initialize TLS"); @@ -2163,7 +2164,6 @@ void sentinelReconnectInstance(sentinelRedisInstance *ri) { instanceLinkCloseConnection(link,link->pc); } else { int retval; - anetCloexec(link->pc->c.fd); link->pc_conn_time = mstime(); link->pc->data = link; redisAeAttach(server.el,link->pc);