Clear retry_timeout when the client is destroyed

This commit is contained in:
Vitaliy Filippov
2025-01-01 10:58:22 +03:00
parent b46d5db115
commit d0396267d0
2 changed files with 9 additions and 3 deletions
+8 -2
View File
@@ -67,6 +67,12 @@ cluster_client_t::cluster_client_t(ring_loop_t *ringloop, timerfd_manager_t *tfd
cluster_client_t::~cluster_client_t()
{
if (retry_timeout_id >= 0)
{
tfd->clear_timer(retry_timeout_id);
retry_timeout_duration = 0;
retry_timeout_id = -1;
}
msgr.repeer_pgs = [](osd_num_t){};
if (ringloop)
{
@@ -314,7 +320,7 @@ void cluster_client_t::reset_retry_timer(int new_duration)
{
return;
}
if (retry_timeout_id)
if (retry_timeout_id >= 0)
{
tfd->clear_timer(retry_timeout_id);
}
@@ -322,7 +328,7 @@ void cluster_client_t::reset_retry_timer(int new_duration)
retry_timeout_id = tfd->set_timer(retry_timeout_duration, false, [this](int)
{
int time_passed = retry_timeout_duration;
retry_timeout_id = 0;
retry_timeout_id = -1;
retry_timeout_duration = 0;
continue_ops(time_passed);
});
+1 -1
View File
@@ -97,7 +97,7 @@ class cluster_client_t
int client_eio_retry_interval = 1000; // ms
bool client_retry_enospc = true;
int retry_timeout_id = 0;
int retry_timeout_id = -1;
int retry_timeout_duration = 0;
std::vector<cluster_op_t*> offline_ops;
cluster_op_t *op_queue_head = NULL, *op_queue_tail = NULL;