1
0
mirror of https://github.com/gluster/glusterfs.git synced 2026-02-06 09:48:44 +01:00
Files
glusterfs/tests/basic/mpx-compat.t
ShyamsundarR 2916ed826d tests: Fix cleanup routine for some mux tests
Some of the mux tests, set a trap to catch test exit and
call cleanup. This will cause cleanup to be invoked twice
in case the test times out, or even otherwise, as include.rc
also sets a trap to cleanup on exit (TERM and others).

This leads to the tarballs generated on failures for these
tests to be empty and does not aid debugging.

This patch corrects this pattern across the tests to the
more standard cleanup at the end.

Fixes: bz#1615037
Change-Id: Ib83aeb09fac2aa591b390b9fb9e1f605bfef9a8b
Signed-off-by: ShyamsundarR <srangana@redhat.com>
2018-08-11 13:21:36 -04:00

53 lines
1.6 KiB
Bash

#!/bin/bash
#This test tests that self-heals don't perform fsync when durability is turned
#off
. $(dirname $0)/../include.rc
. $(dirname $0)/../traps.rc
. $(dirname $0)/../volume.rc
function count_processes {
# It would generally be a good idea to use "pgrep -x" to ensure an
# exact match, but the version of pgrep we have on NetBSD (a.k.a.
# the worst operating system ever) doesn't support that option.
# Fortunately, "glusterfsd" isn't the prefix of any other name,
# so this works anyway. For now.
pgrep glusterfsd | wc -w
}
function count_brick_pids {
$CLI --xml volume status all | sed -n '/.*<pid>\([^<]*\).*/s//\1/p' \
| grep -v "N/A" | sort | uniq | wc -l
}
cleanup
TEST glusterd
TEST $CLI volume set all cluster.brick-multiplex yes
# Create two vanilla volumes.
TEST $CLI volume create $V0 $H0:$B0/brick-${V0}-{0,1}
TEST $CLI volume create $V1 $H0:$B0/brick-${V1}-{0,1}
# Enable brick log-level to DEBUG
gluster v set $V0 diagnostics.brick-log-level DEBUG
# Start both.
TEST $CLI volume start $V0
TEST $CLI volume start $V1
# There should be only one process for compatible volumes. We can't use
# EXPECT_WITHIN here because it could transiently see one process as two are
# coming up, and yield a false positive.
sleep $PROCESS_UP_TIMEOUT
EXPECT "1" count_processes
EXPECT 1 count_brick_pids
# Make the second volume incompatible with the first.
TEST $CLI volume stop $V1
TEST $CLI volume set $V1 server.manage-gids no
TEST $CLI volume start $V1
# There should be two processes this time (can't share protocol/server).
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "2" count_processes
cleanup;