From c8357d7ea049516b8e45d3d364246730f39363a0 Mon Sep 17 00:00:00 2001 From: Varsha Rao Date: Mon, 4 Feb 2019 16:57:30 +0530 Subject: libglusterfs/common-utils.c: Fix buffer size for checksum computation Problem: When quorum count option is updated, the change is not reflected in the nfs-server.vol file. This is because in get_checksum_for_file(), when the last part of the file read has size less than buffer size, the read buffer stores old data value along with correct data value. Solution: Pass the bytes read instead of fixed buffer size, for calculating checksum. Change-Id: I4b641607c8a262961b3f3da0028a54e08c3f8589 fixes: bz#1672248 Signed-off-by: Varsha Rao --- tests/bugs/glusterd/quorum-value-check.t | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tests/bugs/glusterd/quorum-value-check.t (limited to 'tests') diff --git a/tests/bugs/glusterd/quorum-value-check.t b/tests/bugs/glusterd/quorum-value-check.t new file mode 100755 index 00000000000..aaf636274b6 --- /dev/null +++ b/tests/bugs/glusterd/quorum-value-check.t @@ -0,0 +1,35 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +function check_quorum_nfs() { + local qnfs="$(less /var/lib/glusterd/nfs/nfs-server.vol | grep "quorum-count"| awk '{print $3}')" + local qinfo="$($CLI volume info $V0| grep "cluster.quorum-count"| awk '{print $2}')" + + if [ $qnfs = $qinfo ]; then + echo "Y" + else + echo "N" + fi +} + +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2} +TEST $CLI volume set $V0 nfs.disable off +TEST $CLI volume set $V0 performance.write-behind off +TEST $CLI volume set $V0 cluster.self-heal-daemon off +TEST $CLI volume set $V0 cluster.quorum-type fixed +TEST $CLI volume start $V0 + +TEST $CLI volume set $V0 cluster.quorum-count 1 +EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "Y" check_quorum_nfs +TEST $CLI volume set $V0 cluster.quorum-count 2 +EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "Y" check_quorum_nfs +TEST $CLI volume set $V0 cluster.quorum-count 3 +EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "Y" check_quorum_nfs + +cleanup; -- cgit