diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2013-04-15 22:07:21 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-04-16 10:42:51 -0700 |
commit | dcebed550ebfc878b0b3bd02ab7fe15db6764f81 (patch) | |
tree | 2387f207399a9d3b430a492fdce173d17b92d714 /xlators/mgmt/glusterd/src/glusterd-sm.h | |
parent | 9eb8fc771b32c0601969537ad7135edd89e49cf9 (diff) |
glusterd: Avoided deadlock in single node cluster, glusterd restart
In a single node cluster, it is possible to deadlock on the "big
lock", while restarting bricks. In glusterd_restart_bricks, we perform a
glusterd_brick_connect, where we release the big lock in anticipation
that glusterd_brick_rpc_notify could run in the same C stack (and
deadlocking). So, in the restart code path, we could unlock before we
have performed a lock on the big lock.
To fix this, we need to take the big lock in the
glusterd_launch_synctask 'thread' as well.
Change-Id: I1abea1ca82b55c784b8a810a8194f254b32b1dcc
BUG: 948686
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/4837
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-sm.h')
0 files changed, 0 insertions, 0 deletions