diff options
| author | Mohit Agrawal <moagrawal@redhat.com> | 2019-05-17 18:10:47 +0530 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2019-05-27 14:58:45 +0000 | 
| commit | 4a5fb52eb1c5387a0fb8bfa1253e5227c7c255e8 (patch) | |
| tree | 3b869c4d7b73fac6095bcea83778539391d0c5da | |
| parent | a9d76758454bf7d9a8a3f70fc47b732bb9f97d9e (diff) | |
glusterd: bulkvoldict thread is not handling all volumes
Problem: In commit ac70f66c5805e10b3a1072bd467918730c0aeeb4 I
         missed one condition to populate volume dictionary in
         multiple threads while brick_multiplex is enabled.Due
         to that glusterd is not sending volume dictionary for
         all volumes to peer.
Solution: Update the condition in code as well as update test case
          also to avoid the issue
Change-Id: I06522dbdfee4f7e995d9cc7b7098fdf35340dc52
fixes: bz#1711250
Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
| -rw-r--r-- | tests/bugs/glusterd/bug-1699339.t | 16 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 2 | 
2 files changed, 11 insertions, 7 deletions
diff --git a/tests/bugs/glusterd/bug-1699339.t b/tests/bugs/glusterd/bug-1699339.t index 3e950f48432..bb8d4f46eb8 100644 --- a/tests/bugs/glusterd/bug-1699339.t +++ b/tests/bugs/glusterd/bug-1699339.t @@ -52,18 +52,22 @@ done  TEST kill_glusterd 1 -vol1=$(printf "%s-vol%02d" $V0 1) +TESTS_EXPECTED_IN_LOOP=4 +for i in `seq 1 3 15` +do +vol1=$(printf "%s-vol%02d" $V0 $i)  TEST $CLI_2 volume set $vol1 performance.readdir-ahead on -vol2=$(printf "%s-vol%02d" $V0 2) -TEST $CLI_2 volume set $vol2 performance.readdir-ahead on +done  # Bring back 1st glusterd  TEST $glusterd_1  EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count +TESTS_EXPECTED_IN_LOOP=4 +for i in `seq 1 3 15` +do +vol1=$(printf "%s-vol%02d" $V0 $i)  EXPECT_WITHIN $PROBE_TIMEOUT "on" volinfo_field_1 $vol1 performance.readdir-ahead - -vol_name=$(printf "%s-vol%02d" $V0 2) -EXPECT_WITHIN $PROBE_TIMEOUT "on" volinfo_field_1 $vol2 performance.readdir-ahead +done  cleanup diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index a1a45e97502..c919be3270b 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -3281,7 +3281,7 @@ glusterd_add_volumes_to_export_dict(dict_t **peer_data)              if ((i + 1) != totthread) {                  arg->end = ((i + 1) * vol_per_thread_limit);              } else { -                arg->end = ((i * vol_per_thread_limit) + endindex); +                arg->end = (((i + 1) * vol_per_thread_limit) + endindex);              }              th_ret = gf_thread_create_detached(                  &th_id, glusterd_add_bulk_volumes_create_thread, arg,  | 
