Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
test 26a was not working since commit https://review.whamcloud.com/46841 because of this change:
- check_clients_evicted $before ${oscs[@]}
+ check_clients_evicted "$before ${oscs[@]}"
so now the oscs list is just considered as part of before and check_clients_evicted() just exist without any real check.
Moreover test itself is not correct, it assumes wrongly that eviction on client would be noticed during sleep:
do_facet client $LCTL set_param fail_loc=0x505
local before=$(date +%s) <-- start of tracking
local rc=0
sleep $((TIMEOUT * 2)) <-- sleep waiting eviction on OST
do_facet client $LCTL set_param fail_loc=0x0 <-- stop RPC dropping
do_facet client $LFS df > /dev/null
local oscs=$($LCTL dl | awk '/-osc-/ {print $4}')
check_clients_evicted $before "${oscs[@]}" <-- check for eviction
check_clients_full 10 "${oscs[@]}"
so steps are:
- drop all outgoing RPCs
- set $before param
- sleep enough time to let OST evict the client
- let RPCs to go again
- check client's state history for 'EVICTED' state after $before
first, without RPC processing there will be no EVICTED state because no connection established, so client can't know if it was evicted, its state is just CONNECTING-DISCONNECT all that time, so setting $before prior that and expecting to see EVICTED is useless until RPC can go again
second, when RCP can go the client can establish connection and notice eviction but test doesn't wait for that and checks states immediately while client can still be connecting. Instead it should wait for FULL first then check state history for EVICTED