Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Nov 2010 12:01:00 +0100
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Mikolaj Golub <to.my.trociny@gmail.com>
Cc:        freebsd-stable@freebsd.org, Pete French <petefrench@ticketswitch.com>
Subject:   Re: hast vs ggate+gmirror sychrnoisation speed
Message-ID:  <20101101110100.GI2160@garage.freebsd.pl>
In-Reply-To: <86d3qr3m0b.fsf@kopusha.home.net>
References:  <E1PAlxN-000H5x-Eh@dilbert.ticketswitch.com> <86wrp3wj67.fsf@kopusha.home.net> <20101028163036.GA2347@garage.freebsd.pl> <86lj5i3zjt.fsf@kopusha.home.net> <86d3qr3m0b.fsf@kopusha.home.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--pe+tqlI1iYzVj1X/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Oct 30, 2010 at 03:25:56PM +0300, Mikolaj Golub wrote:
>=20
> On Thu, 28 Oct 2010 22:08:54 +0300 Mikolaj Golub wrote to Pawel Jakub Daw=
idek:
>=20
>  PJD>> I looked at the code and the keepalive packets arbe sent from anot=
her
>  PJD>> thread. Could you try turning them off in primary.c and see if that
>  PJD>> helps?
>=20
>  MG> At first I set RETRY_SLEEP to 1 sec to have more keepalive packets. =
The errors
>  MG> started to observe frequently:
>=20
>  MG> Oct 28 21:35:53 bolek hastd[1709]: [storage] (secondary) Unable to r=
eceive request header: RPC version wrong.
>  MG> Oct 28 21:35:54 bolek hastd[1632]: [storage] (secondary) Worker proc=
ess exited ungracefully (pid=3D1709, exitcode=3D75).
>  MG> Oct 28 21:36:12 bolek hastd[1722]: [storage] (secondary) Unable to r=
eceive request header: RPC version wrong.
>  MG> Oct 28 21:36:12 bolek hastd[1632]: [storage] (secondary) Worker proc=
ess exited ungracefully (pid=3D1722, exitcode=3D75).
>  MG> ...
>=20
>  MG> Now I have been running synchronization for more then a half an hour=
 with
>  MG> keepalive_send disabled and have not seen any error.
>=20
> So :-) What do you think about sending keepalive in remote_send_thread() =
to
> avoid this problem and sending them only when a connection is idle (it lo=
oks
> like there is no much use to send them all the time)? Something like in t=
he
> patch below (it works for me).

I like your patch and I agree of course it is better to send keepalive
packets only when connection is idle. The only thing I'd change is to
modify QUEUE_TAKE1() macro to take additional argument 'timeout' - if we
don't want it to time out, we pass 0. Could you modify your patch?

--=20
Pawel Jakub Dawidek                       http://www.wheelsystems.com
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--pe+tqlI1iYzVj1X/
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAkzOnewACgkQForvXbEpPzRzugCeIi7y7O5jKsqxZyhs2rXskvPP
E/wAnitchRQB9Gu217OGm+m3bqSO5bmn
=RXcK
-----END PGP SIGNATURE-----

--pe+tqlI1iYzVj1X/--



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