1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/tools
Ondrej Kozina 01b06cb71b polldaemon.c: modify log levels in report_progress
There's a race when asking lvmpolld about progress_status and
actually reading the progress info from kernel:

Even with lvmpolld being used we read status info from
LVM2 command issued by a user (client side from lvmpolld perspective).
The whole cycle may look like following:

1) set up an operation that requires polling (i.e. pvmove /dev/sda)
2) notify lvmpolld about such operation (lvmpolld_poll_init())
3) in case 1) was not called with --background it would continue with:
4) Ask lvmpolld about progress status. it may respond with one of:
   a) in_progress
   b) not_found
   c) finished
   d) any low level error

5) provided the answer was 4a) try to read progress info from polling LV
(i.e. vg00/pvmove1). Repeat steps 4) and 5) until the answer is != 4a).

And now we got into racy configuration: lvmpolld answered with in_progress
but it may be the that in_between 4) and 5) the operation has already
finished and polling LV is already gone or there's nothing to ask for.
Up to now, 5) would report warning and it could print such warning many
times if --interval was set to 0.

We don't want to scary users by warnings in such situation so let's just
print these messages in verbose mode. Error messages due to error while
reading kernel status info (on existing, active and locked LV) remained
the same.
2015-05-21 11:20:11 +02:00
..
.exported_symbols generate liblvm2cmd exported symbols too 2010-06-25 18:23:10 +00:00
.gitignore More .gitignore files for an in-source-tree build. 2012-06-08 16:34:43 +01:00
args.h lvmpolld: Add standalone polldaemon. 2015-05-09 00:59:18 +01:00
cmdnames.h Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
commands.h commands.h: reorder lvpoll options 2015-05-15 20:32:25 +02:00
dmsetup.c cleanup: validate pointers 2014-11-13 17:49:42 +01:00
dumpconfig.c lvmconfig: add supporting code for handling deprecated settings 2015-04-30 17:55:04 +02:00
errors.h lvresize: separate validation from action 2013-07-06 03:28:21 +01:00
formats.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvchange.c toollib: do not spawn polling in lv_change_activate 2015-04-13 20:52:22 +02:00
lvconvert_poll.c polldaemon: move lvconvert_get_copy_lv code 2015-05-04 16:56:39 +02:00
lvconvert_poll.h polldaemon: move lvconvert_get_copy_lv code 2015-05-04 16:56:39 +02:00
lvconvert.c lvconvert.c: drop get_vg_lock_and_logical_volume fn 2015-05-19 20:56:32 +02:00
lvcreate.c lvcreate: do not silently accept '-m #' with raid4/5/6 2015-04-07 14:32:25 +02:00
lvdisplay.c tools: allow -S|--select for vgdisplay, lvdisplay and pvdisplay without -C 2015-02-10 16:09:40 +01:00
lvextend.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvm2cmd-static.c Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
lvm2cmd.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvm2cmd.h lvresize: separate validation from action 2013-07-06 03:28:21 +01:00
lvm2cmdline.h Support repetition of --addtag and --deltag arguments. 2010-11-11 17:29:05 +00:00
lvm-static.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvm.c readline: switch to new-style readline typedef 2014-03-06 17:28:40 +01:00
lvmchange.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvmcmdlib.c cleanup: drop unneeded included header files 2012-08-23 14:37:20 +02:00
lvmcmdline.c makefiles: drop LVM_SHARED_PATH 2015-05-18 12:45:42 +02:00
lvmdiskscan.c filters: add cmd->full_filter - composite of cmd->filter and cmd->lvmetad_filter 2014-10-02 13:06:46 +02:00
lvpoll.c polldaemon: remove get_copy_vg and get_copy_lv wrappers 2015-05-19 20:56:15 +02:00
lvreduce.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvremove.c cleanup: tools: "or use -S for selection" --> "or use --select for selection" 2015-03-04 14:40:58 +01:00
lvrename.c cleanup: Use lv_is_ macros. 2014-09-15 21:33:53 +01:00
lvresize.c cleanup: use logical_volume* directly 2014-11-03 14:19:34 +01:00
lvscan.c reporting: should not fail with foreign option if lvm1 pvs exist 2015-03-10 13:56:25 -05:00
Makefile.in makefiles: drop LVM_SHARED_PATH 2015-05-18 12:45:42 +02:00
polldaemon.c polldaemon.c: modify log levels in report_progress 2015-05-21 11:20:11 +02:00
pvchange.c cleanup: tools: "or use -S for selection" --> "or use --select for selection" 2015-03-04 14:40:58 +01:00
pvck.c pvck: Use non-zero exit status after failure. 2014-11-13 12:26:43 +00:00
pvcreate.c vgextend: Use process_each_vg. 2015-02-13 14:58:51 +00:00
pvdisplay.c tools: allow -S|--select for vgdisplay, lvdisplay and pvdisplay without -C 2015-02-10 16:09:40 +01:00
pvmove_poll.c cleanup: drop extra test for NULL 2015-05-09 09:17:26 +02:00
pvmove_poll.h polldaemon: refactor polling interfaces 2015-05-05 20:52:07 +02:00
pvmove.c pvmove.c: code cleanup 2015-05-19 20:56:24 +02:00
pvremove.c pvremove: Avoid metadata re-reads & related error messages. 2015-01-06 14:27:30 +01:00
pvresize.c cleanup: drop unused value assign 2015-02-19 14:43:25 +01:00
pvscan.c cleanup: cast minor to dev_t 2015-05-08 15:15:10 +02:00
reporter.c report: check value of args_are_pvs, not the pointer (fix for commit 9ea77b7) 2015-03-02 10:36:32 +01:00
segtypes.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
stub.h Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
tags.c tools: Add internal tags command. 2014-01-30 13:09:15 +00:00
toollib.c cleanup: remove extraneous parentheses 2015-05-09 09:17:26 +02:00
toollib.h system_id: use for VG ownership 2015-02-13 10:10:27 -06:00
tools.h polldaemon: refactor polling interfaces 2015-05-05 20:52:07 +02:00
vgcfgbackup.c cleanup: remove deallocate_handle_root arg from destroy_procesing_handle fnw 2015-02-13 11:27:09 +01:00
vgcfgrestore.c vgcfgrestore: return invalid cmd line 2014-05-21 23:14:41 +02:00
vgchange.c vgchange: remove redundant check 2015-04-13 20:52:12 +02:00
vgck.c toollib: replace void *handle with struct processing_handle for use in processing functions (process_each_*/process_single_* and related) 2015-02-10 16:05:24 +01:00
vgconvert.c vgconvert: require lvmetad to not be used 2015-03-10 09:31:54 -05:00
vgcreate.c systemid: Extend --foreign to reporting commands. 2015-02-23 23:41:38 +00:00
vgdisplay.c tools: allow -S|--select for vgdisplay, lvdisplay and pvdisplay without -C 2015-02-10 16:09:40 +01:00
vgexport.c cleanup: tools: "or use -S for selection" --> "or use --select for selection" 2015-03-04 14:40:58 +01:00
vgextend.c vgextend: Use process_each_vg. 2015-02-13 14:58:51 +00:00
vgimport.c vgimport: fall back when lvmetad is not running 2015-05-11 09:28:47 -05:00
vgmerge.c vgsplit: Fix VG component of lvid. 2014-07-03 19:06:04 +01:00
vgmknodes.c toollib: replace void *handle with struct processing_handle for use in processing functions (process_each_*/process_single_* and related) 2015-02-10 16:05:24 +01:00
vgreduce.c toollib: replace void *handle with struct processing_handle for use in processing functions (process_each_*/process_single_* and related) 2015-02-10 16:05:24 +01:00
vgremove.c cleanup: tools: "or use -S for selection" --> "or use --select for selection" 2015-03-04 14:40:58 +01:00
vgrename.c report: select: refactor: move str_list to libdm 2014-06-17 16:27:20 +02:00
vgscan.c pvscan, vgscan: include foreign vgs with --cache 2015-02-25 15:46:27 -06:00
vgsplit.c systemid: Extend --foreign to reporting commands. 2015-02-23 23:41:38 +00:00