dcebed550e
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> |
||
---|---|---|
.. | ||
basic | ||
bugs | ||
performance | ||
utils | ||
cluster.rc | ||
dht.rc | ||
fileio.rc | ||
include.rc | ||
README | ||
volume.rc |
How to use test script framework. ================================= - Build and install the version of glusterfs with your changes. Make sure the installed version is accessible from $PATH. - To mount glusterfs, NEVER use 'mount -t glusterfs', instead use 'glusterfs -s ' method. This is because with the patch build setup doesnot install the /sbin/mount.glusterfs necessary, where as the glusterfs binary will be accessible with $PATH, and will pick the right version. - (optional) Set environment variables to specify location of export directories and mount points. Unless you have special requirements, the defaults should just work. The variables themselves can be found at the top of tests/include.rc. All of them can be overriden with environment variables. - Execute run-tests.sh in the top level directory as root. - If some test cases fail, you can execute the failed test case script directly bypassing run-tests.sh. At this time it might be useful to set the envrionment variable DEBUG=1 before running the individual test script directly by hand. - BE WARNED THAT THE TEST CASES DELETE /var/lib/glusterd/* !!!