diff options
| -rw-r--r-- | libglusterfs/src/common-utils.c | 4 | ||||
| -rwxr-xr-x | tests/bugs/glusterd/quorum-value-check.t | 35 | 
2 files changed, 37 insertions, 2 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index b6e4fbecf8a..b8c3e2de126 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -1972,7 +1972,7 @@ gf_unlockfd(int fd)  }  static void -compute_checksum(char *buf, size_t size, uint32_t *checksum) +compute_checksum(char *buf, const ssize_t size, uint32_t *checksum)  {      int ret = -1;      char *checksum_buf = NULL; @@ -2015,7 +2015,7 @@ get_checksum_for_file(int fd, uint32_t *checksum)      do {          ret = sys_read(fd, &buf, GF_CHECKSUM_BUF_SIZE);          if (ret > 0) -            compute_checksum(buf, GF_CHECKSUM_BUF_SIZE, checksum); +            compute_checksum(buf, ret, checksum);      } while (ret > 0);      /* set it back */ 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;  | 
