From cb8df5f8ac114d0b8729dd2a2d75495e44d29888 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Fri, 2 Sep 2022 13:23:17 +0100 Subject: [PATCH] ITS#9913 Protect code in clients_destroy and tier_destroy --- servers/lloadd/client.c | 2 ++ servers/lloadd/tier.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/servers/lloadd/client.c b/servers/lloadd/client.c index 086e067316..8faf4aafad 100644 --- a/servers/lloadd/client.c +++ b/servers/lloadd/client.c @@ -796,8 +796,10 @@ client_destroy( LloadConnection *c ) void clients_destroy( int gentle ) { + epoch_t epoch = epoch_join(); checked_lock( &clients_mutex ); connections_walk( &clients_mutex, &clients, lload_connection_close, &gentle ); checked_unlock( &clients_mutex ); + epoch_leave( epoch ); } diff --git a/servers/lloadd/tier.c b/servers/lloadd/tier.c index e8ea4e82eb..84ead03fff 100644 --- a/servers/lloadd/tier.c +++ b/servers/lloadd/tier.c @@ -67,8 +67,11 @@ tier_destroy( LloadTier *tier ) { while ( !LDAP_CIRCLEQ_EMPTY( &tier->t_backends ) ) { LloadBackend *b = LDAP_CIRCLEQ_FIRST( &tier->t_backends ); + epoch_t epoch = epoch_join(); lload_backend_destroy( b ); + + epoch_leave( epoch ); } #ifdef BALANCER_MODULE -- 2.47.3