glusterd: To find a compatible brick ignore diagnostics.brick-log-level option
Problem: glusterd start a volume as a separate process instead of attaching with the already running process if volume option has different brick-log-level. There is no functionality impact on a brick if the option has different brick-log-level so glusterd should attach a brick with the already running process. Solution: Ignore brick-log-level option in unsafe_option BUG: 1599628 Change-Id: I72638ff2026fcd9332bc38e1144b1ef4a708820b fixes: bz#1599628 Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
This commit is contained in:
parent
e8cf52f510
commit
1718f9c6cb
@ -15,6 +15,11 @@ function count_processes {
|
||||
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
|
||||
@ -25,6 +30,9 @@ push_trapfunc "cleanup"
|
||||
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
|
||||
@ -34,6 +42,7 @@ TEST $CLI volume start $V1
|
||||
# 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
|
||||
|
@ -2330,6 +2330,10 @@ unsafe_option (dict_t *this, char *key, data_t *value, void *arg)
|
||||
return _gf_false;
|
||||
}
|
||||
|
||||
if (fnmatch ("*diagnostics.brick-log*", key, 0) == 0) {
|
||||
return _gf_false;
|
||||
}
|
||||
|
||||
return _gf_true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user