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. MFC after: 1 week
This commit is contained in:
parent
130419d137
commit
a482904d30
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user