MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / sentinelResetMaster

Function sentinelResetMaster

src/sentinel.cpp:1569–1600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1567
1568#define SENTINEL_RESET_NO_SENTINELS (1<<0)
1569void sentinelResetMaster(sentinelRedisInstance *ri, int flags) {
1570 serverAssert(ri->flags & SRI_MASTER);
1571 dictRelease(ri->slaves);
1572 ri->slaves = dictCreate(&instancesDictType,NULL);
1573 if (!(flags & SENTINEL_RESET_NO_SENTINELS)) {
1574 dictRelease(ri->sentinels);
1575 ri->sentinels = dictCreate(&instancesDictType,NULL);
1576 }
1577 instanceLinkCloseConnection(ri->link,ri->link->cc);
1578 instanceLinkCloseConnection(ri->link,ri->link->pc);
1579 ri->flags &= SRI_MASTER;
1580 if (ri->leader) {
1581 sdsfree(ri->leader);
1582 ri->leader = NULL;
1583 }
1584 ri->failover_state = SENTINEL_FAILOVER_STATE_NONE;
1585 ri->failover_state_change_time = 0;
1586 ri->failover_start_time = 0; /* We can failover again ASAP. */
1587 ri->promoted_slave = NULL;
1588 sdsfree(ri->runid);
1589 sdsfree(ri->slave_master_host);
1590 ri->runid = NULL;
1591 ri->slave_master_host = NULL;
1592 ri->link->act_ping_time = mstime();
1593 ri->link->last_ping_time = 0;
1594 ri->link->last_avail_time = mstime();
1595 ri->link->last_pong_time = mstime();
1596 ri->role_reported_time = mstime();
1597 ri->role_reported = SRI_MASTER;
1598 if (flags & SENTINEL_GENERATE_EVENT)
1599 sentinelEvent(LL_WARNING,"+reset-master",ri,"%@");
1600}
1601
1602/* Call sentinelResetMaster() on every master with a name matching the specified
1603 * pattern. */

Calls 6

sdsfreeFunction · 0.85
sentinelEventFunction · 0.85
dictReleaseFunction · 0.70
dictCreateFunction · 0.70
mstimeFunction · 0.70

Tested by

no test coverage detected