Peter Rajnoha
acbb93a383
Rename "stat" to "status" in dmeventd_snapshot.c.
...
Otherwise "warning: declaration of ‘stat’ shadows a global declaration"
will appear because it shadows "stat" from stat.h.
2010-02-15 12:55:20 +00:00
Alasdair Kergon
46cabd8a2e
Remove pointless versioned symlinks to dmeventd plugin libraries.
2010-02-02 14:09:17 +00:00
Alasdair Kergon
30265f6ad2
Fix dmeventd snapshot plugin build dependency.
2010-02-02 14:03:50 +00:00
Milan Broz
676b511245
Fix syslog prefix in the first message (dmeventd->lvm).
2010-01-22 12:48:58 +00:00
Milan Broz
257bb03948
Fix exported symbols for lvm2 dmeventd wrapper.
2010-01-22 12:38:16 +00:00
Alasdair Kergon
fff0de4865
fix lib include
2010-01-22 00:18:37 +00:00
Alasdair Kergon
d3d98fdc1e
Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use.
2010-01-21 22:15:45 +00:00
Alasdair Kergon
f7729ec651
more build fixes
2010-01-19 01:10:46 +00:00
Zdenek Kabelac
5a4eeb69c4
Cleanup gcc warning: null argument where non-null required (arg.2)
...
As the const declaration of execvp is a bit weird, using local
dmeventdpath string.
2010-01-14 10:11:26 +00:00
Milan Broz
bf8c8a6d61
Remove empty "repaired" devices if empty in lvconvert.
...
The logic was that lvconvert repair volumes, marking
PV as MISSING and following vgreduce --removemissing
removes these missing devices.
Previously dmeventd mirror DSO removed all LV and PV
from VG by simply relying on
vgreduce --removemissing --force.
Now, there are two subsequent calls:
lvconvert --repair --use-policies
vgreduce --removemissing
So the VG is locked twice, opening space for all races
between other running lvm processes. If the PV reappears
with old metadata on it (so the winner performs autorepair,
if locking VG for update) the situation is even worse.
Patch simply adds removemissing PV functionality into
lvconcert BUT ONLY if running with --repair and --use-policies
and removing only these empty missing PVs which are
involved in repair.
(This combination is expected to run only from dmeventd.)
2010-01-06 13:26:21 +00:00
Alasdair Kergon
32780caae3
Log failure type and recognise type 'F' (flush) in dmeventd mirror plugin.
2009-11-25 15:59:07 +00:00
Milan Broz
f145ddc9e7
Fix install_device-mapper Makefile target to not build dmeventd plugins.
2009-11-13 12:48:01 +00:00
Petr Rockai
241e84f79d
Only announce mirror monitoring to syslog after initialisation succeeds.
2009-10-22 10:40:41 +00:00
Alasdair Kergon
ae1e83aa94
Attempt to build dmeventd.static.
2009-10-13 02:35:26 +00:00
Alasdair Kergon
902c4069dc
More build cleanups (linker parameter ordering).
2009-10-13 01:31:10 +00:00
Alasdair Kergon
79aa89a62a
Extra libs must be appended, not defined first.
2009-10-09 16:04:54 +00:00
Alasdair Kergon
437219e27d
More makefile cleaning up and fixing. (gentoo)
2009-10-05 13:46:00 +00:00
Alasdair Kergon
db8b5af9d9
Allow for a build directory separate from the source.
2009-10-02 19:10:31 +00:00
Alasdair Kergon
cf8ee443e5
Fix dmeventd _temporary_log_fn parameters. (2.02.50)
2009-09-17 10:37:23 +00:00
Mikulas Patocka
3395d72881
Change exit() to _exit() in the child process. exit flushes stdio file buffers,
...
_exit doesn't. If there were some open files, an error in exec and subsequent
exit() would cause the buffers to be flushed twice.
Example:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
printf("buu");
if (!fork()) {
execl("/bin/true-not-exists", "/bin/true", NULL);
exit(1);
}
wait(NULL);
return 0;
}
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com
---
daemons/dmeventd/libdevmapper-event.c | 2 +-
lib/misc/lvm-exec.c | 2 +-
test/harness.c | 3 ++-
tools/dmsetup.c | 2 +-
4 files changed, 5 insertions(+), 4 deletions(-)
2009-07-13 21:26:41 +00:00
Alasdair Kergon
476d463348
pre-release tidy up
2009-06-30 18:39:31 +00:00
Petr Rockai
1f164ad9d0
- Ignore suspended devices during repair (Milan).
...
- Call vgreduce --removemissing (without --force) automatically to clean up bad
PVs (Milan).
2009-06-15 14:47:39 +00:00
Milan Broz
01fb9ca9a0
Do not fork daemon when dmeventd cannot be found.
2009-06-15 12:29:41 +00:00
Milan Broz
c26488d348
Use lvconvert --repair instead of vgreduce in mirror dmeventd DSO (mornfall)
...
Introduce lvconvert --use_policies (mornfall)
2009-06-04 12:01:15 +00:00
Alasdair Kergon
450928e304
Revert:
...
Use lvconvert --repair in dmeventd mirror DSO.
for now.
It replaces bad behaviour in one set of circumstances with bad behaviour
in a different set. We think the behaviour needs to be more configurable.
2009-05-20 22:24:48 +00:00
Milan Broz
ac0034c20f
Use lvconvert --repair in dmeventd DSO (mornfall)
...
This means two things:
1) Non-mirrored LVs will be no longer affected by mirror monitoring. (Before,
if you had a LV that went partially missing on a VG where a mirror leg failed,
this LV would be removed automatically by dmeventd... Probably not an
unrecoverable dataloss bug, but still quite unpleasant.)
2) If enough parallel PV space is available at the time of the mirror failure,
the failed devices will be automatically replaced using this spare space. Which
(and whether) free space may be used is still not configurable, but is a
planned feature. Since it is relatively easy to undo the action by converting
the mirror manually, I don't consider this to be a showstopper. In fact, I
think the compromise is much better than what we have now.
2009-05-19 10:25:16 +00:00
Milan Broz
0b502933c5
Introduce lvm2_install target.
...
Buildsystem support device-mapper only install,
but generic install tagret includes both dm+lvm2.
For distribution which uses separate install_device-mapper,
there is no way how to install lvm2 only
(so after installing lvm2 for packaging purposes
built system must remove installed device-mapper files).
Fix it by allowing lvm2_install target, similarily like
install_cluster for clvmd.
(install = install_device-mapper + install_lvm2)
2009-05-11 10:28:45 +00:00
Milan Broz
be82186cba
Do not use generic install if running install_device-mapper.
...
It propagates into subdirs which includes DSOs which requires
lvm2 build (only install_device-mapper should propagate there).
2009-05-11 10:12:35 +00:00
Zdenek Kabelac
beeae21dbb
Do not create some dm and lvm static librarie when they are not requested
...
by configure option
Add dependency for static dmeventd library
2009-04-08 14:04:35 +00:00
Alasdair Kergon
77b69aa724
make install_device-mapper
2008-11-04 17:25:32 +00:00
Alasdair Kergon
a479de2e75
dmeventd
2008-11-04 15:55:27 +00:00
Alasdair Kergon
56d8844068
more fixes
2008-11-04 15:07:45 +00:00
Alasdair Kergon
d4b9af444c
more tweaks for dmeventd - not finished yet
2008-11-03 23:01:21 +00:00
Alasdair Kergon
2c44337bd5
Right, a simple build (without options) is working again.
2008-11-03 22:14:30 +00:00
Milan Broz
ffc4a05bda
Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
...
snapshot DSO unregistered itself when snapshot changed state to invalid.
This can cause a race (and several timeouts), when for example another snapshot
is added and in the middle of operation (suspend/resume) the monitoring thread
unregister itself.
Fix it by keeping the snapshot monitored after invalidation - just reset
threshold to not really print any messages to syslog.
2008-10-13 12:06:30 +00:00
Milan Broz
550463b5e1
Fix mirror DSO to call vgreduce with proper parameters.
2008-09-25 15:52:29 +00:00
Petr Rockai
8153260792
Add #include <signal.h> to dmeventd.c, fixes compilation on NetBSD.
2008-07-09 13:26:07 +00:00
Petr Rockai
2a9a80c9bb
Fix dmeventd regression where mirror and snapshot monitoring libraries
...
failed to link against liblvm2cmd.
Dmeventd DSOs *require* lvm2cmd to be linked in.
For the future:
1) AC_SUBST does not create Makefile variables, only @foo@-style substitutions
2) When using `test', whitespace around `=' is essential:
test a=b is true, as is test a=a
2008-07-09 09:59:42 +00:00
Zdenek Kabelac
c454025a0f
Added generation of the versioned libdevmapper-event.so for LVM's test
2008-06-27 15:36:51 +00:00
Jim Meyering
aa4d1e3106
avoid link failure when configuring without --enable-cmdlib
...
* configure.in (LVM2CMD_LIB): Define if --enable-cmdlib.
* dmeventd/mirror/Makefile.in (CLDFLAGS): Use $(LVM2CMD_LIB) rather
than hard-coding -llvm2cmd.
* dmeventd/snapshot/Makefile.in (CLDFLAGS): Likewise.
2008-06-23 09:25:08 +00:00
Alasdair Kergon
4e9083db10
Fix mirror log name construction during lvconvert. (2.02.30)
...
Make monitor_dev_for_events recurse through the stack of LVs.
Clean up some more compiler warnings.
Add mirror names test script.
2008-01-31 12:19:36 +00:00
Petr Rockai
a98a2d4a4e
Amend previous commit. * does not match .files...
2008-01-09 15:33:25 +00:00
Petr Rockai
67961c7c10
Add snapshot dmeventd library (enables dmeventd snapshot monitoring).
2008-01-09 15:32:19 +00:00
Petr Rockai
cd1a7e80c0
Fix a possible double-free in libdevmapper-event.
2007-11-27 12:26:06 +00:00
Jim Meyering
7f8f8bfa09
Correct typo in comments: s/is part of the LVM2/is part of LVM2/.
...
Signed-off-by: Jim Meyering <jim@meyering.net>
Author: Jim Meyering <jim@meyering.net>
2007-09-21 10:16:45 +00:00
Alasdair Kergon
147d5faccf
Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
2007-08-21 16:26:07 +00:00
Alasdair Kergon
27c7135097
Use NULL not 0.
...
Remove worthless comment.
2007-08-05 00:13:02 +00:00
Petr Rockai
674cfe8071
Fix a possible segfault in libdevmapper-event. Thanks to Brian J. Wood
...
for noticing this.
2007-08-02 22:31:59 +00:00
Jim Meyering
f28fd56f76
libdevmapper, dmeventd: be paranoid about detecting write failure
...
* dmeventd/dmeventd.c (_set_oom_adj): When writing to /proc/self/oom_adj,
detect failure even if it's hidden behind ferror. [Using dm_fclose's
extra ferror test here is probably not needed, since the amount written
is nowhere near BUFSIZ, but use it regardless, for consistency. ]
* lib/fs/libdevmapper.c (do_suspend): Detect fclose failure when
writing to suspend.
2007-07-24 14:16:48 +00:00
Alasdair Kergon
1bf5aae913
Change some #include lines to search only standard system directories.
2007-04-27 17:46:16 +00:00
Petr Rockai
6e23a8aa20
Fix the regression introduced by dmeventd leak fixes.
2007-04-24 13:29:02 +00:00
Petr Rockai
727f266227
Fix some memory leaks in dmeventd.
2007-04-23 15:06:03 +00:00
Milan Broz
0329281b49
Fix libdevmapper-event memory leaks
2007-04-19 19:10:19 +00:00
Alasdair Kergon
c2784df48f
Remove unnecessary memset() return value checks. [Jim Meyering]
2007-03-16 14:36:14 +00:00
Alasdair Kergon
112d09deb1
Improve dmeventd messaging protocol: drain pipe and tag messages.
2007-02-02 17:08:51 +00:00
Alasdair Kergon
aca043364e
dmeventd mirror sets ignore_suspended_devices and avoids scanning mirrors.
2007-01-25 23:32:29 +00:00
Alasdair Kergon
232da7ecc7
Add some missing close() and fclose() return value checks.
2007-01-25 14:16:20 +00:00
Alasdair Kergon
3329c69865
Add private variable to dmeventd shared library interface.
2007-01-23 17:40:40 +00:00
Alasdair Kergon
d28dfb5720
add a dso-private variable to dmeventd interface
...
more inline docn
2007-01-23 17:38:39 +00:00
Alasdair Kergon
4dcaa2300c
Add dm_event_handler_[gs]et_timeout functions.
...
Streamline dm_report_field_* interface.
2007-01-22 15:03:57 +00:00
Alasdair Kergon
8bbec04d5b
var dev_name->device_name (lvm2 has dev_name())
2007-01-19 20:42:09 +00:00
Alasdair Kergon
919ab64fdb
fix exit status; always print message on child failure
2007-01-19 18:08:36 +00:00
Alasdair Kergon
fcdf2e09a2
Add cmdline debug & version options to dmeventd.
...
Fix oom_adj handling.
2007-01-19 17:22:17 +00:00
Alasdair Kergon
c63c19a73e
stat oom_adj and stay silent if it doesn't exist
...
dm_event_handler now keeps private copies of strings
2007-01-17 14:45:10 +00:00
Alasdair Kergon
5611829c89
more fixes
2007-01-16 23:03:13 +00:00
Alasdair Kergon
f6af1a67b5
more little fixes
2007-01-16 21:13:07 +00:00
Alasdair Kergon
74885e2203
clean up global mutex usage and fix a race in thread finalisation code
...
properly clean up thread status when thread terminates from within
2007-01-16 20:27:07 +00:00
Alasdair Kergon
e125e1547f
dmeventd oom_adj + reduce thread stack size
2007-01-16 20:13:04 +00:00
Alasdair Kergon
61997bb9bb
Add basic reporting functions to libdevmapper.
2007-01-16 18:04:15 +00:00
Alasdair Kergon
d5ec3c8889
reduce some if/else complexity
2007-01-15 22:37:40 +00:00
Alasdair Kergon
528329f199
Fix a malloc error path in dmsetup message.
2007-01-15 22:05:50 +00:00
Alasdair Kergon
6ae178f91c
fix recent checkins
2007-01-15 19:47:49 +00:00
Alasdair Kergon
25f063d8b7
fail registration if timeout thread cannot be started
2007-01-15 19:19:31 +00:00
Alasdair Kergon
b2486b3d7d
use DMEVENTD_PATH
2007-01-15 19:11:58 +00:00
Alasdair Kergon
c7a5306039
static naming
2007-01-15 18:58:40 +00:00
Alasdair Kergon
02059c81e7
Some libdevmapper-event interface changes.
2007-01-15 18:22:02 +00:00
Alasdair Kergon
931d24a4b1
More libdevmapper-event interface changes and fixes.
...
Rename dm_saprintf() to dm_asprintf().
2007-01-15 18:21:01 +00:00
Alasdair Kergon
8ef6eb30d9
Report dmeventd mirror monitoring status.
2007-01-12 20:38:30 +00:00
Alasdair Kergon
c8ee38201d
Reinstate dm_event_get_registered_device
2007-01-12 20:22:11 +00:00
Alasdair Kergon
6b36e863cb
updated dmeventd interface
2007-01-11 22:24:32 +00:00
Alasdair Kergon
3165248642
Lots of dmeventd-related changes.
2007-01-11 21:54:53 +00:00
Alasdair Kergon
7cc6c5d79a
fail if status args are missing
2007-01-11 20:11:19 +00:00
Alasdair Kergon
65e635b685
Remove dmeventd mirror status line word limit
2007-01-11 19:52:06 +00:00
Alasdair Kergon
4594807a24
Use CFLAGS when linking so mixed sparc builds can supply -m64.
2007-01-11 16:23:22 +00:00
Alasdair Kergon
616c3eccfd
fix last checkin
2007-01-08 15:35:08 +00:00
Alasdair Kergon
5b95f17814
Lots of dmevent changes.
...
Export dm_basename().
Cope with a trailing space when comparing tables prior to possible reload.
2007-01-08 15:18:52 +00:00
Alasdair Kergon
6032a223f4
Add dmeventd_mirror register_mutex, tidy initialisation & add memlock.
2007-01-08 14:24:20 +00:00
Alasdair Kergon
0c8569edea
Fix dmeventd mirror to cope if monitored device disappears.
2006-12-20 14:35:02 +00:00
Alasdair Kergon
7d7736b7b4
Add dm_split_words() and dm_split_lvm_name() to libdevmapper.
2006-08-21 12:07:03 +00:00
Alasdair Kergon
f1dc5cc99b
Add mutex to dmeventd_mirror to avoid concurrent execution.
2006-07-04 18:57:27 +00:00
Alasdair Kergon
aeb2c277a8
Add mirror log fault-handling policy.
2006-05-11 19:45:53 +00:00
Alasdair Kergon
2a99b5b816
Avoid a dmeventd compiler warning.
2006-05-11 19:08:02 +00:00
Alasdair Kergon
6657d5b66b
Move DEFS into configure.h.
...
Remove dmsetup line buffer limitation.
2006-05-10 19:38:25 +00:00
Alasdair Kergon
dfb5da937e
tweak .so loading messages; extra device_exists() sanity check
2006-04-28 14:08:04 +00:00
Alasdair Kergon
b4cbeca164
fix makefile
2006-04-19 17:32:05 +00:00
Alasdair Kergon
126a5696f2
fix makefile
2006-04-19 17:24:00 +00:00
Alasdair Kergon
06541daa12
fix makefile
2006-04-19 17:15:08 +00:00
Alasdair Kergon
0c8ff3ad63
make pkgconfig installation step optional, and clean up generated files
2006-04-19 16:38:56 +00:00
Alasdair Kergon
d81e3d0bad
configure/makefile tidying + pkg-config support.
2006-04-19 15:23:10 +00:00
Alasdair Kergon
9ab7701215
dmeventd thread/fifo fixes.
2006-03-09 21:33:59 +00:00