1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-28 11:55:55 +03:00
lvm2/daemons/cmirrord
Jonathan Brassow f0be9ac904 cmirrord: Prevent secondary checkpoints from corrupting bitmaps
The bug addressed by this patch manifested itself during testing
by showing a mirror that never became 'in-sync' after creation.
The bug is isolated to distributions that do not have support
for openAIS checkpointing (i.e. > RHEL6, > F16).

When a node joins a group that is managing a mirror log, the other
machines in the group send it a checkpoint representing the current
state of the bitmap.  More than one machine can send a checkpoint,
but only the initial one should be imported.  Once the bitmap state
has been imported from the initial checkpoint, operations (such
as resync, mark, and clear operations) can begin.  When subsequent
checkpoints are allowed to be imported, it has the effect of erasing
all the log operations between the initial checkpoint and the ones
that follow.

When cmirrord was updated to handle the absence of openAIS
checkpointing (commit 62e38da133),
the new import_checkpoint() function failed to honor the 'no_read'
parameter.  This parameter was designed to avoid reading all but
the initial checkpoint.  Honoring this parameter has solved the
issue of corrupting bitmap data with secondary checkpoints.
2013-08-20 13:21:09 -05:00
..
clogd.c clogd: fix descriptor leak when daemonzing 2013-08-06 16:21:51 +02:00
cluster.c cmirrord: Prevent secondary checkpoints from corrupting bitmaps 2013-08-20 13:21:09 -05:00
cluster.h Deal with a few more compiler warnings. 2010-01-20 02:43:19 +00:00
common.h Clean up include files. 2010-01-18 21:07:24 +00:00
compat.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
compat.h Clean up include files. 2010-01-18 21:07:24 +00:00
functions.c cleanup: replace memset with struct initilization 2012-06-22 13:23:03 +02:00
functions.h Clean up include files. 2010-01-18 21:07:24 +00:00
link_mon.c Remove some whitespaces. 2012-03-10 09:32:46 +00:00
link_mon.h Clean up include files. 2010-01-18 21:07:24 +00:00
local.c cmirrord: add missing checks for kernel_send 2012-06-20 14:48:26 +02:00
local.h Clean up include files. 2010-01-18 21:07:24 +00:00
logging.c Clean up include files. 2010-01-18 21:07:24 +00:00
logging.h Use "" instead of <> for configure.h and libdevmapper.h 2010-06-15 11:00:44 +00:00
Makefile.in INSTALL rules updates 2010-04-09 21:42:48 +00:00