mirror of
https://github.com/gluster/glusterfs.git
synced 2026-02-06 09:48:44 +01:00
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>
53 lines
1.6 KiB
Bash
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; |