]> sourceware.org Git - lvm2.git/log
lvm2.git
9 years agotests: add report-fields.sh test
Peter Rajnoha [Fri, 30 Oct 2015 14:06:49 +0000 (15:06 +0100)]
tests: add report-fields.sh test

9 years agoreport: support "-o #field_name1,field_name2,..."
Peter Rajnoha [Thu, 22 Oct 2015 13:37:27 +0000 (15:37 +0200)]
report: support "-o #field_name1,field_name2,..."

9 years agoreport: recognize known prefix when processing "-o -field_name1,field_name2,..."
Peter Rajnoha [Thu, 22 Oct 2015 12:30:11 +0000 (14:30 +0200)]
report: recognize known prefix when processing "-o -field_name1,field_name2,..."

9 years agoreport: add report_get_field_prefix function
Peter Rajnoha [Thu, 22 Oct 2015 11:27:59 +0000 (13:27 +0200)]
report: add report_get_field_prefix function

9 years agoreport: support "-o -field_name1,field_name2,...."
Peter Rajnoha [Wed, 21 Oct 2015 13:36:26 +0000 (15:36 +0200)]
report: support "-o -field_name1,field_name2,...."

9 years agoreport: make report options defined by "-o" groupable
Peter Rajnoha [Wed, 21 Oct 2015 12:57:49 +0000 (14:57 +0200)]
report: make report options defined by "-o" groupable

Also, besides making "-o" groupable, use string lists to store
lists of options temporarily while processing all instances of
the "-o" group.

9 years agorefactor: move code detecting report options to a separate function
Peter Rajnoha [Tue, 20 Oct 2015 14:36:11 +0000 (16:36 +0200)]
refactor: move code detecting report options to a separate function

9 years agostr_list: add str_list_destroy function
Peter Rajnoha [Tue, 20 Oct 2015 14:12:16 +0000 (16:12 +0200)]
str_list: add str_list_destroy function

The str_list_destroy function may be called to cleanup memory when
the list is not used anymore and the list itself was not allocated
from the memory pool.

9 years agostr_list: add str_list_to_str and str_to_str_list functions
Peter Rajnoha [Tue, 20 Oct 2015 14:01:10 +0000 (16:01 +0200)]
str_list: add str_list_to_str and str_to_str_list functions

The str_list_to_str and str_to_str_list are helper functions to
convert string list to a single string and vice versa.

9 years agostr_list: also allow memory allocation without memory pool
Peter Rajnoha [Tue, 20 Oct 2015 12:09:09 +0000 (14:09 +0200)]
str_list: also allow memory allocation without memory pool

9 years agoNew entries for pvs related fixes.
David Teigland [Fri, 30 Oct 2015 14:05:21 +0000 (09:05 -0500)]
New entries for pvs related fixes.

9 years agometadata: format_text: also count with calculated mda size of 0
Peter Rajnoha [Fri, 30 Oct 2015 11:02:29 +0000 (12:02 +0100)]
metadata: format_text: also count with calculated mda size of 0

When checking minimum mda size, make sure the mda_size after alignment
and calculation is more than 0 - if there's no place for an MDA at the
end of the disk, the _text_pv_add_metadata_area does not try to add it
there and it returns (because we already have the MDA at the start of
the disk at least).

9 years agotests: add test for minimum mda size
Peter Rajnoha [Fri, 30 Oct 2015 09:02:00 +0000 (10:02 +0100)]
tests: add test for minimum mda size

9 years agometadata: format_text: better check for metadata overlap
Peter Rajnoha [Fri, 30 Oct 2015 07:57:34 +0000 (08:57 +0100)]
metadata: format_text: better check for metadata overlap

Actually, we don't need extra condition as introduced in commit
00348c0a630a7e5578edf48052ec695b15de752f. We should fix the last
condition:

  (mdac->rlocn.size >= mdah->size)

...which should be:

  (MDA_HEADER_SIZE + (rlocn ? rlocn->size : 0) + mdac->rlocn.size >= mdah->size))

Where the "mdac" is new metadata, the "rlocn" is old metadata.

So the main problem with the previous condition was that it
didn't count in MDA_HEADER_SIZE properly (and possible existing
metadata - the "rlocn"). This could have caused the error state
where metadata in ring buffer overlap to not be hit.

Replace the new condition introduced in 00348c0a630a7e5578edf48052ec695b15de752f
with the improved one for the condition that existed there
already but it was just incomplete.

9 years agoWHATS_NEW: recent commits
Peter Rajnoha [Thu, 29 Oct 2015 15:50:09 +0000 (16:50 +0100)]
WHATS_NEW: recent commits

9 years agometadata: format_text: check VG metadata do not overlap themselves
Peter Rajnoha [Thu, 29 Oct 2015 15:33:06 +0000 (16:33 +0100)]
metadata: format_text: check VG metadata do not overlap themselves

We're already checking whether old and new meta do not overlap in
ring buffer (as we need to keep both old and new meta during vg_write
up until vg_commit).

We also need to check whether the new metadata do not overlap
themselves in case we don't have old metadata yet (...because
we're in vgcreate). This could happen if we're creating a VG so
that the very first metadata written are long enough that it wraps
themselves in metadata ring buffer.

Although we limited the minimum metadata area size better with the
previous commit ccb8da404d00288b7d49c7a28006ec5d4687bb55 which
makes the initial VG metadata overlap in ring buffer to be less
probable, the risk of hitting this overlap condition is still there
if we still manage to generate big enough metadata somehow.

For example, users can provide many and/or long VG tags during vgcreate
so that the VG metadata is long enough to start to wrap in the ring
buffer again...

9 years agometadata: format_text: check metadata area size is at least MDA_SIZE_MIN
Peter Rajnoha [Thu, 29 Oct 2015 14:59:29 +0000 (15:59 +0100)]
metadata: format_text: check metadata area size is at least MDA_SIZE_MIN

9 years agotests: update test for resize
Zdenek Kabelac [Thu, 29 Oct 2015 14:11:16 +0000 (15:11 +0100)]
tests: update test for resize

Drop already tested 'threshold & create' which is in
lvextend-thin-full.sh

Count with now match faster 'dmeventd' wakeup on watermark
as it's now nearly instant after crossing threshold value.

9 years agotests: replace invalid use of 'fail' with 'die'
Ondrej Kozina [Thu, 29 Oct 2015 12:30:29 +0000 (13:30 +0100)]
tests: replace invalid use of 'fail' with 'die'

9 years agotests: let pass bigger readahead
Zdenek Kabelac [Thu, 29 Oct 2015 11:33:15 +0000 (12:33 +0100)]
tests: let pass bigger readahead

If the underlaying device has actually bigger read-ahead settings,
let it pass.
But anyway switch to 512 strip-size to get really high R-A sector count.

9 years agotests: fix wrong line has been commented
Zdenek Kabelac [Thu, 29 Oct 2015 11:30:00 +0000 (12:30 +0100)]
tests: fix wrong line has been commented

9 years agotests: no point in using should
Zdenek Kabelac [Thu, 29 Oct 2015 11:23:38 +0000 (12:23 +0100)]
tests: no point in using should

lvmetad does not support lvm1 - so expect failure.

9 years agocleanup: error is not a WARNING
Zdenek Kabelac [Thu, 29 Oct 2015 11:18:40 +0000 (12:18 +0100)]
cleanup: error is not a WARNING

Drop 'WARNING' from error message.
It's plain error message leading to command failure.

9 years agocleanup: remove thin low_water_mark from metadata
Zdenek Kabelac [Thu, 29 Oct 2015 11:07:24 +0000 (12:07 +0100)]
cleanup: remove thin low_water_mark from metadata

This option could never have been printed in lvm2 metadata, so it could
be safely removed as it could have been set only as 0.

These configurable setting is supported via metadata profile.

9 years agocleanup: use same type
Zdenek Kabelac [Thu, 29 Oct 2015 11:01:31 +0000 (12:01 +0100)]
cleanup: use same type

9 years agocleanup: easier error messages
Zdenek Kabelac [Thu, 29 Oct 2015 10:01:24 +0000 (11:01 +0100)]
cleanup: easier error messages

9 years agothin: enable usage of kernel low_water_mark
Zdenek Kabelac [Thu, 29 Oct 2015 10:58:06 +0000 (11:58 +0100)]
thin: enable usage of kernel low_water_mark

Now with correctly functioning dmeventd enable usage of
low_water_mark for faster reaction on pool's threshold.

When user select e.g. 80% as a threshold value,
dmeventd doesn't need to wait 10 seconds till monitoring
timer expires, but nearly instantly resizes thin-pool
to fit bellow threshold.

9 years agothin: dmeventd plugin check number of failures
Zdenek Kabelac [Thu, 29 Oct 2015 10:52:11 +0000 (11:52 +0100)]
thin: dmeventd plugin check number of failures

If plugin's lvm command execution fails too often (>10 times),
there is no point to torture system more then necessary, just log
and drop monitoring in this case.

9 years agorevert: 3d03e504cda6307f692c5879f6850b2e27af7d71: message about VG metadata size...
Peter Rajnoha [Thu, 29 Oct 2015 10:08:28 +0000 (11:08 +0100)]
revert: 3d03e504cda6307f692c5879f6850b2e27af7d71: message about VG metadata size vs. PV mda size

The message needs refinement - it's not correct in all situations.

9 years agopvs: don't treat duplicate PVs as missed
David Teigland [Tue, 27 Oct 2015 17:03:57 +0000 (12:03 -0500)]
pvs: don't treat duplicate PVs as missed

The recent addition to check for PVs that were
missed during the first iteration of processing
was unintentionally catching duplicate PVs because
duplicates were not removed from the all_devices
list when the primary dev was processed.

Also change a message from warn back to verbose.

9 years agovgs, lvs: ignore error if VG is removed
David Teigland [Tue, 27 Oct 2015 15:52:01 +0000 (10:52 -0500)]
vgs, lvs: ignore error if VG is removed

If a VG is removed between the time that 'vgs'
or 'lvs' (with no args) creates the list of VGs
and the time that it reads the VG to process it,
then ignore the removed VG; don't report an error
that it could not be found, since it wasn't named
by the command.

9 years agodevice: Tidy DASD CDL format detection code.
Alasdair G Kergon [Tue, 27 Oct 2015 15:27:52 +0000 (15:27 +0000)]
device: Tidy DASD CDL format detection code.

9 years agotests: using matching type
Zdenek Kabelac [Tue, 27 Oct 2015 14:33:59 +0000 (15:33 +0100)]
tests: using matching type

Compare time_t.

9 years agotests: use more SKIP
Zdenek Kabelac [Tue, 27 Oct 2015 14:10:06 +0000 (15:10 +0100)]
tests: use more SKIP

Speed-up check_lvmpolld.

9 years agotests: avoid reading utils when skipping
Zdenek Kabelac [Tue, 27 Oct 2015 14:08:43 +0000 (15:08 +0100)]
tests: avoid reading utils when skipping

Save even more CPU/time and avoid reading utils, when skipping test.

9 years agocleanup: snapshots of snapshots message
Marian Csontos [Thu, 22 Oct 2015 11:32:52 +0000 (13:32 +0200)]
cleanup: snapshots of snapshots message

No plans to support thick snapshost of snapshots.

9 years agopvcreate: don't support unpartitioned DASD devices with CDL formatted
Lidong Zhong [Mon, 12 Oct 2015 07:09:11 +0000 (15:09 +0800)]
pvcreate: don't support unpartitioned DASD devices with CDL formatted

The former patch(dab3ebce4c7) is a little bit strict. For example, it is
OK to create PV on unpartitioned DASD devices with LDL formatted. So
after lvm version containing the patch, LVs created on those devices
could not be found.

Signed-off-by: Lidong Zhong <lzhong@suse.com>
9 years agodmeventd: event string parser handles empty field
Zdenek Kabelac [Tue, 27 Oct 2015 10:12:59 +0000 (11:12 +0100)]
dmeventd: event string parser handles empty field

Improve event string parser to avoid unneeded alloc+free.

Daemon talk function uses '-' to mark NULL/missing field.
So restore the NULL pointer back on parser.

This should have made old tools like 'dmevent_tool' work again.
As now 'uuid' or 'dso' could become NULL and then be
properly used in _want_registered_device() function.

Since lvm2 always fill these parameters, this change should
have no effect on lvm2.

9 years agotests: use skip flags
Zdenek Kabelac [Mon, 26 Oct 2015 23:45:37 +0000 (00:45 +0100)]
tests: use skip flags

corrected usage of skip flags.

9 years agotests: support skip flags
Zdenek Kabelac [Mon, 26 Oct 2015 19:09:47 +0000 (20:09 +0100)]
tests: support skip flags

9 years agotests: extend timer for 4 hours
Zdenek Kabelac [Mon, 26 Oct 2015 10:04:58 +0000 (11:04 +0100)]
tests: extend timer for 4 hours

Extend max time for test suite to 4 hours.
Also replace some 'non-ascii' chars from source files
and keep them plain ascii.

9 years agothin: limit no-flush using only for thin-pool
Zdenek Kabelac [Mon, 26 Oct 2015 20:46:54 +0000 (21:46 +0100)]
thin: limit  no-flush using only for thin-pool

For this release keep usage of 'noflush' only for thin-volume/pool.

For rest of keep - keep usage of 'noflush' flag purely for
non-resized mirrors.

9 years agodmevent: fix referencing
Zdenek Kabelac [Mon, 26 Oct 2015 22:29:31 +0000 (23:29 +0100)]
dmevent: fix referencing

Plugin increments DSO refcounter in _alloc_thread_status().

9 years agotoollib: fix wrong paren placement
David Teigland [Mon, 26 Oct 2015 21:27:26 +0000 (16:27 -0500)]
toollib: fix wrong paren placement

9 years agopvs: fix missing PVs when VG is removed
David Teigland [Fri, 23 Oct 2015 20:09:20 +0000 (15:09 -0500)]
pvs: fix missing PVs when VG is removed

PVs could be missing from the 'pvs' output if
their VG was removed at the same time that the
'pvs' command was run.  To fix this:

1. If a VG is not found when processed, don't
silently skip the PVs in it, as is done when
the "skip" variable is set.

2. Repeat the VG search if some PVs are not
found on the first search through all VGs.
The second search uses a specific list of
PVs that were missed the first time.

testing:
/dev/sdb is a PV
/dev/sdd is a PV
/dev/sdg is not a PV

each test begins with:
vgcreate test /dev/sdb /dev/sdd

variations to test:
vgremove -f test & pvs
vgremove -f test & pvs -a
vgremove -f test & pvs /dev/sdb /dev/sdd
vgremove -f test & pvs /dev/sdg
vgremove -f test & pvs /dev/sdb /dev/sdg

The pvs command should always display /dev/sdb
and /dev/sdd, either as a part of VG test or not.

The pvs command should always print an error
indicating that /dev/sdg could not be found.

9 years agotests: snapshot now respects threshold
Zdenek Kabelac [Mon, 26 Oct 2015 06:38:23 +0000 (07:38 +0100)]
tests: snapshot now respects threshold

9 years agolibdm: enable no_flush for driver version > 11
Zdenek Kabelac [Mon, 26 Oct 2015 06:37:59 +0000 (07:37 +0100)]
libdm: enable no_flush for driver version > 11

It appears the driver version 11 has troubles with usage of no_flush
So require at least version 12.

9 years agodev_manager: no flush for extension
Zdenek Kabelac [Sun, 25 Oct 2015 19:41:19 +0000 (20:41 +0100)]
dev_manager: no flush for extension

Recognize the target only 'extends' and do not enforce
'flush' in this case.  Only the size reduction
still requires flush (so disables usage of no_flush flag).

If some other targets do require flush before suspend,
they have to explicitly ask for it.

9 years agodev_manager: enabled no_flush for suspend
Zdenek Kabelac [Sun, 25 Oct 2015 19:37:39 +0000 (20:37 +0100)]
dev_manager: enabled no_flush for suspend

While the activation code tries to evaluate which target
really needs flush with suspend and which may go without flush,
it has stayed effectively disabled by original commit:
33f732c5e9493cda4b161a18b3d53885d207e3b8 since here
it only allows to pass non-pvmoving  'mirrors'.

So remove check for mirror LV type and only disable
no_flush for 'pvmove'..

TODO: Looking into history - it also seemed like raid target
would have always required flushing but it's been later
removed without clean explanation.

If some more targets really do need 'no_flush' it should
been handle at their 'level' - since we now stack multiple
targets over itself.

9 years agolibdm: dm_tree_node_size_changed recognizes reduction
Zdenek Kabelac [Sun, 25 Oct 2015 18:27:09 +0000 (19:27 +0100)]
libdm: dm_tree_node_size_changed recognizes reduction

Add more functionality to size_changed function.
While 'existing' API only detected  0 for
unchanged,  and !0 for changed,
new improved API will also detected if the
size has only went bigger - or there was
size reduction.

Function work for the whole dm-tree - so
no change is size is always 0.
only size extension  1.
and if some size reduction is there - returns -1.

This result can be used for better evaluation
whether we need to flush before suspend.

9 years agolv_manip: ensure it will fit bellow threshold
Zdenek Kabelac [Sun, 25 Oct 2015 18:19:39 +0000 (19:19 +0100)]
lv_manip: ensure it will fit bellow threshold

Use single code to evaluate if the percentage value has
crossed threshold.

Recalculate amount value to always fit bellow
threshold so there are not need any extra reiterations
to reach this state in case policy amount is too small.

9 years agothin: fix percentage compare
Zdenek Kabelac [Sun, 25 Oct 2015 18:13:53 +0000 (19:13 +0100)]
thin: fix percentage compare

Since plugin's percentage compare has been fixed,
it's now revealed wrong compare here.

The logic for threshold is - to allow to go as high
as given value e.g. 80% - so if pool is exactlu 80%
full it's still allowed to use it (dmeventd will not
resize it).

9 years agovg_read: remove unused inconsistent check
David Teigland [Fri, 23 Oct 2015 17:19:11 +0000 (12:19 -0500)]
vg_read: remove unused inconsistent check

Commit 1a74171ca5682a684d0e05c6090c3d33cab8795b added
a check to ignore a VG that was FAILED_INCONSISTENT
if the command doesn't care if the VG is not found.
Remove that check because that case is never reached
by the current code.

9 years agovgextend: fix use of the wrong flag
David Teigland [Fri, 23 Oct 2015 15:21:06 +0000 (10:21 -0500)]
vgextend: fix use of the wrong flag

The ONE_VGNAME_ARG was being passed and tested as
vg_read() flag but it's a cmd struct flag.

(It affects command arg processing in toollib,
not vg_read behavior.  Flags related to command
processing are generally cmd struct flags, while
vg_read arg flags are generally related to vg_read
behavior.)

9 years agovg_read: sometimes ignore read errors
David Teigland [Thu, 22 Oct 2015 19:56:22 +0000 (14:56 -0500)]
vg_read: sometimes ignore read errors

Running "vgremove -f VG & pvs" results in the pvs
command reporting that the VG is not found or is
inconsistent.  If the VG is gone or being removed,
the pvs command should just skip it and not print
errors about it.

"Not found" is because the pvs command created the
list of VGs to process, including VG, then vgremove
removed the VG, then the pvs command came to to read
the VG to process it and did not find it.

An "inconsistent" error could be reported if vgremove
had only partially completed removing VG when pvs did
vg_read on the VG to process it, causing pvs to find
the VG in a partially-removed state.

This fix adds a flag that pvs uses to ignore a VG
that can't be read or is inconsistent.

9 years agothin: Fix typo in policy threshold message.
Alasdair G Kergon [Fri, 23 Oct 2015 14:38:31 +0000 (15:38 +0100)]
thin: Fix typo in policy threshold message.

9 years agolvmcache: update cached info properly when moving from VG to orphan while lvmetad...
Peter Rajnoha [Fri, 23 Oct 2015 13:05:48 +0000 (15:05 +0200)]
lvmcache: update cached info properly when moving from VG to orphan while lvmetad is used

When lvmetad is used and lvmcache update function (lvmcache_update_vgname_and_id)
was called to update existing lvmcache records, a condition was met
which made to retun from the update function immediately, effectively
making it NOOP.

It seems there's no reason for such condition and lvmcache should be
update appropriately even when lvmetad used as lvmcache may be reused,
most notably in lvm shell.

It's possible this is a remnant of the lvmetad development code which
didn't get removed for some reason and the bug didn't get spotted
because lvm shell is not used often (the condition dates back to 2012
or so).

Example, lvmetad and lvm shell used:

lvm> pvs
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sda   vg   lvm2 a--  124.00m 124.00m

Before this patch:
==================
lvm> vgremove vg
  Volume group "vg" successfully removed

lvm> pvs

With this patch applied:
========================

lvm> vgremove vg
  Volume group "vg" successfully removed

lvm> pvs
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sda        lvm2 ---  128.00m 128.00m

9 years agopvremove: make sure even invalid info is removed from lvmcache on pvremove
Peter Rajnoha [Fri, 23 Oct 2015 12:11:16 +0000 (14:11 +0200)]
pvremove: make sure even invalid info is removed from lvmcache on pvremove

The lvmcache info might be resued, most notably in lvm shell.
We need to be sure that even lvmcache_info marked as invalid
is removed from the lvmcache so it does not confuse any subsequent
code/commands executed later on.

Problematic example with the lvm shell:

lvm> pvs
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sda        lvm2 ---  128.00m 128.00m

Before this patch (/dev/sda still displayed in a way):
======================================================

lvm> pvremove /dev/sda
  Labels on physical volume "/dev/sda" successfully wiped

(without lvmetad)
lvm> pvs
  No physical volume label read from /dev/sda

(with lvmetad)
lvm> pvs
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sda        lvm2 ---  128.00m 128.00m

With this patch applied:
========================

lvm> pvremove /dev/sda
  Labels on physical volume "/dev/sda" successfully wiped

(without lvmetad)
lvm> pvs

(with lvmetad)
lvm> pvs

9 years agocleanup: drop debug
Zdenek Kabelac [Fri, 23 Oct 2015 08:46:58 +0000 (10:46 +0200)]
cleanup: drop debug

9 years agocleanup: fix gcc compile with older pthread
Zdenek Kabelac [Fri, 23 Oct 2015 07:44:21 +0000 (09:44 +0200)]
cleanup: fix gcc compile with older pthread

Older pthread library was missing 'trick'
in pthread_cleanup_pop() which lead to
compilation error:

error: label at end of compound statement

Use explicit ';' to fix it.

9 years agocleanup: gcc warning for old-style
Zdenek Kabelac [Fri, 23 Oct 2015 07:42:38 +0000 (09:42 +0200)]
cleanup: gcc warning for old-style

9 years agotools: update for lvm2_disable_dmeventd_monitoring
Zdenek Kabelac [Fri, 23 Oct 2015 08:48:01 +0000 (10:48 +0200)]
tools: update for lvm2_disable_dmeventd_monitoring

Make lvm2_disable_dmeventd_monitoring() more explicit.

As memlock_inc_daemon() is also used by clvmd, which
does changes dmeventd and suspend ignore state at
some stages - make updates of these 2 variable
tied to the call of  lvm2_disable_dmeventd_monitoring().

Once this call is made dmeventd monitoring
and suspended devices are ignored.

TODO: all lvm-global settings should really be moved
to command context.

9 years agodmeventd: ensure filter is empty
Zdenek Kabelac [Fri, 23 Oct 2015 07:43:21 +0000 (09:43 +0200)]
dmeventd: ensure filter is empty

On some error path we could have left filter set to some value.
Not a big issue - but lets make reporting correct as soon
as we can.

9 years agodmeventd: debug error paths
Zdenek Kabelac [Fri, 23 Oct 2015 07:43:06 +0000 (09:43 +0200)]
dmeventd: debug error paths

9 years agotests: enable raid test on 4.3
Zdenek Kabelac [Thu, 22 Oct 2015 14:51:18 +0000 (16:51 +0200)]
tests: enable raid test on 4.3

With kernel -rc6 it's passing our raid tests again - so enable
it in tests.

Note: related only to Fedora rawhide kernels...

9 years agocleanup: indents
Zdenek Kabelac [Thu, 22 Oct 2015 07:57:44 +0000 (09:57 +0200)]
cleanup: indents

9 years agocleanup: drop uneeded header file
Zdenek Kabelac [Thu, 22 Oct 2015 08:40:51 +0000 (10:40 +0200)]
cleanup: drop uneeded header file

9 years agocleanup: easier to read code
Zdenek Kabelac [Thu, 22 Oct 2015 08:57:57 +0000 (10:57 +0200)]
cleanup: easier to read code

Avoid using #ifdef code and use 'cmd' instead of 'die'.

9 years agocleanup: declare vars before code
Zdenek Kabelac [Thu, 22 Oct 2015 08:33:01 +0000 (10:33 +0200)]
cleanup: declare vars before code

9 years agodmeventd: exit on idle
Zdenek Kabelac [Thu, 22 Oct 2015 18:36:46 +0000 (20:36 +0200)]
dmeventd: exit on idle

Implementing exit when 'dmeventd' is idle.
Default idle timeout set to 1 hour - after this time period
dmeventd will cleanly exit.

On systems with 'systemd' - service is automatically started with
next contact on dmeventd communication socket/fifo.

On other systems - new dmeventd starts again when lvm2 command detects
its missing and monitoring is needed.

9 years agodmeventd: debug signals
Zdenek Kabelac [Thu, 22 Oct 2015 09:15:53 +0000 (11:15 +0200)]
dmeventd: debug signals

9 years agodmeventd: snapshot plugin unmonitor
Zdenek Kabelac [Thu, 22 Oct 2015 13:36:21 +0000 (15:36 +0200)]
dmeventd: snapshot plugin unmonitor

Send signal to itself to mark plugin as 'finished' as
the watching rule is no longer usable.

9 years agodmeventd: handle signal from plugin
Zdenek Kabelac [Thu, 22 Oct 2015 13:48:14 +0000 (15:48 +0200)]
dmeventd: handle signal from plugin

Add support to unmonitor device when monitor recognizes there is
nothing to monitor anymore.

TODO: possibly API change with return value could be also used.

9 years agodmeventd: rework locking code
Zdenek Kabelac [Thu, 22 Oct 2015 13:47:53 +0000 (15:47 +0200)]
dmeventd: rework locking code

Redesign threading code:

- plugin registration runs within its new created thread for
  improved parallel usage.

- wait task is created just once and used during whole plugin lifetime.

- event thread is based over  'events' filter being set - when
  filter is 0, such thread is 'unused'.

- event loop is  simplified.

- timeout thread is never signaling 'processing' thread.

- pending of events filter cnange is properly reported and
  running event thread is signalled when possible.

- helgrind is not reporting problems.

9 years agocleanup: use enums
Zdenek Kabelac [Wed, 21 Oct 2015 18:56:20 +0000 (20:56 +0200)]
cleanup: use enums

9 years agodmeventd: code mode _get_device_status
Zdenek Kabelac [Thu, 22 Oct 2015 10:36:25 +0000 (12:36 +0200)]
dmeventd: code mode _get_device_status

Move _get_device_status() in code.
Use dm_task_no_flush() function when reading status.
(e.g. none blocking for thins pool)

9 years agodmeventd: minimize locking time for get_imeout
Zdenek Kabelac [Thu, 22 Oct 2015 10:38:26 +0000 (12:38 +0200)]
dmeventd: minimize locking time for get_imeout

Don't hold lock when creating message (allocating memory).
Thread cannot dissapear as it's only the same thread which
may clean it.

9 years agodmeventd: drop unneded test
Zdenek Kabelac [Thu, 22 Oct 2015 10:31:45 +0000 (12:31 +0200)]
dmeventd: drop unneded test

Function is never called without device.uuid.

9 years agodmeventd: wake up timer when setting new timeout
Zdenek Kabelac [Thu, 22 Oct 2015 10:37:18 +0000 (12:37 +0200)]
dmeventd: wake up timer when setting new timeout

9 years agodmeventd: use dm_hold_control_dev
Zdenek Kabelac [Wed, 21 Oct 2015 18:52:29 +0000 (20:52 +0200)]
dmeventd: use dm_hold_control_dev

Need here to keep  control device opened while there is 'any' dso
plugin loaded - otherwise there would a race closing controlfd
inside lvm2 plugin while some other monitoring thread would
tried to execute another WAITEVENT task.

9 years agodmeventd: move dso handling into single code section
Zdenek Kabelac [Thu, 22 Oct 2015 10:22:55 +0000 (12:22 +0200)]
dmeventd: move dso handling into single code section

Move all DSO related function in front, so they could be easily
referenced from rest of code.

Add proper error paths with logging and error reporting.

Drop mutex locking when releasing DSO - since DSO is always
allocated and released in main 'event' processing thread.

9 years agodmeventd: using warning level
Zdenek Kabelac [Thu, 22 Oct 2015 09:14:12 +0000 (11:14 +0200)]
dmeventd: using warning level

When dmevend notices problems, but continues to operate normally
change log level to warning.

9 years agodmeventd: no registering of 0 event mask
Zdenek Kabelac [Thu, 22 Oct 2015 09:10:57 +0000 (11:10 +0200)]
dmeventd: no registering of 0 event mask

Whenever user tries to register 0 mask report this as EINVAL.

9 years agodmeventd: thin plugin update
Zdenek Kabelac [Tue, 20 Oct 2015 12:19:35 +0000 (14:19 +0200)]
dmeventd: thin plugin update

Use  dm_make_percent for percentage calculation like lvm2 command.

Use a single call for resize.

9 years agodmeventd: snapshot plugin device removal
Zdenek Kabelac [Thu, 22 Oct 2015 13:38:24 +0000 (15:38 +0200)]
dmeventd: snapshot plugin device removal

Add #ifdef-ed code to have ability to even remove unusable device.
For now purely experimental.

9 years agodmeventd: snapshot plugin updates
Zdenek Kabelac [Thu, 22 Oct 2015 13:35:55 +0000 (15:35 +0200)]
dmeventd: snapshot plugin updates

Improve test for invalid snapshot.

Use dm_make_percent() to manipulate with exactly same percentage
as lvm2 command is using.

9 years agodmeventd: mirror plugin update
Zdenek Kabelac [Thu, 22 Oct 2015 15:09:43 +0000 (17:09 +0200)]
dmeventd: mirror plugin update

Don't use  --config  - this requires reload of lvm.conf

9 years agodmeventd: raid plugin reporting
Zdenek Kabelac [Thu, 22 Oct 2015 08:38:40 +0000 (10:38 +0200)]
dmeventd: raid plugin reporting

Fix raid logging introduced with last updating commit.

9 years agodmeventd: lvm2 plugin correctly debug
Zdenek Kabelac [Thu, 22 Oct 2015 08:38:05 +0000 (10:38 +0200)]
dmeventd: lvm2 plugin correctly debug

Fix debug message and report exit when really doing it.
Also add missing '_' to static function.

9 years agodmeventd: check for malloc return
Zdenek Kabelac [Mon, 19 Oct 2015 08:59:09 +0000 (10:59 +0200)]
dmeventd: check for malloc return

9 years agolibdm: add dm_hold_control_dev
Zdenek Kabelac [Wed, 21 Oct 2015 18:36:15 +0000 (20:36 +0200)]
libdm: add dm_hold_control_dev

Support hold of control device open.
Useful for daemons so the control device is not frequently reopenned.

9 years agotools: do not change signals for memlocked daemons
Zdenek Kabelac [Thu, 22 Oct 2015 08:45:58 +0000 (10:45 +0200)]
tools: do not change signals for memlocked daemons

9 years agotools: preselect some setting for memlocked daemons
Zdenek Kabelac [Thu, 22 Oct 2015 08:44:38 +0000 (10:44 +0200)]
tools: preselect some setting for memlocked daemons

When our daemon is locked into memory - avoid
communication with dmeventd and also skip
suspended devices.

9 years agomemlock: report memlock daemon counter
Zdenek Kabelac [Thu, 22 Oct 2015 08:43:58 +0000 (10:43 +0200)]
memlock: report memlock daemon counter

Add internal memlock_count_daemon().

Function can be used to recognize it's being executed
from daemon restricted execution inside /lib code.

9 years agolib: better reporting of threshold
Zdenek Kabelac [Thu, 22 Oct 2015 08:46:39 +0000 (10:46 +0200)]
lib: better reporting of threshold

Simplify code reporting warning about incorrect thresholds.

9 years agoman: document possible lvmetad -l values
David Teigland [Wed, 21 Oct 2015 18:36:57 +0000 (13:36 -0500)]
man: document possible lvmetad -l values

In the man page and the lvmetad help output.

9 years agolibdaemon: fix typo in last log enable commit
David Teigland [Wed, 21 Oct 2015 16:22:22 +0000 (11:22 -0500)]
libdaemon: fix typo in last log enable commit

9 years agolibdaemon: allow all debug levels for stderr
David Teigland [Wed, 21 Oct 2015 16:16:59 +0000 (11:16 -0500)]
libdaemon: allow all debug levels for stderr

The parsing code for log levels was missing
some levels.  Also ignore an unrecognized
level name rather than failing.

9 years agotests: add lvmetad shutdown on idle test
Ondrej Kozina [Tue, 20 Oct 2015 13:41:42 +0000 (15:41 +0200)]
tests: add lvmetad shutdown on idle test

9 years agolvmetad.8.in: update man page with timeout info
Ondrej Kozina [Tue, 20 Oct 2015 11:33:29 +0000 (13:33 +0200)]
lvmetad.8.in: update man page with timeout info

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