summaryrefslogtreecommitdiffstats
path: root/sbin/hastd
diff options
context:
space:
mode:
authortrociny <trociny@FreeBSD.org>2013-10-31 20:30:26 +0000
committertrociny <trociny@FreeBSD.org>2013-10-31 20:30:26 +0000
commit69528385720f530d530392d3bdd4fa0ebcbdc8ad (patch)
treeac921bcf2248fde238cd9cf6cd32a291ea5ac738 /sbin/hastd
parent5c41fcfa5521670510fc367a534a8f723e479804 (diff)
downloadFreeBSD-src-69528385720f530d530392d3bdd4fa0ebcbdc8ad.zip
FreeBSD-src-69528385720f530d530392d3bdd4fa0ebcbdc8ad.tar.gz
MFC r257154:
Merging local and remote bitmaps must be protected by hr_amp lock. This is believed to fix hastd crashes, which might occur during synchronization, triggered by the failed assertion: Assertion failed: (amp->am_memtab[ext] > 0), function activemap_write_complete, file activemap.c, line 351. Approved by: re (glebius)
Diffstat (limited to 'sbin/hastd')
-rw-r--r--sbin/hastd/primary.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c
index 09ae17b..bd484e3 100644
--- a/sbin/hastd/primary.c
+++ b/sbin/hastd/primary.c
@@ -781,6 +781,7 @@ init_remote(struct hast_resource *res, struct proto_conn **inp,
free(map);
goto close;
}
+ mtx_lock(&res->hr_amp_lock);
/*
* Merge local and remote bitmaps.
*/
@@ -790,7 +791,6 @@ init_remote(struct hast_resource *res, struct proto_conn **inp,
* Now that we merged bitmaps from both nodes, flush it to the
* disk before we start to synchronize.
*/
- mtx_lock(&res->hr_amp_lock);
(void)hast_activemap_flush(res);
}
nv_free(nvin);
OpenPOWER on IntegriCloud