hastd: assertion (res->hr_event != NULL) fails in secondary on split-brain

Mikolaj Golub to.my.trociny at gmail.com
Fri Oct 8 14:46:26 UTC 2010


On Thu, 7 Oct 2010 20:24:36 +0200 Pawel Jakub Dawidek wrote:

 PJD> On Tue, Oct 05, 2010 at 09:47:36AM +0200, Pawel Jakub Dawidek wrote:
 >> On Tue, Oct 05, 2010 at 10:05:13AM +0300, Mikolaj Golub wrote:
 >> > 
 >> > On Mon, 4 Oct 2010 23:36:47 +0200 Pawel Jakub Dawidek wrote:
 >> > 
 >> >  PJD> I see three problems:)
 >> > 
 >> >  PJD> 1. In child_kill() you interpret status value always, even if it is
 >> >  PJD>    invalid due to earlier errors.
 >> >  PJD> 2. While copying the code you changed style. Don't you like style(9)?:)
 >> > 
 >> > Me like :-). But it looks like my emacs don't. Need to teach it somehow...
 >> > 
 >> >  PJD> 3. The patch doesn't fix the root cause of the problem.
 >> > 
 >> > Thank you for your comments.
 >> 
 >> The hang you reported is still not fixed, but I'm working on it.

 PJD> Could you verify if the primary/secondary loop doesn't cause hangs
 PJD> anymore with most recent hast?

It doesn't, thanks!

But to test I had to run hastd with two changes. The first was needed to fix
the issue that described in Subject :-) (adding (res->hr_event != NULL) check
in child_cleanup() -- you wrote that the fix was correct but did not commit
it). 

The second one was needed to fix the issue that I observed after the latest
commit r213533:

Oct  8 16:14:04 hasta hastd[2175]: [storage] (primary) G_GATE_CMD_START failed: Invalid argument.
Oct  8 16:14:04 hasta kernel: Version mismatch 0 != 2.

Zerroing hio->hio_ggio we clear version and data pointer. This looks wrong for
me -- they are set and allocated in init_environment(). Also it looks like
setting ggio->gctl_length = MAXPHYS is not needed here too. See the attached
patch.

-- 
Mikolaj Golub

-------------- next part --------------
A non-text attachment was scrubbed...
Name: hastd.patch
Type: text/x-patch
Size: 1023 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20101008/f3cab360/hastd.bin


More information about the freebsd-fs mailing list