diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2013-12-23 14:08:00 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-12-23 06:58:28 -0800 |
commit | b546d4fb59230eb0bba102496bca53bb0a5c86f9 (patch) | |
tree | f2bdc12b85c599f4834db1590837a49bd62d1625 /xlators/mgmt/glusterd/src/glusterd-handshake.c | |
parent | 8c4e79c446fdfea00c1589a625ba1f1a63fdecc5 (diff) |
glusterd: Fix stopping of stale rebalance processes
Backport of http://review.gluster.org/6531
Trying to stop rebalance process via RPC using the GD_SYNCOP macro,
could lead to glusterd crashing. In case of an implicit volume update,
which happens when a peer comes back up, the stop function would be
called in the epoll thread. This would lead to glusterd crashing as the
epoll thread doesn't have synctasks for the GD_SYNCOP macro to make use
of.
Instead of using the RPC method, we now terminate the rebalance process
by kill(). The rebalance process has been designed to be resistant to
interruption, so this will not lead to any data corruption.
Also, when checking for stale rebalance task, make sure that the old
task-id is not null.
Change-Id: I54dd93803954ee55316cc58b5877f38d1ebc40b9
BUG: 1044327
Signed-off-by: Kaushal M <kaushal@redhat.com>
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/6567
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-handshake.c')
0 files changed, 0 insertions, 0 deletions