From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24604 invoked by alias); 26 Apr 2007 16:54:50 -0000 Received: (qmail 24587 invoked by uid 9478); 26 Apr 2007 16:54:49 -0000 Date: Thu, 26 Apr 2007 16:54:00 -0000 Message-ID: <20070426165449.24586.qmail@sourceware.org> From: jbrassow@sourceware.org To: cluster-cvs@sources.redhat.com Subject: cluster/cmirror-kernel/src dm-cmirror-client.c ... Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2007-q2/txt/msg00078.txt.bz2 CVSROOT: /cvs/cluster Module name: cluster Branch: RHEL4 Changes by: jbrassow@sourceware.org 2007-04-26 17:54:49 Modified files: cmirror-kernel/src: dm-cmirror-client.c dm-cmirror-server.c Log message: Bug 238031: cluster mirrors not handling all recovery/write conflicts Problem is that the kernel (main mirror code) does not do any marks/clears when writing to a region before its recovery. So, it is not possible for the server to detect a conflict. Basically, we must turn back on the 'is_remote_recovering' function and disallow any writes to regions that are OR WILL BE recovering. It's really going to cause some pain during writes while mirrors are re-syncing. The better fix for the future is to have the writes always mark/clear the regions - then we can again remove the 'is_remote_recovering' function. 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.46&r2=1.1.2.47 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.34&r2=1.1.2.35