From owner-svn-src-all@FreeBSD.ORG Tue Mar 22 20:27:27 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18FA91065676; Tue, 22 Mar 2011 20:27:27 +0000 (UTC) (envelope-from trociny@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0BA1C8FC14; Tue, 22 Mar 2011 20:27:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2MKRQJF070216; Tue, 22 Mar 2011 20:27:26 GMT (envelope-from trociny@svn.freebsd.org) Received: (from trociny@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2MKRQ8R070214; Tue, 22 Mar 2011 20:27:26 GMT (envelope-from trociny@svn.freebsd.org) Message-Id: <201103222027.p2MKRQ8R070214@svn.freebsd.org> From: Mikolaj Golub Date: Tue, 22 Mar 2011 20:27:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219882 - head/sbin/hastd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2011 20:27:27 -0000 Author: trociny Date: Tue Mar 22 20:27:26 2011 New Revision: 219882 URL: http://svn.freebsd.org/changeset/base/219882 Log: After synchronization is complete we should make primary counters be equal to secondary counters: primary_localcnt = secondary_remotecnt primary_remotecnt = secondary_localcnt Previously it was done wrong and split-brain was observed after primary had synchronized up-to-date data from secondary. Approved by: pjd (mentor) MFC after: 1 week Modified: head/sbin/hastd/primary.c Modified: head/sbin/hastd/primary.c ============================================================================== --- head/sbin/hastd/primary.c Tue Mar 22 20:00:27 2011 (r219881) +++ head/sbin/hastd/primary.c Tue Mar 22 20:27:26 2011 (r219882) @@ -1757,13 +1757,13 @@ sync_thread(void *arg __unused) mtx_lock(&metadata_lock); res->hr_syncsrc = HAST_SYNCSRC_UNDEF; res->hr_primary_localcnt = - res->hr_secondary_localcnt; - res->hr_primary_remotecnt = res->hr_secondary_remotecnt; + res->hr_primary_remotecnt = + res->hr_secondary_localcnt; pjdlog_debug(1, "Setting localcnt to %ju and remotecnt to %ju.", (uintmax_t)res->hr_primary_localcnt, - (uintmax_t)res->hr_secondary_localcnt); + (uintmax_t)res->hr_primary_remotecnt); (void)metadata_write(res); mtx_unlock(&metadata_lock); }