master - lvmcmdline: restore digit check
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=864017710c65e07a19d...
Commit: 864017710c65e07a19d70bc226b2522a6b1907dc
Parent: fde23f7ce1a7e567fce3f1d33387f110f81d1fef
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Jul 17 20:36:39 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 20:54:42 2017 +0200
lvmcmdline: restore digit check
Commit 9b4b5d449ef7045d33b8d8d7e69011d16f4bb8ab started to accept
rather way to wide set of strings we do not want to take for size.
i.e. lvresize -t vg0/lvol0 -LNaNM
Restore check for 'digit || locales defined 'dot' | '.'
(as we tend to take '.' even if locales uses ',')
---
tools/lvmcmdline.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 3ff0d1d..c62c776 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -32,6 +32,7 @@
#include <dirent.h>
#include <paths.h>
#include <locale.h>
+#include <langinfo.h>
#ifdef HAVE_VALGRIND
#include <valgrind.h>
@@ -543,6 +544,7 @@ static int _size_arg(struct cmd_context *cmd __attribute__((unused)),
char *val;
double v;
uint64_t v_tmp, adjustment;
+ char *radixchar = nl_langinfo(RADIXCHAR);
av->percent = PERCENT_NONE;
@@ -565,6 +567,14 @@ static int _size_arg(struct cmd_context *cmd __attribute__((unused)),
return 0;
}
+
+ if (!isdigit(*val) &&
+ (*val != '.') &&
+ (radixchar && (*val != radixchar[0]))) {
+ log_error("Size requires number argument.");
+ return 0;
+ }
+
errno = 0;
v = strtod(val, &ptr);
6 years, 9 months
master - tests: better support for unbound vars for older shell
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fde23f7ce1a7e567fce...
Commit: fde23f7ce1a7e567fce3f1d33387f110f81d1fef
Parent: 5a5553bcec2141382407d27781cbade2f6966fe1
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Jul 17 20:32:48 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 20:32:48 2017 +0200
tests: better support for unbound vars for older shell
---
test/lib/aux.sh | 43 ++++++++++++++++++-------------------------
1 files changed, 18 insertions(+), 25 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index b385129..20a8a1e 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -272,7 +272,7 @@ prepare_lvmpolld() {
check_daemon_in_builddir lvmetad
lvmconf "global/use_lvmpolld = 1"
- local run_valgrind
+ local run_valgrind=""
test "${LVM_VALGRIND_LVMPOLLD:-0}" -eq 0 || run_valgrind="run_valgrind"
kill_sleep_kill_ LOCAL_LVMPOLLD "${LVM_VALGRIND_LVMPOLLD:-0}"
@@ -881,23 +881,22 @@ prepare_devs() {
common_dev_() {
local tgtype=$1
- local name=${2##*/}
- local offsets
- local read_ms
- local write_ms
+ local dev=$2
+ local name=${dev##*/}
+ shift 2
+ local read_ms=${1-0}
+ local write_ms=${2-0}
case "$tgtype" in
delay)
- read_ms=${3:-0}
- write_ms=${4:-0}
- offsets=( ${@:5} )
- if test "$read_ms" -eq 0 && test "$write_ms" -eq 0 ; then
- offsets=( )
- else
- test -z "${offsets[@]}" && offsets=( "0:" )
- fi ;;
- error|zero) offsets=( ${@:3} )
- test -z "${offsets[@]}" && offsets=( "0:" ) ;;
+ test "$read_ms" -eq 0 && test "$write_ms" -eq 0 && {
+ # zero delay is just equivalent to 'enable_dev'
+ enable_dev "$dev"
+ return
+ }
+ shift 2
+ ;;
+ # error|zero target does not take read_ms & write_ms only offset list
esac
local pos
@@ -908,7 +907,7 @@ common_dev_() {
read -r pos size type pvdev offset < "$name.table"
- for fromlen in "${offsets[@]}"; do
+ for fromlen in "${@-0:}"; do
from=${fromlen%%:*}
len=${fromlen##*:}
test -n "$len" || len=$(( size - from ))
@@ -931,11 +930,7 @@ common_dev_() {
diff=$(( size - pos ))
test "$diff" -gt 0 && echo "$pos $diff $type $pvdev $(( pos + offset ))" >>"$name.devtable"
- init_udev_transaction
- dmsetup load "$name" "$name.devtable"
- # TODO: add support for resume without udev rescan
- dmsetup resume "$name"
- finish_udev_transaction
+ restore_from_devtable "$dev"
}
# Replace linear PV device with its 'delayed' version
@@ -1001,8 +996,7 @@ enable_dev() {
rm -f debug.log strace.log
init_udev_transaction
for dev in "$@"; do
- local name
- name=$(echo "$dev" | sed -e 's,.*/,,')
+ local name=${dev##*/}
dmsetup create -u "TEST-$name" "$name" "$name.table" 2>/dev/null || \
dmsetup load "$name" "$name.table"
# using device name (since device path does not exists yes with udev)
@@ -1029,8 +1023,7 @@ restore_from_devtable() {
rm -f debug.log strace.log
init_udev_transaction
for dev in "$@"; do
- local name
- name=$(echo "$dev" | sed -e 's,.*/,,')
+ local name=${dev##*/}
dmsetup load "$name" "$name.devtable"
dmsetup resume "$name"
done
6 years, 9 months
master - tests: aux.sh some backward compatible updates
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=5a5553bcec214138240...
Commit: 5a5553bcec2141382407d27781cbade2f6966fe1
Parent: 3c32883cec807a8759dfa98bf258ed6e10ca997f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Jul 17 15:01:44 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 15:01:44 2017 +0200
tests: aux.sh some backward compatible updates
Older bash does not take empty array as bounded variable
(except for $@)
---
test/lib/aux.sh | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index da367aa..b385129 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -526,6 +526,8 @@ kill_tagged_processes() {
pids+=( "$pid" )
done < <(print_procs_by_tag_ "$@")
+ test ${#pids[@]} -eq 0 && return
+
# wait if process exited and eventually -KILL
wait=0
for pid in "${pids[@]}" ; do
@@ -619,7 +621,7 @@ teardown() {
prepare_loop() {
local size=${1=32}
- local losetup_params=( ${@:2} )
+ shift # all other params are directly passed to all 'losetup' calls
local i
local slash
@@ -644,9 +646,9 @@ prepare_loop() {
local LOOPFILE="$PWD/test.img"
rm -f "$LOOPFILE"
dd if=/dev/zero of="$LOOPFILE" bs=$((1024*1024)) count=0 seek=$(( size + 1 )) 2> /dev/null
- if LOOP=$(losetup "${losetup_params[@]}" -s -f "$LOOPFILE" 2>/dev/null); then
+ if LOOP=$(losetup "$@" -s -f "$LOOPFILE" 2>/dev/null); then
:
- elif LOOP=$(losetup -f) && losetup "${losetup_params[@]}" "$LOOP" "$LOOPFILE"; then
+ elif LOOP=$(losetup -f) && losetup "$@" "$LOOP" "$LOOPFILE"; then
# no -s support
:
else
@@ -657,7 +659,7 @@ prepare_loop() {
local dev="$DM_DEV_DIR/loop$slash$i"
! losetup "$dev" >/dev/null 2>&1 || continue
# got a free
- losetup "${losetup_params[@]}" "$dev" "$LOOPFILE"
+ losetup "$@" "$dev" "$LOOPFILE"
LOOP=$dev
break
done
@@ -1215,7 +1217,7 @@ EOF
echo "$s {"
local k
for k in $(grep ^"$s"/ "$config_values" | cut -f1 -d= | sed -e 's, *$,,' | sort | uniq); do
- grep "^$k" "$config_values" | tail -n 1 | sed -e "s,^$s/, ,"
+ grep "^$k" "$config_values" | tail -n 1 | sed -e "s,^$s/, ," || true
done
echo "}"
echo
6 years, 9 months
master - tests: aux.sh also uses increseed hardening protection
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=84b56872fbf82f6c050...
Commit: 84b56872fbf82f6c0509cab6cc8a5054489cb2d8
Parent: bd2a0fe2eca6cd60c0574bc3c2e590c886f5995b
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 18:27:03 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:42 2017 +0200
tests: aux.sh also uses increseed hardening protection
Also use similar incresed hardeing of script correctness
for standalone aux scripts - so there is one common
logic for pipe failures.
---
test/lib/aux.sh | 36 +++++++++++++++++++-----------------
test/lib/inittest.sh | 4 ++++
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index b7a9ad6..30623b3 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -11,6 +11,8 @@
. lib/utils
+test -n "$BASH" && set -euE -o pipefail
+
run_valgrind() {
# Execute script which may use $TESTNAME for creating individual
# log files for each execute command
@@ -195,7 +197,7 @@ prepare_dmeventd() {
check_daemon_in_builddir dmeventd
lvmconf "activation/monitoring = 1"
- local run_valgrind
+ local run_valgrind=""
test "${LVM_VALGRIND_DMEVENTD:-0}" -eq 0 || run_valgrind="run_valgrind"
echo -n "## preparing dmeventd..."
# LVM_LOG_FILE_EPOCH=DMEVENTD $run_valgrind dmeventd -fddddl "$@" 2>&1 &
@@ -215,7 +217,7 @@ prepare_dmeventd() {
prepare_lvmetad() {
check_daemon_in_builddir lvmetad
- local run_valgrind
+ local run_valgrind=""
test "${LVM_VALGRIND_LVMETAD:-0}" -eq 0 || run_valgrind="run_valgrind"
kill_sleep_kill_ LOCAL_LVMETAD "${LVM_VALGRIND_LVMETAD:-0}"
@@ -536,7 +538,7 @@ kill_tagged_processes() {
}
teardown() {
- local TEST_LEAKED_DEVICES
+ local TEST_LEAKED_DEVICES=""
echo -n "## teardown..."
unset LVM_LOG_FILE_EPOCH
@@ -728,7 +730,7 @@ prepare_md_dev() {
case "$level" in
"1") coption="--bitmap-chunk" ;;
- "0") unset with_bitmap ;;
+ "0") with_bitmap="" ;;
esac
# Have MD use a non-standard name to avoid colliding with an existing MD device
# - mdadm >= 3.0 requires that non-standard device names be in /dev/md/
@@ -950,9 +952,9 @@ delay_dev() {
disable_dev() {
local dev
- local silent
- local error
- local notify
+ local silent=""
+ local error=""
+ local notify=""
while test -n "$1"; do
if test "$1" = "--silent"; then
@@ -987,7 +989,7 @@ disable_dev() {
enable_dev() {
local dev
- local silent
+ local silent=""
if test "$1" = "--silent"; then
silent=1
@@ -1015,7 +1017,7 @@ enable_dev() {
# this is a quick way to restore to this table entry
restore_from_devtable() {
local dev
- local silent
+ local silent=""
if test "$1" = "--silent"; then
silent=1
@@ -1222,7 +1224,7 @@ EOF
}
local sec
- local last_sec
+ local last_sec=""
# read sequential list and put into associative array
while IFS= read -r v; do
@@ -1245,7 +1247,7 @@ EOF
}
lvmconf() {
- unset profile_name
+ local profile_name=""
test $# -eq 0 || {
# Compare if passed args aren't already all in generated lvm.conf
local needed=0
@@ -1355,7 +1357,7 @@ thin_pool_error_works_32() {
udev_wait() {
pgrep udev >/dev/null || return 0
which udevadm &>/dev/null || return 0
- if test -n "$1" ; then
+ if test -n "${1-}" ; then
udevadm settle --exit-if-exists="$1" || true
else
udevadm settle --timeout=15 || true
@@ -1366,7 +1368,7 @@ udev_wait() {
wait_for_sync() {
local i
for i in {1..100} ; do
- check in_sync "$1" "$2" "$3" && return
+ check in_sync "$@" && return
sleep .2
done
@@ -1452,7 +1454,7 @@ have_thin() {
}
target_at_least dm-thin-pool "$@"
- declare -a CONF
+ declare -a CONF=()
# disable thin_check if not present in system
if test -n "$LVM_TEST_THIN_CHECK_CMD" && test ! -x "$LVM_TEST_THIN_CHECK_CMD"; then
CONF[0]="global/thin_check_executable = \"\""
@@ -1500,7 +1502,7 @@ have_cache() {
}
target_at_least dm-cache "$@"
- declare -a CONF
+ declare -a CONF=()
# disable cache_check if not present in system
if test -n "$LVM_TEST_CACHE_CHECK_CMD" -a ! -x "$LVM_TEST_CACHE_CHECK_CMD" ; then
CONF[0]="global/cache_check_executable = \"\""
@@ -1569,7 +1571,7 @@ wait_pvmove_lv_ready() {
local retries=${2:-300}
if [ -e LOCAL_LVMPOLLD ]; then
- local lvid
+ local lvid=""
while : ; do
test "$retries" -le 0 && die "Waiting for lvmpolld timed out"
test -n "$lvid" || {
@@ -1627,7 +1629,7 @@ kernel_at_least() {
version_at_least "$(uname -r)" "$@"
}
-test -z "$LVM_TEST_AUX_TRACE" || set -x
+test -z "${LVM_TEST_AUX_TRACE-}" || set -x
test -f DEVICES && devs=$(< DEVICES)
diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh
index f13b386..d5ca6fd 100644
--- a/test/lib/inittest.sh
+++ b/test/lib/inittest.sh
@@ -25,6 +25,7 @@ TESTNAME=${0##*/}
PS4='#${BASH_SOURCE[0]##*/}:${LINENO}+ '
export TESTNAME PS4
+LVM_TEST_BACKING_DEVICE=${LVM_TEST_BACKING_DEVICE-}
LVM_TEST_DEVDIR=${LVM_TEST_DEVDIR-}
LVM_TEST_NODEBUG=${LVM_TEST_NODEBUG-}
LVM_TEST_LVM1=${LVM_TEST_LVM1-}
@@ -63,6 +64,9 @@ test -n "$SKIP_WITH_LVMLOCKD" && test -n "$LVM_TEST_LVMLOCKD" && initskip
unset CDPATH
+export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG
+export LVM_TEST_LVMETAD LVM_TEST_LVMLOCKD LVM_TEST_LVMLOCKD_TEST
+export LVM_TEST_LVMPOLLD LVM_TEST_LOCK_TYPE_DLM LVM_TEST_LOCK_TYPE_SANLOCK
# grab some common utilities
. lib/utils
6 years, 9 months
master - tests: extend lvcreate size validation
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=d15b9ac51003bee0c2f...
Commit: d15b9ac51003bee0c2fd65697e32e6726f5de773
Parent: 567aa60fa1aa1779d0f30c9ff2ad9c4fafec3d23
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 11:18:13 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:42 2017 +0200
tests: extend lvcreate size validation
---
test/shell/lvcreate-usage.sh | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/test/shell/lvcreate-usage.sh b/test/shell/lvcreate-usage.sh
index a6be443..4b5c2b6 100644
--- a/test/shell/lvcreate-usage.sh
+++ b/test/shell/lvcreate-usage.sh
@@ -27,8 +27,19 @@ grep "Invalid argument for --type" err
invalid lvcreate --type $RANDOM -l1 -n $lv1 $vg
invalid lvcreate --type unknown -l1 -n $lv1 $vg
+invalid lvcreate -L10000000000000000000 -n $lv $vg 2>&1 | tee err
+grep "Size is too big" err
+invalid lvcreate -L+-10 -n $lv $vg 2>&1 | tee err
+grep "Multiple sign" err
+invalid lvcreate -L-.1 -n $lv $vg 2>&1 | tee err
+grep "Size may not be negative" err
+invalid lvcreate -L..1 -n $lv $vg 2>&1 | tee err
+grep "Can't parse size" err
+
lvcreate --type linear -aey -m0 -l1 -n $lv1 $vg
lvcreate --type snapshot -l1 -n $lv2 $vg/$lv1
+# Supporting decimal point with size
+lvcreate -L.1 -n $lv3 $vg
# Reject repeated invocation (run 2 times) (bz178216)
lvcreate -n $lv -l 4 $vg
6 years, 9 months
master - tests: utils.sh look for more coredump places
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=bd2a0fe2eca6cd60c05...
Commit: bd2a0fe2eca6cd60c0574bc3c2e590c886f5995b
Parent: d15b9ac51003bee0c2fd65697e32e6726f5de773
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 10:33:48 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:42 2017 +0200
tests: utils.sh look for more coredump places
Quoting helps to anyone storing coredumps inside dir with spaces....
Also add default dir for coredumps with systemd coredumpctl.
---
test/lib/utils.sh | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/test/lib/utils.sh b/test/lib/utils.sh
index a0f325c..65bb1e6 100644
--- a/test/lib/utils.sh
+++ b/test/lib/utils.sh
@@ -143,13 +143,15 @@ STACKTRACE() {
# Check for all cores newer then TESTNAME file
# Assume users keep prefix 'core'
+ # TODO: possibly better integrate with coredumpctl & systemd
while IFS= read -r i; do
bin=$(gdb -batch -c "$i" 2>&1 | grep "generated by" | \
sed -e "s,.*generated by \`\([^ ']*\).*,\1,") || continue
echo "## Checking coredump: $i generated by $bin."
gdb -batch -c "$i" -x gdb_commands.txt "$(which "$bin")" 2>/dev/null | \
sed -e "s,^,## GDB: ," || continue
- done < <(find . $(dirname $(sysctl -n kernel.core_pattern)) -name 'core*' -newer TESTNAME 2>/dev/null || true)
+ done < <(find . "$(dirname "$(sysctl -n kernel.core_pattern)")" \
+ "/var/lib/systemd/coredump/" -name 'core*' -newer TESTNAME 2>/dev/null || true)
fi
test -f SKIP_THIS_TEST && exit 200
6 years, 9 months
master - test: repeat rediscovery few times
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=3c32883cec807a8759d...
Commit: 3c32883cec807a8759dfa98bf258ed6e10ca997f
Parent: f293d469463ad26cbd5e1aefce6e939afceb36ff
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 18:29:20 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 13:38:31 2017 +0200
test: repeat rediscovery few times
Avoid using 'aux' shell when setting dmsetup cookie.
Do not user '--force' when using external cookie.
---
test/shell/lvmetad-ambiguous.sh | 44 +++++++++++++++++++++++++++++++++++---
1 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/test/shell/lvmetad-ambiguous.sh b/test/shell/lvmetad-ambiguous.sh
index 71677c8..4b69c13 100644
--- a/test/shell/lvmetad-ambiguous.sh
+++ b/test/shell/lvmetad-ambiguous.sh
@@ -19,12 +19,32 @@ SKIP_WITH_LVMPOLLD=1
aux prepare_pvs 2
# flip the devices around
-aux init_udev_transaction
-dmsetup remove -f "$dev1"
-dmsetup remove -f "$dev2"
+init_udev_transaction
+dmsetup remove "$dev1"
+dmsetup remove "$dev2"
+dmsetup create -u TEST-${PREFIX}pv1 ${PREFIX}pv2 ${PREFIX}pv2.table
+dmsetup create -u TEST-${PREFIX}pv2 ${PREFIX}pv1 ${PREFIX}pv1.table
+finish_udev_transaction
+dmsetup info -c
+
+# re-scan them
+pvscan --cache "$dev1" || true
+pvscan --cache "$dev2" || true
+
+# expect both to be there
+pvs -a -o name | tee out
+grep "$dev1" out
+grep "$dev2" out
+
+aux lvmetad_dump
+
+# flip the devices 2nd. time around
+init_udev_transaction
+dmsetup remove "$dev1"
+dmsetup remove "$dev2"
dmsetup create -u TEST-${PREFIX}pv2 ${PREFIX}pv2 ${PREFIX}pv2.table
dmsetup create -u TEST-${PREFIX}pv1 ${PREFIX}pv1 ${PREFIX}pv1.table
-aux finish_udev_transaction
+finish_udev_transaction
# re-scan them
pvscan --cache "$dev1" || true
@@ -35,3 +55,19 @@ pvs -a -o name | tee out
grep "$dev1" out
grep "$dev2" out
+aux lvmetad_dump
+
+# flip the devices 2nd. time around
+dmsetup remove -f "$dev1"
+dmsetup remove -f "$dev2"
+dmsetup create -u TEST-${PREFIX}pv1 ${PREFIX}pv2 ${PREFIX}pv2.table
+dmsetup create -u TEST-${PREFIX}pv2 ${PREFIX}pv1 ${PREFIX}pv1.table
+
+# re-scan them
+pvscan --cache "$dev1" || true
+pvscan --cache "$dev2" || true
+
+# expect both to be there
+pvs -a -o name | tee out
+grep "$dev1" out
+grep "$dev2" out
6 years, 9 months
master - tests: aux.sh correcting bounder values
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f293d469463ad26cbd5...
Commit: f293d469463ad26cbd5e1aefce6e939afceb36ff
Parent: 84b56872fbf82f6c0509cab6cc8a5054489cb2d8
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 20:41:13 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:42 2017 +0200
tests: aux.sh correcting bounder values
grep for defined PREFIX.
use 'dev' instead of undefined mddev.
---
test/lib/aux.sh | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index 30623b3..da367aa 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -566,7 +566,7 @@ teardown() {
dm_table | not grep -E -q "$vg|$vg1|$vg2|$vg3|$vg4" || {
# Avoid activation of dmeventd if there is no pid
cfg=$(test -s LOCAL_DMEVENTD || echo "--config activation{monitoring=0}")
- if dm_info suspended,name | grep -q "^Suspended:.*$prefix" ; then
+ if dm_info suspended,name | grep -q "^Suspended:.*$PREFIX" ; then
echo "## skipping vgremove, suspended devices detected."
else
vgremove -ff "$cfg" \
@@ -681,7 +681,7 @@ prepare_scsi_debug_dev() {
rm -f debug.log strace.log
test ! -f "SCSI_DEBUG_DEV" || return 0
- test -z "$LOOP"
+ test ! -f LOOP
test -n "$DM_DEV_DIR"
# Skip test if scsi_debug module is unavailable or is already in use
@@ -786,12 +786,12 @@ cleanup_md_dev() {
notify_lvmetad "$dev"
done
udev_wait
- if [ -b "$mddev" ]; then
+ if [ -b "$dev" ]; then
# mdadm doesn't always cleanup the device node
# sleeps offer hack to defeat: 'md: md127 still in use'
# see: https://bugzilla.redhat.com/show_bug.cgi?id=509908#c25
sleep 2
- rm -f "$mddev"
+ rm -f "$dev"
fi
rm -f MD_DEV MD_DEVICES MD_DEV_PV
}
6 years, 9 months
master - lvmetad: cleanup
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=567aa60fa1aa1779d0f...
Commit: 567aa60fa1aa1779d0f30c9ff2ad9c4fafec3d23
Parent: 767a5e1281ed436a11af90e0249bd59a5fbd40c8
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 22:28:50 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:17 2017 +0200
lvmetad: cleanup
Avoid hashing insertion when object with same content is already there.
---
daemons/lvmetad/lvmetad-core.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 64d4fbb..6d5f6a7 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -808,7 +808,8 @@ static int _update_pvid_to_vgid(lvmetad_state *s, struct dm_config_tree *vg,
if ((mode == REMOVE_EMPTY) && vgid_old) {
/* This copies the vgid_old string, doesn't reference it. */
- if (!dm_hash_insert(to_check, vgid_old, (void*) 1)) {
+ if ((dm_hash_lookup(to_check, vgid_old) != (void*) 1) &&
+ !dm_hash_insert(to_check, vgid_old, (void*) 1)) {
ERROR(s, "update_pvid_to_vgid out of memory for hash insert vgid_old %s", vgid_old);
goto abort_daemon;
}
6 years, 9 months
master - dev-cache: avoid hashing same data again
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=767a5e1281ed436a11a...
Commit: 767a5e1281ed436a11af90e0249bd59a5fbd40c8
Parent: 9b4b5d449ef7045d33b8d8d7e69011d16f4bb8ab
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Sun Jul 16 20:56:58 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Mon Jul 17 12:33:17 2017 +0200
dev-cache: avoid hashing same data again
Before hashing device again with path, check if it's not already hashed.
TODO: maybe bigger chunk of executed code might be actually skipped.
---
lib/device/dev-cache.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c
index 06d44ce..9a4dbc9 100644
--- a/lib/device/dev-cache.c
+++ b/lib/device/dev-cache.c
@@ -706,6 +706,12 @@ static int _insert_dev(const char *path, dev_t d)
}
}
+ if (dm_hash_lookup(_cache.names, path) == dev) {
+ /* Hash already has matching entry present */
+ log_debug("Path already cached %s.", path);
+ return 1;
+ }
+
if (!(path_copy = dm_pool_strdup(_cache.mem, path))) {
log_error("Failed to duplicate path string.");
return 0;
6 years, 9 months