cluster/cmirror-kernel/src dm-cmirror-client.c ...
jbrassow@sourceware.org
jbrassow@sourceware.org
Tue Apr 10 07:12:00 GMT 2007
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: jbrassow@sourceware.org 2007-04-10 08:12:24
Modified files:
cmirror-kernel/src: dm-cmirror-client.c dm-cmirror-common.h
dm-cmirror-server.c dm-cmirror-server.h
Log message:
Bug 235686: Kernel BUG at dm_cmirror_server while recovering region
Several fixes have gone in to fix the handling of this bug:
1) During server relocation (which can happen due to machine failure
or normal mirror suspension), the server value could get set before
the client had a chance to clean-up. This caused the server to
become confused and issue a BUG().
2) perform a flush of the log before suspending. This ensures
that regions which are in-sync get correctly flushed to the disk
log. Without this, there will always be recovery work to be done
when a mirror starts up - even if it was properly in-sync during
shutdown.
3) clean-up memory used to record region users when a mirror is
shutdown. It was possible for some regions to be left over
(causing a memory leak) during certain fault scenarios.
4) properly initialize the state field (ru_rw) in the region
user structure when a mark occurs. Without the initialization,
it was sometimes possible for the region to be misinterpretted
as recovering instead of marked.
5) resolve and unhandled case in server_complete_resync_work
6) reset a variable in cluster_complete_resync_work. Failure
to do so was causing a retry to include the wrong value for
the completion of the resync work - confusing the server.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-client.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.44&r2=1.1.2.45
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-common.h.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.13&r2=1.1.2.14
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-server.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.30&r2=1.1.2.31
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-server.h.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.2&r2=1.1.2.3
More information about the Cluster-cvs
mailing list