Lines Matching refs:link
169 instanceLink *link; /* Link to the instance, may be shared for Sentinels. */ member
930 instanceLink *link = zmalloc(sizeof(*link)); in createInstanceLink() local
932 link->refcount = 1; in createInstanceLink()
933 link->disconnected = 1; in createInstanceLink()
934 link->pending_commands = 0; in createInstanceLink()
935 link->cc = NULL; in createInstanceLink()
936 link->pc = NULL; in createInstanceLink()
937 link->cc_conn_time = 0; in createInstanceLink()
938 link->pc_conn_time = 0; in createInstanceLink()
939 link->last_reconn_time = 0; in createInstanceLink()
940 link->pc_last_activity = 0; in createInstanceLink()
945 link->act_ping_time = mstime(); in createInstanceLink()
946 link->last_ping_time = 0; in createInstanceLink()
947 link->last_avail_time = mstime(); in createInstanceLink()
948 link->last_pong_time = mstime(); in createInstanceLink()
949 return link; in createInstanceLink()
953 void instanceLinkCloseConnection(instanceLink *link, redisAsyncContext *c) { in instanceLinkCloseConnection() argument
956 if (link->cc == c) { in instanceLinkCloseConnection()
957 link->cc = NULL; in instanceLinkCloseConnection()
958 link->pending_commands = 0; in instanceLinkCloseConnection()
960 if (link->pc == c) link->pc = NULL; in instanceLinkCloseConnection()
962 link->disconnected = 1; in instanceLinkCloseConnection()
974 instanceLink *releaseInstanceLink(instanceLink *link, sentinelRedisInstance *ri) in releaseInstanceLink() argument
976 serverAssert(link->refcount > 0); in releaseInstanceLink()
977 link->refcount--; in releaseInstanceLink()
978 if (link->refcount != 0) { in releaseInstanceLink()
979 if (ri && ri->link->cc) { in releaseInstanceLink()
986 redisCallbackList *callbacks = &link->cc->replies; in releaseInstanceLink()
997 return link; /* Other active users. */ in releaseInstanceLink()
1000 instanceLinkCloseConnection(link,link->cc); in releaseInstanceLink()
1001 instanceLinkCloseConnection(link,link->pc); in releaseInstanceLink()
1002 zfree(link); in releaseInstanceLink()
1024 if (ri->link->refcount > 1) return C_ERR; /* Already shared. */ in sentinelTryConnectionSharing()
1039 releaseInstanceLink(ri->link,NULL); in sentinelTryConnectionSharing()
1040 ri->link = match->link; in sentinelTryConnectionSharing()
1041 match->link->refcount++; in sentinelTryConnectionSharing()
1070 if (match->link->cc != NULL) in sentinelUpdateSentinelAddressInAllMasters()
1071 instanceLinkCloseConnection(match->link,match->link->cc); in sentinelUpdateSentinelAddressInAllMasters()
1072 if (match->link->pc != NULL) in sentinelUpdateSentinelAddressInAllMasters()
1073 instanceLinkCloseConnection(match->link,match->link->pc); in sentinelUpdateSentinelAddressInAllMasters()
1097 instanceLink *link = c->data; in instanceLinkConnectionError() local
1100 if (!link) return; in instanceLinkConnectionError()
1102 pubsub = (link->pc == c); in instanceLinkConnectionError()
1104 link->pc = NULL; in instanceLinkConnectionError()
1106 link->cc = NULL; in instanceLinkConnectionError()
1107 link->disconnected = 1; in instanceLinkConnectionError()
1188 ri->link = createInstanceLink(); in createSentinelRedisInstance()
1245 releaseInstanceLink(ri->link,ri); in releaseSentinelRedisInstance()
1406 instanceLinkCloseConnection(ri->link,ri->link->cc); in sentinelResetMaster()
1407 instanceLinkCloseConnection(ri->link,ri->link->pc); in sentinelResetMaster()
1421 ri->link->act_ping_time = mstime(); in sentinelResetMaster()
1422 ri->link->last_ping_time = 0; in sentinelResetMaster()
1423 ri->link->last_avail_time = mstime(); in sentinelResetMaster()
1424 ri->link->last_pong_time = mstime(); in sentinelResetMaster()
1879 auth_pass) == C_OK) ri->link->pending_commands++; in sentinelSendAuthIfNeeded()
1896 ri->link->pending_commands++; in sentinelSetClientName()
1904 if (ri->link->disconnected == 0) return; in sentinelReconnectInstance()
1906 instanceLink *link = ri->link; in sentinelReconnectInstance() local
1909 if (now - ri->link->last_reconn_time < SENTINEL_PING_PERIOD) return; in sentinelReconnectInstance()
1910 ri->link->last_reconn_time = now; in sentinelReconnectInstance()
1913 if (link->cc == NULL) { in sentinelReconnectInstance()
1914 link->cc = redisAsyncConnectBind(ri->addr->ip,ri->addr->port,NET_FIRST_BIND_ADDR); in sentinelReconnectInstance()
1915 if (link->cc->err) { in sentinelReconnectInstance()
1917 link->cc->errstr); in sentinelReconnectInstance()
1918 instanceLinkCloseConnection(link,link->cc); in sentinelReconnectInstance()
1920 link->pending_commands = 0; in sentinelReconnectInstance()
1921 link->cc_conn_time = mstime(); in sentinelReconnectInstance()
1922 link->cc->data = link; in sentinelReconnectInstance()
1923 redisAeAttach(server.el,link->cc); in sentinelReconnectInstance()
1924 redisAsyncSetConnectCallback(link->cc, in sentinelReconnectInstance()
1926 redisAsyncSetDisconnectCallback(link->cc, in sentinelReconnectInstance()
1928 sentinelSendAuthIfNeeded(ri,link->cc); in sentinelReconnectInstance()
1929 sentinelSetClientName(ri,link->cc,"cmd"); in sentinelReconnectInstance()
1936 if ((ri->flags & (SRI_MASTER|SRI_SLAVE)) && link->pc == NULL) { in sentinelReconnectInstance()
1937 link->pc = redisAsyncConnectBind(ri->addr->ip,ri->addr->port,NET_FIRST_BIND_ADDR); in sentinelReconnectInstance()
1938 if (link->pc->err) { in sentinelReconnectInstance()
1940 link->pc->errstr); in sentinelReconnectInstance()
1941 instanceLinkCloseConnection(link,link->pc); in sentinelReconnectInstance()
1945 link->pc_conn_time = mstime(); in sentinelReconnectInstance()
1946 link->pc->data = link; in sentinelReconnectInstance()
1947 redisAeAttach(server.el,link->pc); in sentinelReconnectInstance()
1948 redisAsyncSetConnectCallback(link->pc, in sentinelReconnectInstance()
1950 redisAsyncSetDisconnectCallback(link->pc, in sentinelReconnectInstance()
1952 sentinelSendAuthIfNeeded(ri,link->pc); in sentinelReconnectInstance()
1953 sentinelSetClientName(ri,link->pc,"pubsub"); in sentinelReconnectInstance()
1955 retval = redisAsyncCommand(link->pc, in sentinelReconnectInstance()
1961 instanceLinkCloseConnection(link,link->pc); in sentinelReconnectInstance()
1968 if (link->cc && (ri->flags & SRI_SENTINEL || link->pc)) in sentinelReconnectInstance()
1969 link->disconnected = 0; in sentinelReconnectInstance()
2242 instanceLink *link = c->data; in sentinelInfoReplyCallback() local
2245 if (!reply || !link) return; in sentinelInfoReplyCallback()
2246 link->pending_commands--; in sentinelInfoReplyCallback()
2256 instanceLink *link = c->data; in sentinelDiscardReplyCallback() local
2260 if (link) link->pending_commands--; in sentinelDiscardReplyCallback()
2265 instanceLink *link = c->data; in sentinelPingReplyCallback() local
2268 if (!reply || !link) return; in sentinelPingReplyCallback()
2269 link->pending_commands--; in sentinelPingReplyCallback()
2280 link->last_avail_time = mstime(); in sentinelPingReplyCallback()
2281 link->act_ping_time = 0; /* Flag the pong as received. */ in sentinelPingReplyCallback()
2289 if (redisAsyncCommand(ri->link->cc, in sentinelPingReplyCallback()
2292 ri->link->pending_commands++; in sentinelPingReplyCallback()
2297 link->last_pong_time = mstime(); in sentinelPingReplyCallback()
2304 instanceLink *link = c->data; in sentinelPublishReplyCallback() local
2307 if (!reply || !link) return; in sentinelPublishReplyCallback()
2308 link->pending_commands--; in sentinelPublishReplyCallback()
2437 ri->link->pc_last_activity = mstime(); in sentinelReceiveHelloMessages()
2474 if (ri->link->disconnected) return C_ERR; in sentinelSendHello()
2481 if (anetSockName(ri->link->cc->c.fd,ip,sizeof(ip),NULL) == -1) in sentinelSendHello()
2497 retval = redisAsyncCommand(ri->link->cc, in sentinelSendHello()
2501 ri->link->pending_commands++; in sentinelSendHello()
2543 int retval = redisAsyncCommand(ri->link->cc, in sentinelSendPing()
2546 ri->link->pending_commands++; in sentinelSendPing()
2547 ri->link->last_ping_time = mstime(); in sentinelSendPing()
2551 if (ri->link->act_ping_time == 0) in sentinelSendPing()
2552 ri->link->act_ping_time = ri->link->last_ping_time; in sentinelSendPing()
2568 if (ri->link->disconnected) return; in sentinelSendPeriodicCommands()
2576 if (ri->link->pending_commands >= in sentinelSendPeriodicCommands()
2577 SENTINEL_MAX_PENDING_COMMANDS * ri->link->refcount) return; in sentinelSendPeriodicCommands()
2607 retval = redisAsyncCommand(ri->link->cc, in sentinelSendPeriodicCommands()
2609 if (retval == C_OK) ri->link->pending_commands++; in sentinelSendPeriodicCommands()
2610 } else if ((now - ri->link->last_pong_time) > ping_period && in sentinelSendPeriodicCommands()
2611 (now - ri->link->last_ping_time) > ping_period/2) { in sentinelSendPeriodicCommands()
2665 if (ri->link->disconnected) flags = sdscat(flags,"disconnected,"); in addReplySentinelRedisInstance()
2680 addReplyBulkLongLong(c,ri->link->pending_commands); in addReplySentinelRedisInstance()
2684 addReplyBulkLongLong(c,ri->link->refcount); in addReplySentinelRedisInstance()
2695 ri->link->act_ping_time ? (mstime() - ri->link->act_ping_time) : 0); in addReplySentinelRedisInstance()
2699 addReplyBulkLongLong(c,mstime() - ri->link->last_avail_time); in addReplySentinelRedisInstance()
2703 addReplyBulkLongLong(c,mstime() - ri->link->last_pong_time); in addReplySentinelRedisInstance()
3402 if (ri->link->act_ping_time) in sentinelCheckSubjectivelyDown()
3403 elapsed = mstime() - ri->link->act_ping_time; in sentinelCheckSubjectivelyDown()
3404 else if (ri->link->disconnected) in sentinelCheckSubjectivelyDown()
3405 elapsed = mstime() - ri->link->last_avail_time; in sentinelCheckSubjectivelyDown()
3413 if (ri->link->cc && in sentinelCheckSubjectivelyDown()
3414 (mstime() - ri->link->cc_conn_time) > in sentinelCheckSubjectivelyDown()
3416 ri->link->act_ping_time != 0 && /* Ther is a pending ping... */ in sentinelCheckSubjectivelyDown()
3419 (mstime() - ri->link->act_ping_time) > (ri->down_after_period/2) && in sentinelCheckSubjectivelyDown()
3420 (mstime() - ri->link->last_pong_time) > (ri->down_after_period/2)) in sentinelCheckSubjectivelyDown()
3422 instanceLinkCloseConnection(ri->link,ri->link->cc); in sentinelCheckSubjectivelyDown()
3430 if (ri->link->pc && in sentinelCheckSubjectivelyDown()
3431 (mstime() - ri->link->pc_conn_time) > in sentinelCheckSubjectivelyDown()
3433 (mstime() - ri->link->pc_last_activity) > (SENTINEL_PUBLISH_PERIOD*3)) in sentinelCheckSubjectivelyDown()
3435 instanceLinkCloseConnection(ri->link,ri->link->pc); in sentinelCheckSubjectivelyDown()
3510 instanceLink *link = c->data; in sentinelReceiveIsMasterDownReply() local
3513 if (!reply || !link) return; in sentinelReceiveIsMasterDownReply()
3514 link->pending_commands--; in sentinelReceiveIsMasterDownReply()
3575 if (ri->link->disconnected) continue; in sentinelAskMasterStateToOtherSentinels()
3582 retval = redisAsyncCommand(ri->link->cc, in sentinelAskMasterStateToOtherSentinels()
3589 if (retval == C_OK) ri->link->pending_commands++; in sentinelAskMasterStateToOtherSentinels()
3762 retval = redisAsyncCommand(ri->link->cc, in sentinelSendSlaveOf()
3765 ri->link->pending_commands++; in sentinelSendSlaveOf()
3767 retval = redisAsyncCommand(ri->link->cc, in sentinelSendSlaveOf()
3770 ri->link->pending_commands++; in sentinelSendSlaveOf()
3772 retval = redisAsyncCommand(ri->link->cc, in sentinelSendSlaveOf()
3775 ri->link->pending_commands++; in sentinelSendSlaveOf()
3782 retval = redisAsyncCommand(ri->link->cc, in sentinelSendSlaveOf()
3785 ri->link->pending_commands++; in sentinelSendSlaveOf()
3787 retval = redisAsyncCommand(ri->link->cc, in sentinelSendSlaveOf()
3790 ri->link->pending_commands++; in sentinelSendSlaveOf()
3929 if (slave->link->disconnected) continue; in sentinelSelectSlave()
3930 if (mstime() - slave->link->last_avail_time > SENTINEL_PING_PERIOD*5) continue; in sentinelSelectSlave()
4013 if (ri->promoted_slave->link->disconnected) { in sentinelFailoverSendSlaveOfNoOne()
4093 if (slave->link->disconnected) continue; in sentinelFailoverDetectEnd()
4149 if (slave->link->disconnected) continue; in sentinelFailoverReconfNextSlave()