]> sourceware.org Git - lvm2.git/log
lvm2.git
7 years agolvmlockd: add comment about temp ls name
David Teigland [Wed, 23 Aug 2017 16:25:18 +0000 (11:25 -0500)]
lvmlockd: add comment about temp ls name

7 years agodebug: add stack trace point
Zdenek Kabelac [Tue, 22 Aug 2017 08:19:52 +0000 (10:19 +0200)]
debug: add stack trace point

7 years agolvmcache: check for lvmcache_foreach_mda return code
Zdenek Kabelac [Wed, 16 Aug 2017 12:29:12 +0000 (14:29 +0200)]
lvmcache: check for lvmcache_foreach_mda return code

lvmcache_foreach_mda() can fail for numerous reasons
and failing error code cannot be ignored (out-of-memory...)

TODO: might need more error handling tunning.

7 years agolvmlockd: shorter code
Zdenek Kabelac [Wed, 16 Aug 2017 12:12:48 +0000 (14:12 +0200)]
lvmlockd: shorter code

gcc warns here about storring 69 bytes in 64 byte array (losing
potentially 4 bytes from 'ls->name').

lvmlockd-core.c:2657:36: warning: ‘%s’ directive output may be truncated writing up to 64 bytes into a region of size 60 [-Wformat-truncation=]
  snprintf(tmp_name, MAX_NAME, "REM:%s", ls->name);
                                    ^~
lvmlockd-core.c:2657:2: note: ‘snprintf’ output between 5 and 69 bytes into a destination of size 64
  snprintf(tmp_name, MAX_NAME, "REM:%s", ls->name);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Replaced with slightly better code - but it still misses error path what
to do if the name would be truncated... - so added FIXME.

Also using all bytes for snprintf() buffer size
(as the size is with \0 included)

7 years agolibdm: fix errpath for control node creation
Zdenek Kabelac [Tue, 22 Aug 2017 08:19:40 +0000 (10:19 +0200)]
libdm: fix errpath for control node creation

When control node failure happens, umask was not restored.
Fix it by using common exit path.

7 years agolvmlockd: zero extended lvmlock LV
David Teigland [Tue, 15 Aug 2017 16:53:21 +0000 (11:53 -0500)]
lvmlockd: zero extended lvmlock LV

After the internal lvmlock LV (holding sanlock leases) is
extended to hold more leases, it needs to be zeroed.
sanlock expects to see either zeroed blocks or blocks
initialized with leases.

7 years agolvmlockd: reduce io impact for finding sanlock lv free lock offset
Zhang Huan [Tue, 15 Aug 2017 15:42:44 +0000 (10:42 -0500)]
lvmlockd: reduce io impact for finding sanlock lv free lock offset

currently, lvcreate for sanlock find the free lock offset
from the beginning of the lvmlock every time.
after created thousands of lvs, it will issue thousands of read
ios for lvcreate to find free lock offset.
remeber the last free lock offset will greatly reduce the impact

Signed-off-by: Zhang Huan <zhanghuan@huayun.com>
7 years agotest: pvcreate-bootloaderarea: pvcreate --restorefile --bootloaderarea not supported...
Peter Rajnoha [Tue, 15 Aug 2017 12:15:41 +0000 (14:15 +0200)]
test: pvcreate-bootloaderarea: pvcreate --restorefile --bootloaderarea not supported anymore

The fact that this combination is not supported anymore is tested
already in pvcreate-operation.sh test.

7 years agopvcreate: fix check for 2nd mda at end of disk fits if using pvcreate --restorefile
Peter Rajnoha [Tue, 15 Aug 2017 11:23:51 +0000 (13:23 +0200)]
pvcreate: fix check for 2nd mda at end of disk fits if using pvcreate --restorefile

Fix code checking that the 2nd mda which is at the end of disk really
fits the available free space and avoid any DA and MDA interleaving when
we already have DA preallocated. This mainly applies when we're restoring
a PV from VG backup using pvcreate --restorefile where we may already have
some DA preallocated - this means the PV was in a VG before with already
allocated space from it (the LVs were created). Hence we need to avoid
stepping into DA - the MDA can never ever be inside in such case!

The code responsible for this calculation was already in
_text_pv_add_metadata_area fn, but it had a bug in the calculation where
we subtracted one more sector by mistake and then the code could still
incorrectly allocate the MDA inside existing DA. The patch also renames
the variable in the code so it doesn't confuse us in future.

Also, if the 2nd mda doesn't fit, don't silently continue with just 1
MDA (at the start of the disk). If 2nd mda was requested and we can't
create that due to unavailable space, error out correctly (the patch
also adds a test to shell/pvcreate-operation.sh for this case).

7 years agoraid: more validation checks for segment data_offset member
Heinz Mauelshagen [Mon, 14 Aug 2017 13:00:15 +0000 (15:00 +0200)]
raid: more validation checks for segment data_offset member

Upgrade commit fb641c342343ac48cc623c8079900b1f4f395a69 with additional checks.

7 years agopvcreate: Use maximum metadata area size with --restorefile
Alasdair G Kergon [Fri, 11 Aug 2017 19:41:37 +0000 (20:41 +0100)]
pvcreate: Use maximum metadata area size with --restorefile

If the PV was originally created with a larger-than-default
metadata area the restored one wasn't and might not even be
large enough to hold the metadata!

7 years agopvcreate: Wipe cached bootloaderarea when wiping label.
Alasdair G Kergon [Fri, 11 Aug 2017 19:32:04 +0000 (20:32 +0100)]
pvcreate: Wipe cached bootloaderarea when wiping label.

Previously the cache remembered an existing bootloaderarea and
reinstated it (without even checking for overlap) when asked to
write out the PV.  pvcreate could write out an incorrect layout.

7 years agopvcreate: Disallow --bootloaderareasize with --restorefile.
Alasdair G Kergon [Fri, 11 Aug 2017 19:28:53 +0000 (20:28 +0100)]
pvcreate: Disallow --bootloaderareasize with --restorefile.

The backup file already holds the bootloader area details to use so
don't overcomplicate things.

7 years agocommands: recognize lvm command -?
David Teigland [Wed, 9 Aug 2017 20:06:36 +0000 (15:06 -0500)]
commands: recognize lvm command -?

and interpret it as lvm command -h

7 years agocommands: recognize -? for help
David Teigland [Wed, 9 Aug 2017 14:34:33 +0000 (09:34 -0500)]
commands: recognize -? for help

It's not known when this last worked, but there has
been documentation suggesting it worked, so enable it.

7 years agolvmlockd: global name doesn't apply to sanlock
David Teigland [Mon, 7 Aug 2017 15:43:28 +0000 (10:43 -0500)]
lvmlockd: global name doesn't apply to sanlock

When adopting locks, we shouldn't skip the special
dlm global lockspace name when using sanlock.

7 years agolvmlockd: fix lm running check during adoption
David Teigland [Mon, 7 Aug 2017 15:37:22 +0000 (10:37 -0500)]
lvmlockd: fix lm running check during adoption

When trying to adopt locks in startup, we want to ignore
a lock manager that isn't running, not fail.

7 years agolvmconfig: Add options to produce file preamble
Alasdair G Kergon [Sat, 5 Aug 2017 15:18:36 +0000 (16:18 +0100)]
lvmconfig: Add options to produce file preamble

Use --withgeneralpreamble and --withlocalpreamble instead of
concatenating files.

7 years agodmsetup: Add --concise to dmsetup create.
Alasdair G Kergon [Fri, 4 Aug 2017 18:38:34 +0000 (19:38 +0100)]
dmsetup: Add --concise to dmsetup create.

Add the new concise format to dmsetup create, either as a single
command-line parameter or from stdin.

Based on patches submitted by
Enric Balletbo i Serra <enric.balletbo@collabora.com>.

7 years agoioctl: Allow minor without major.
Alasdair G Kergon [Fri, 4 Aug 2017 13:45:20 +0000 (14:45 +0100)]
ioctl: Allow minor without major.

There's no need to insist on a major number being supplied when the
code's going to override it if it's wrong anyway.

7 years agotests: update checked message
Zdenek Kabelac [Tue, 1 Aug 2017 22:04:35 +0000 (00:04 +0200)]
tests: update checked message

7 years agotests: update makefiles
Zdenek Kabelac [Tue, 1 Aug 2017 16:53:25 +0000 (18:53 +0200)]
tests: update makefiles

7 years agomakefiles: add DEFS_$@ for cxx
Zdenek Kabelac [Tue, 1 Aug 2017 16:13:21 +0000 (18:13 +0200)]
makefiles: add DEFS_$@ for cxx

Add DEFS_$@ for c++  (used only by test suite...)
Just to pair plain C build rules.

7 years agomakefiles: script executable missed dynamic
Zdenek Kabelac [Tue, 1 Aug 2017 16:19:12 +0000 (18:19 +0200)]
makefiles: script executable missed dynamic

Add missing  ELDFLAGS when linking binary.
Also pass CFLAGS for cases where we build code coverage compilation.

7 years agomakefiles: fix tested vars
Zdenek Kabelac [Tue, 1 Aug 2017 16:18:05 +0000 (18:18 +0200)]
makefiles: fix tested vars

For resolving usability of DEBUG_MEM - check proper translated make
vars for proper value.

7 years agoconfigure: tune BUILD_DMEVENTD
Zdenek Kabelac [Tue, 1 Aug 2017 16:17:06 +0000 (18:17 +0200)]
configure: tune  BUILD_DMEVENTD

Drop 'DMEVENT' make variable and use  BUILD_DMEVENTD like with other daemons.
NOTE: by default we do not build dmeventd - maybe time to change
as lot of build targets basically do need dmeventd...

Switch to use SYSTEMD_LIBS and avoid linking systemd library with
every linked tool when dbus notification are enabled.
(TODO  add missing testing for lib presence)

7 years agoconfigure: improve test for realtime clock
Zdenek Kabelac [Tue, 1 Aug 2017 10:41:45 +0000 (12:41 +0200)]
configure: improve test for realtime clock

Check first if we need to even link -lrt  - since clock functions
are normally emebeded with recent  glibc (>=2.17)
Use standard  RT_LIBS name.
Avoid duplicate test for realtime clock with lvmlockd
Show better error message when realtime clock support is missing or
disabled.
Link  RT_LIBS explicitely with lvmlockd and lvmetad.

7 years agotests: update makefile
Zdenek Kabelac [Tue, 1 Aug 2017 09:19:21 +0000 (11:19 +0200)]
tests: update makefile

7 years agomakefiles: cleanups
Zdenek Kabelac [Mon, 31 Jul 2017 21:58:51 +0000 (23:58 +0200)]
makefiles: cleanups

7 years agomakefiles: fixing linking
Zdenek Kabelac [Mon, 31 Jul 2017 22:01:07 +0000 (00:01 +0200)]
makefiles: fixing linking

Avoid adding -g more then once for debug builds.
Avoid enabling  DEBUG_MEM when we build multithreaded tools.
Link executables with -fPIE -pie and --export-dynamic LDFLAGS
Introduce PROGS_FLAGS to add option to pass flags for external libs.
Link  lvm2 internally library only when really used.
Link DAEMON_LIBS with daemons.
Pass VALGRIND_CFLAGS internally
Set shell failure mode on couple places.

7 years agomakefiles: use gcc warns with gcc only
Zdenek Kabelac [Mon, 31 Jul 2017 22:04:20 +0000 (00:04 +0200)]
makefiles: use gcc warns with gcc only

Avoid passing  'gcc' warning options to non-gcc compiler

7 years agomakefiles: RT_LIB
Zdenek Kabelac [Mon, 31 Jul 2017 21:56:58 +0000 (23:56 +0200)]
makefiles: RT_LIB

Link -lrt directly only with  libdevmapper.
All other users get dependency transiently.

7 years agolibdm: log_warn
Zdenek Kabelac [Mon, 24 Jul 2017 12:40:41 +0000 (14:40 +0200)]
libdm: log_warn

No real effect anyway - function returs '1' in all paths,
but just make sure we do not have 'log_error()' on non-error path.

7 years agoman: fix generated paths
Zdenek Kabelac [Tue, 1 Aug 2017 09:17:04 +0000 (11:17 +0200)]
man: fix generated paths

Use user configured paths instead of some developers paths ;)

7 years agothin: warn about too big chunks size
Zdenek Kabelac [Fri, 21 Jul 2017 18:58:33 +0000 (20:58 +0200)]
thin: warn about too big chunks size

lvm2 warned about zeroing and too big chunksize (>=512KiB), but
only during lvconvert, so lvcreate was creating thin-pools
without any warning about possible slowness of thin provisioning
because of zeroing.

7 years agotoolcontext: Improve invalid units error message.
Alasdair G Kergon [Wed, 26 Jul 2017 23:51:50 +0000 (00:51 +0100)]
toolcontext: Improve invalid units error message.

7 years agotools: Introduce exit code EINIT_FAILED.
Alasdair G Kergon [Wed, 26 Jul 2017 22:18:03 +0000 (23:18 +0100)]
tools: Introduce exit code EINIT_FAILED.

Replace -1 (reported as 255) by 4.

7 years agodmsetup: Add minor number to concise table output format.
Alasdair G Kergon [Tue, 25 Jul 2017 11:22:46 +0000 (12:22 +0100)]
dmsetup: Add minor number to concise table output format.

When using this new format for input, it'll sometimes help to
be able to specify the minor number.

7 years agomake generate
Alasdair G Kergon [Tue, 25 Jul 2017 00:26:58 +0000 (01:26 +0100)]
make generate

7 years agodmsetup: Add concise table output format.
Alasdair G Kergon [Tue, 25 Jul 2017 00:13:14 +0000 (01:13 +0100)]
dmsetup: Add concise table output format.

Create a new table output format that concisely shows multiple devices
on one line.

dmsetup table --concise [device...]

<dev_name>,<uuid>,<flags>[,<table>]*[;<dev_name>,<uuid>,<flags>[,<table>]*]*

Table lines are separated by commas.
Devices are separated by semi-colons.
Flags is currently 'ro' or 'rw' (and might be extended in a
yet-to-be-defined way in future).
Any comma, semi-colon or backslash within a field is quoted by a
preceding backslash.

The format can later be supplied as input to dmsetup or even to the
booting kernel as an alternative way to set up devices.

Based on patches submitted by
Enric Balletbo i Serra <enric.balletbo@collabora.com>.

7 years agocommands: expand comment on configuring option vals
David Teigland [Thu, 20 Jul 2017 21:54:40 +0000 (16:54 -0500)]
commands: expand comment on configuring option vals

7 years agoman: remove hyphen escapes from source
David Teigland [Thu, 20 Jul 2017 21:26:13 +0000 (16:26 -0500)]
man: remove hyphen escapes from source

they are escaped by running sed in makefile

7 years agovgchange: split out code for systemid
David Teigland [Thu, 13 Jul 2017 18:43:39 +0000 (13:43 -0500)]
vgchange: split out code for systemid

Use the command definitions to separate the implementation
of vgchange systemid from the rest of vgchange.

7 years agovgchange: split out code for lockstart and lockstop
David Teigland [Thu, 13 Jul 2017 18:26:10 +0000 (13:26 -0500)]
vgchange: split out code for lockstart and lockstop

Use the command definitions to separate the implementation
of lockstop and lockstart from the rest of vgchange.

7 years agovgchange: separate change locktype and allow recovery
David Teigland [Wed, 12 Jul 2017 21:03:41 +0000 (16:03 -0500)]
vgchange: separate change locktype and allow recovery

Add an independent command definition for "vgchange --locktype",
and split the implementation out of the set of common metadata
changes.  It is unlike normal metadata changes, and can only
be run by itself.  (Changing the lock type is similar in
principle to changing the VG name or the VG system ID; it
effects the ability of any host to see or access the VG.)

At some point this command lost the ability to forcibly change
the lock type of a shared VG to "none" (making it a local VG).
This can be necessary to repair shared VGs (e.g. recovery steps
that occur in vg_read are disabled for shared VGs because
they are not locked properly, or recovering sanlock locks
when the PV holding them is lost.)

"vgchange --locktype none --lockopt force VG" is used as the
method of forcing the shared VG to become local so that it
can be repaired.

7 years agotidy: declaration names match implementation
Zdenek Kabelac [Thu, 20 Jul 2017 17:13:32 +0000 (19:13 +0200)]
tidy: declaration names match implementation

Put in sync some naming used for function declaration and
actual in-code implementation.

7 years agoraid: reshape synchronization point
Zdenek Kabelac [Thu, 20 Jul 2017 17:04:59 +0000 (19:04 +0200)]
raid: reshape synchronization point

Give udev time to get in sync and give md-core time to wake up
after table reload.

7 years agopost-release
Alasdair G Kergon [Thu, 20 Jul 2017 16:19:09 +0000 (17:19 +0100)]
post-release

7 years agopre-release v2_02_173
Alasdair G Kergon [Thu, 20 Jul 2017 15:57:27 +0000 (16:57 +0100)]
pre-release

7 years agoraid: avoid lv_size compiler warning
Alasdair G Kergon [Thu, 20 Jul 2017 15:16:51 +0000 (16:16 +0100)]
raid: avoid lv_size compiler warning

warning: declaration of ‘lv_size’ shadows a global declaration

7 years agoraid: move syncing with udev into function
Zdenek Kabelac [Thu, 20 Jul 2017 11:46:39 +0000 (13:46 +0200)]
raid: move syncing with udev into function

Since _deactivate_and_remove_lvs() is used in more then one place,
move the needed udev synchronization into this function so other
users automatically get correct fs state before next dm manipulation.

Assumption here is that this udev synchronization 'delay' may also
prevent to 'early' table reloads which might cause kernel problems
for md-core - but we may need more generic time-limited reload
frequency for raid devices.

Note: on udev-less system there will be almost no delay.

7 years agotests: aus.sh fix md teardown
Zdenek Kabelac [Thu, 20 Jul 2017 10:15:06 +0000 (12:15 +0200)]
tests: aus.sh fix md teardown

Commit 8a912d6dbcc34ce2b76a0104c39de7aa0480c512 missed the wrong logic,
we use 2 vars 'dev' & 'mddev' and their usage can't be mixed.

So correctly separate them so mddev keeps name of MD device.

7 years agotidy: drop unneeded cast
Zdenek Kabelac [Thu, 20 Jul 2017 07:57:09 +0000 (09:57 +0200)]
tidy: drop unneeded cast

Avoid casting to the same type.

7 years agotidy: name all parameters
Zdenek Kabelac [Thu, 20 Jul 2017 08:30:00 +0000 (10:30 +0200)]
tidy: name all parameters

7 years agotidy: drop unneeded return
Zdenek Kabelac [Wed, 19 Jul 2017 21:53:16 +0000 (23:53 +0200)]
tidy: drop unneeded return

7 years agotidy: else after continue
Zdenek Kabelac [Wed, 19 Jul 2017 21:12:48 +0000 (23:12 +0200)]
tidy: else after continue

Similar as with 'else' after 'return'  unindent whole block
for better readability of code.

7 years agotidy: prefer not using else after return
Zdenek Kabelac [Wed, 19 Jul 2017 14:16:12 +0000 (16:16 +0200)]
tidy: prefer not using else after return

clang-tidy: avoid using  'else' after return - give more readable code,
and also saves indention level.

7 years agocleanup: add braces in macro
Zdenek Kabelac [Wed, 19 Jul 2017 14:17:30 +0000 (16:17 +0200)]
cleanup: add braces in macro

7 years agocleanup: constify used parameter
Zdenek Kabelac [Wed, 19 Jul 2017 14:15:15 +0000 (16:15 +0200)]
cleanup: constify used parameter

7 years agodmsetup: simplify check of parsed cookie value
Zdenek Kabelac [Wed, 19 Jul 2017 20:04:37 +0000 (22:04 +0200)]
dmsetup: simplify check of parsed cookie value

Improving parsing error detection for strtoul.

7 years agotests: aux.sh fix wait_pvmove_lv_ready
Zdenek Kabelac [Wed, 19 Jul 2017 10:15:39 +0000 (12:15 +0200)]
tests: aux.sh fix wait_pvmove_lv_ready

Ignore error if the 'queried' LV is still not available
(since 'get' now properly returns failure when LV is missing)

7 years agotests: aus.sh better defaults
Zdenek Kabelac [Tue, 18 Jul 2017 19:25:03 +0000 (21:25 +0200)]
tests: aus.sh better defaults

7 years agotests: avoid endless loops
Zdenek Kabelac [Tue, 18 Jul 2017 19:17:51 +0000 (21:17 +0200)]
tests: avoid endless loops

If there is some problem with device removal avoid generating very long
error logs...

7 years agotests: aux.sh limit device
Zdenek Kabelac [Tue, 18 Jul 2017 11:14:02 +0000 (13:14 +0200)]
tests: aux.sh limit device

During test do a more close selection of visible devices.
If some test leaks a device with LVMTEST prefix, next
test should not be influnced (or parallel running one).

If the test is running in non-/dev  dir - it's already protected
by full path with $PREFIX in it - however it test is running
in real /dev dir - there was no such protection and test
were confused when they have seen such leaked device.

7 years agolvmcmdline: enhance locales check
Zdenek Kabelac [Mon, 17 Jul 2017 19:25:50 +0000 (21:25 +0200)]
lvmcmdline: enhance locales check

Make check for 'radixchar' more readable and logical.
Also avoid reread of number of locale is already using '.' as radixchar.

7 years agolvmcmdline: restore digit check
Zdenek Kabelac [Mon, 17 Jul 2017 18:36:39 +0000 (20:36 +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 ',')

7 years agotests: better support for unbound vars for older shell
Zdenek Kabelac [Mon, 17 Jul 2017 18:32:48 +0000 (20:32 +0200)]
tests: better support for unbound vars for older shell

7 years agotests: aux.sh some backward compatible updates
Zdenek Kabelac [Mon, 17 Jul 2017 13:01:44 +0000 (15:01 +0200)]
tests: aux.sh some backward compatible updates

Older bash does not take empty array as bounded variable
(except for $@)

7 years agotest: repeat rediscovery few times
Zdenek Kabelac [Sun, 16 Jul 2017 16:29:20 +0000 (18:29 +0200)]
test: repeat rediscovery few times

Avoid using 'aux' shell when setting dmsetup cookie.
Do not user '--force' when using external cookie.

7 years agotests: aux.sh correcting bounder values
Zdenek Kabelac [Sun, 16 Jul 2017 18:41:13 +0000 (20:41 +0200)]
tests: aux.sh correcting bounder values

grep for defined PREFIX.
use 'dev' instead of undefined mddev.

7 years agotests: aux.sh also uses increseed hardening protection
Zdenek Kabelac [Sun, 16 Jul 2017 16:27:03 +0000 (18:27 +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.

7 years agotests: utils.sh look for more coredump places
Zdenek Kabelac [Sun, 16 Jul 2017 08:33:48 +0000 (10:33 +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.

7 years agotests: extend lvcreate size validation
Zdenek Kabelac [Sun, 16 Jul 2017 09:18:13 +0000 (11:18 +0200)]
tests: extend lvcreate size validation

7 years agolvmetad: cleanup
Zdenek Kabelac [Sun, 16 Jul 2017 20:28:50 +0000 (22:28 +0200)]
lvmetad: cleanup

Avoid hashing insertion when object with same content is already there.

7 years agodev-cache: avoid hashing same data again
Zdenek Kabelac [Sun, 16 Jul 2017 18:56:58 +0000 (20:56 +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.

7 years agolvmcmdline: enhance acceptance of size numbers
Zdenek Kabelac [Sun, 16 Jul 2017 08:30:07 +0000 (10:30 +0200)]
lvmcmdline: enhance acceptance of size numbers

Explictely detect duplicate sing symbols and leave the rest of
double number validation on 'strtod()' function. This way
we can also accept size like:

lvcreate -L.1M

We already accept -L0.1M - but it's common to accept numbers
starting with leading '.' - just as 'strtod()' accepts it).

7 years agocleanup: drop extra compare
Zdenek Kabelac [Sun, 16 Jul 2017 08:22:20 +0000 (10:22 +0200)]
cleanup: drop extra compare

dm_free() already validates for NULL itself.

7 years agocleanup: shorten dump output code
Zdenek Kabelac [Sun, 16 Jul 2017 16:22:52 +0000 (18:22 +0200)]
cleanup: shorten dump output code

Save couple lines on code with simpler code.

7 years agocleanup: drop const from allocated value
Zdenek Kabelac [Sun, 16 Jul 2017 16:21:41 +0000 (18:21 +0200)]
cleanup: drop const from allocated value

Avoid using const for casting to non-const.

7 years agonumbers: strtod or strtoul need reset of errno
Zdenek Kabelac [Sun, 16 Jul 2017 08:28:02 +0000 (10:28 +0200)]
numbers: strtod or strtoul need reset of errno

API for strtod() or strtoul() needs reset of errno, before it's being
called. So add missing resets in missing places and some also some
errno validation for out-of-range numbers.

7 years agolvmcmdline: validate size as double
Zdenek Kabelac [Sun, 16 Jul 2017 07:53:49 +0000 (09:53 +0200)]
lvmcmdline: validate size as double

Since we are reading size as (double) we can get way bigger
number then just plain int64. So to make this check actually
more valid and usable do a maxsize compare in 'double'.

7 years agoclvmd: fix valgrind memory report
Zdenek Kabelac [Mon, 17 Jul 2017 10:25:05 +0000 (12:25 +0200)]
clvmd: fix valgrind memory report

Avoid reading already released memory and do a continue directly.

Invalid read of size 1
   at 0x1201B0: main_loop (clvmd.c:931)
   by 0x11F640: main (clvmd.c:666)
 Address 0x72ddef0 is 32 bytes inside a block of size 224 free'd
   at 0x4C30D18: free (vg_replace_malloc.c:530)
   by 0x54D6FD1: dm_free_wrapper (dbg_malloc.c:357)
   by 0x122E6E: process_work_item (clvmd.c:2034)
   by 0x123003: lvm_thread_fn (clvmd.c:2085)
   by 0x590A3A8: start_thread (pthread_create.c:465)
   by 0x5C3C7FE: clone (in /usr/lib64/libc-2.25.90.so)
 Block was alloc'd at
   at 0x4C2FB6B: malloc (vg_replace_malloc.c:299)
   by 0x54D6EF1: dm_malloc_aux (dbg_malloc.c:286)
   by 0x54D6F1C: dm_zalloc_aux (dbg_malloc.c:291)
   by 0x54D6F96: dm_zalloc_wrapper (dbg_malloc.c:345)
   by 0x11F89C: local_rendezvous_callback (clvmd.c:731)
   by 0x1203D2: main_loop (clvmd.c:964)
   by 0x11F640: main (clvmd.c:666)

7 years agoclvmd: fix valgrind warning
Zdenek Kabelac [Mon, 17 Jul 2017 10:23:37 +0000 (12:23 +0200)]
clvmd: fix valgrind warning

Initialize mutex upfront any debugging and fix this report:

Mutex reinitialization: mutex 0x485d20, recursion count 0, owner 1.
   at 0x4C38480: pthread_mutex_init_intercept (drd_pthread_intercepts.c:821)
   by 0x4C38480: pthread_mutex_init (drd_pthread_intercepts.c:830)
   by 0x11F359: main (clvmd.c:562)
mutex 0x485d20 was first observed at:
   at 0x4C38F63: pthread_mutex_lock_intercept (drd_pthread_intercepts.c:885)
   by 0x4C38F63: pthread_mutex_lock (drd_pthread_intercepts.c:898)
   by 0x11E920: debuglog (clvmd.c:254)
   by 0x11F1D8: main (clvmd.c:527)

7 years agodevcache: correct logging severity for connection
Zdenek Kabelac [Sun, 16 Jul 2017 16:23:41 +0000 (18:23 +0200)]
devcache: correct logging severity for connection

Switch from warn to log_error since this generated
failing return code for command so printing log_error()
is mandatory.

Happens with i.e. pvscan --cache meets crashing lvmetad.

7 years agolvmetad: fix memory leaks
Zdenek Kabelac [Sun, 16 Jul 2017 08:20:37 +0000 (10:20 +0200)]
lvmetad: fix memory leaks

Hash tables need to release no longer needed inserted data.

7 years agoraid: add validation checks for segment data_offset member
Heinz Mauelshagen [Fri, 14 Jul 2017 22:50:19 +0000 (00:50 +0200)]
raid: add validation checks for segment data_offset member

Commit 34504855a70772e1de3f117a9a610860ead80981 introduced
flag LV_RESHAPE_DATA_OFFSET and used it to avoid incompatible
activation on older runtime.

Enhance vg_validate() raid checking functions with checks for it.

7 years agotests: use get_devs
Zdenek Kabelac [Fri, 14 Jul 2017 22:13:33 +0000 (00:13 +0200)]
tests: use get_devs

7 years agotests: utils.sh looks for more dumps
Zdenek Kabelac [Fri, 14 Jul 2017 22:12:07 +0000 (00:12 +0200)]
tests: utils.sh looks for more dumps

Check for core in  sysctl kernel.core_pattern
(assuming core prefix still)

7 years agotests: add udev_wait before tearing scsi_debug
Zdenek Kabelac [Fri, 14 Jul 2017 18:23:02 +0000 (20:23 +0200)]
tests: add udev_wait before tearing scsi_debug

Make less probably there will be some udev work going while we try
to remove scsi_debug target.

7 years agotests: aux.sh fix double quote
Zdenek Kabelac [Fri, 14 Jul 2017 18:16:54 +0000 (20:16 +0200)]
tests: aux.sh fix double quote

Patch 72a58ce4b0f68f6e45ae30606fe5af21caa42b43 was wronly placing
double quotes around this variable which we want to pass expanded,
as it's just set of 'space' device args ATM.

TODO consider using array[@] to make this cleaner.
Add shellcheck directive to skip warning here

7 years agotests: utils.sh six stacktrace
Marian Csontos [Fri, 14 Jul 2017 17:51:59 +0000 (19:51 +0200)]
tests: utils.sh six stacktrace

Changes:

- BASH_SOURCE index was one off.
- The first line of stacktrace was pure confusion displaying executed
  script together with innermost line number (which was either 125 when
  STACKTRACE or 229 when skip was called.)
- We can safely ignore innermost call, as stack trace is always produced
  by stacktrace function.
- It is safer to test for array length, instead of testing FUNCNAME is
  main - if main function were introduced.
- Bashishm is safe to use as this function as a whole is relying on bash.

7 years agoraid: add data_offset incompatibility segment type flag
Heinz Mauelshagen [Fri, 14 Jul 2017 13:52:18 +0000 (15:52 +0200)]
raid: add data_offset incompatibility segment type flag

In order to reject out of place reshaping with segment data_offset
field on old runtime, add a respective segment type incompatibility
flag causing "+RESHAPE_DATA_OFFSET" to be suffixed to the segment
type name.

7 years agoraid: use return_0 for better backtracking
Heinz Mauelshagen [Fri, 14 Jul 2017 12:05:21 +0000 (14:05 +0200)]
raid: use return_0 for better backtracking

7 years agoreport: fix data_offset/new_data_offset reporting
Heinz Mauelshagen [Thu, 13 Jul 2017 16:27:38 +0000 (18:27 +0200)]
report: fix data_offset/new_data_offset reporting

7 years agolvconvert: allow reshaping in the cluster and on open devices
Heinz Mauelshagen [Thu, 13 Jul 2017 16:27:19 +0000 (18:27 +0200)]
lvconvert: allow reshaping in the cluster and on open devices

The previous commit fixed allocation/activation of reshape space.

Remove conditionals prohibiting reshaping in these cases.

Related: rhbz1447812
Related: rhbz1448116
Related: rhbz1461562

7 years agoraid: fix allocation/activation of reshape space
Heinz Mauelshagen [Thu, 13 Jul 2017 16:26:43 +0000 (18:26 +0200)]
raid: fix allocation/activation of reshape space

When reshape space is allocated anew, an update and reload is needed to
promote the new size to the cluster node with the exclusively active RaidLV
or reloading the RaidLV will fail with a size related error.  Additionally,
store "data_offset <sectors>" with the RaidLV in the lvm2 metadata so that
it can be retrieved on cluster nodes.

Process allocation of reshape space on a 2-legged raid4/5 (interim layout
to convert from/to linear via raid1) properly in the cluster.

Resolves: rhbz1461562
Resolves: rhbz1448116

7 years agotests: aux.sh integrate both teardown loops
Zdenek Kabelac [Fri, 14 Jul 2017 11:22:15 +0000 (13:22 +0200)]
tests: aux.sh integrate both teardown loops

Use 1 logic for 2 loops tearing down left device.
First loops tries to remove all closed devices with 'normal' remove.
Second loop tries to replace those left devices with 'error' target.

7 years agotests: skip test for non dirty cache
Zdenek Kabelac [Thu, 13 Jul 2017 22:42:40 +0000 (00:42 +0200)]
tests: skip test for non dirty cache

Seems some cache LV can't be made dirty easily with older
cache policy implementations....

7 years agotests: aux.sh better teardown loop
Zdenek Kabelac [Thu, 13 Jul 2017 22:27:55 +0000 (00:27 +0200)]
tests: aux.sh better teardown loop

We can't really sleep that much in teardown as it slows test too much.
So do a nested loop (similar to 'dmsetup remove_all') and keep
removing devices with open count == 0 as long as it works.

7 years agotests: wait for udev to minize race windows
Zdenek Kabelac [Thu, 13 Jul 2017 19:10:06 +0000 (21:10 +0200)]
tests: wait for udev to minize race windows

mkfs can complain about volume in use when meets udev rule processing.

This page took 0.073679 seconds and 5 git commands to generate.