From fb917bf10b4783d5c669e81a5be1f902ca48cb84 Mon Sep 17 00:00:00 2001 From: Mohit Agrawal Date: Fri, 23 Nov 2018 09:39:43 +0530 Subject: [geo-rep]: Worker still ACTIVE after killing bricks Problem: In changelog xlator after destroying listener it call's unlink to delete changelog socket file but socket file reference is not cleaned up from process memory Solution: 1) To cleanup reference completely from process memory serialize transport cleanup for changelog and then unlink socket file 2) Brick xlator will notify GF_EVENT_PARENT_DOWN to next xlator only after cleanup all xprts Test: To test the same run below steps 1) Setup some volume and enable brick mux 2) kill anyone brick with gf_attach 3) check changelog socket for specific to killed brick in lsof, it should cleanup completely fixes: bz#1600145 Change-Id: Iba06cbf77d8a87b34a60fce50f6d8c0d427fa491 Signed-off-by: Mohit Agrawal --- libglusterfs/src/xlator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index b50848b3476..13213d55994 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -1036,7 +1036,7 @@ xlator_mem_free(xlator_t *xl) static void xlator_call_fini(xlator_t *this) { - if (!this || this->cleanup_starting) + if (!this || this->call_cleanup) return; this->cleanup_starting = 1; this->call_cleanup = 1; -- cgit