From ba2a822490c1ac6e94ec4296eeac09a1a3be2d59 Mon Sep 17 00:00:00 2001 From: Mikolaj Golub Date: Fri, 17 Jun 2011 07:07:26 +0000 Subject: [PATCH] In HAST we use two sockets - one for only sending the data and one for only receiving the data. In r220271 the unused directions were disabled using shutdown(2). Unfortunately, this broke automatic receive buffer sizing, which currently works only for connections in ETASBLISHED state. It was a root cause of the issue reported by users, when connection between primary and secondary could get stuck. Disable the code introduced in r220271 until the issue with automatic buffer sizing is not resolved. Reported by: Daniel Kalchev , danger, sobomax Tested by: Daniel Kalchev , danger Approved by: pjd (mentor) MFC after: 1 week --- sbin/hastd/primary.c | 2 ++ sbin/hastd/secondary.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c index abda5cb33351..af0f35375669 100644 --- a/sbin/hastd/primary.c +++ b/sbin/hastd/primary.c @@ -726,11 +726,13 @@ init_remote(struct hast_resource *res, struct proto_conn **inp, (void)hast_activemap_flush(res); } nv_free(nvin); +#ifdef notyet /* Setup directions. */ if (proto_send(out, NULL, 0) == -1) pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); if (proto_recv(in, NULL, 0) == -1) pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); +#endif pjdlog_info("Connected to %s.", res->hr_remoteaddr); if (inp != NULL && outp != NULL) { *inp = in; diff --git a/sbin/hastd/secondary.c b/sbin/hastd/secondary.c index 1597af83a85d..7120d3da3832 100644 --- a/sbin/hastd/secondary.c +++ b/sbin/hastd/secondary.c @@ -183,9 +183,11 @@ init_remote(struct hast_resource *res, struct nv *nvin) unsigned char *map; size_t mapsize; +#ifdef notyet /* Setup direction. */ if (proto_send(res->hr_remoteout, NULL, 0) == -1) pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); +#endif map = NULL; mapsize = 0; @@ -351,9 +353,11 @@ init_remote(struct hast_resource *res, struct nv *nvin) if (map != NULL) free(map); nv_free(nvout); +#ifdef notyet /* Setup direction. */ if (proto_recv(res->hr_remotein, NULL, 0) == -1) pjdlog_errno(LOG_WARNING, "Unable to set connection direction"); +#endif if (res->hr_secondary_localcnt > res->hr_primary_remotecnt && res->hr_primary_localcnt > res->hr_secondary_remotecnt) { /* Exit on split-brain. */