Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Mar 2011 20:19:15 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r220007 - head/sbin/hastd
Message-ID:  <201103252019.p2PKJF6E092308@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Fri Mar 25 20:19:15 2011
New Revision: 220007
URL: http://svn.freebsd.org/changeset/base/220007

Log:
  Add mapsize to the header just before sending the packet.
  Before it could change later and we were sending invalid mapsize.
  Some time ago I added optimization where when nodes are connected for the
  first time and there were no writes to them yet, there is no initial full
  synchronization. This bug prevented it from working.
  
  MFC after:	1 week

Modified:
  head/sbin/hastd/secondary.c

Modified: head/sbin/hastd/secondary.c
==============================================================================
--- head/sbin/hastd/secondary.c	Fri Mar 25 20:15:16 2011	(r220006)
+++ head/sbin/hastd/secondary.c	Fri Mar 25 20:19:15 2011	(r220007)
@@ -201,7 +201,6 @@ init_remote(struct hast_resource *res, s
 		    "Unable to allocate memory (%zu bytes) for activemap.",
 		    mapsize);
 	}
-	nv_add_uint32(nvout, (uint32_t)mapsize, "mapsize");
 	/*
 	 * When we work as primary and secondary is missing we will increase
 	 * localcnt in our metadata. When secondary is connected and synced
@@ -339,6 +338,7 @@ init_remote(struct hast_resource *res, s
 		    (uintmax_t)res->hr_secondary_localcnt,
 		    (uintmax_t)res->hr_secondary_remotecnt);
 	}
+	nv_add_uint32(nvout, (uint32_t)mapsize, "mapsize");
 	if (hast_proto_send(res, res->hr_remotein, nvout, map, mapsize) < 0) {
 		pjdlog_exit(EX_TEMPFAIL, "Unable to send activemap to %s",
 		    res->hr_remoteaddr);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103252019.p2PKJF6E092308>