diff options
author | Mohammed Rafi KC <rkavunga@redhat.com> | 2019-05-21 17:15:07 +0530 |
---|---|---|
committer | Mohammed Rafi KC <rkavunga@redhat.com> | 2019-05-21 18:27:39 +0530 |
commit | 43ade7abac6c1d648ef337ace92194d36c8894a4 (patch) | |
tree | 11b797cb5991bee09641ea5c1e6b8ef34f0a6cf6 /libglusterfs/src/glusterfs | |
parent | 72a83c71cc506e3a4d775b622717052c93f5242f (diff) |
ec/fini: Fix race with ec_fini and ec_notify
During a graph cleanup, we first sent a PARENT_DOWN and wait for
a child down to ultimately free the xlator and the graph.
In the ec xlator, we cleanup the threads when we get a PARENT_DOWN event.
But a racing event like CHILD_UP or event xl_op may trigger healing threads
after threads cleanup.
So there is a chance that the threads might access a freed private variabe
Change-Id: I252d10181bb67b95900c903d479de707a8489532
fixes: bz#1703948
Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
Diffstat (limited to 'libglusterfs/src/glusterfs')
-rw-r--r-- | libglusterfs/src/glusterfs/xlator.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libglusterfs/src/glusterfs/xlator.h b/libglusterfs/src/glusterfs/xlator.h index b7d0249c9c8..1a0ed99774b 100644 --- a/libglusterfs/src/glusterfs/xlator.h +++ b/libglusterfs/src/glusterfs/xlator.h @@ -1092,4 +1092,7 @@ gluster_graph_take_reference(xlator_t *tree); gf_boolean_t mgmt_is_multiplexed_daemon(char *name); + +gf_boolean_t +xlator_is_cleanup_starting(xlator_t *this); #endif /* _XLATOR_H */ |