On 09/24/2012 05:28 PM, Grüninger, Andreas (LGL Extern) wrote: > When libqb-0.14.2 (master) is used with pacemaker 1.1.8 (master) the following 2 lines are logged: Are you using git master or 0.14.2 release? Does libqb pass make check with this change? We did a big amount of work on libqb/corosync portability in the last 2/3 weeks and this didn't appear to be a problem with git master. Can you please confirm what you are using? > Sep 21 23:17:27 [19442] cib: error: _process_request_: recv from client connection failed (19442-19447-12): Error 0 (0) > Sep 21 23:17:27 [19442] cib: error: qb_ipcs_dispatch_connection_request: request returned error (19442-19447-12): Transport endpoint is not connected (134) > > In Solaris/OpenIndiana qb_ipc_us_recv_at_most returns -ENOTCONN when a client disconnects. > _process_request_ and qb_ipcs_dispatch_connection_request don't know this and log the 2 errors. > With this patch the logging is suppressed. > > > diff --git a/lib/ipcs.c b/lib/ipcs.c > index 0fa7142..ac9c9fa 100644 > --- a/lib/ipcs.c > +++ b/lib/ipcs.c > @@ -627,7 +627,8 @@ _process_request_(struct qb_ipcs_connection *c, int32_t ms_timeout) > ms_timeout); > } > if (size < 0) { > - if (size != -EAGAIN && size != -ETIMEDOUT) { > + if (size == -ENOTCONN) { > + } else if (size != -EAGAIN && size != -ETIMEDOUT) { > qb_util_perror(LOG_ERR, > "recv from client connection failed (%s)", > c->description); > @@ -774,13 +775,16 @@ qb_ipcs_dispatch_connection_request(int32_t fd, int32_t revents, void *data) > res = QB_MIN(0, res); > if (res == -EAGAIN || res == -ETIMEDOUT || res == -ENOBUFS) { > res = 0; > - } > - if (res != 0) { > + } else if (res == -ENOTCONN) { > + errno = -res; > + qb_ipcs_disconnect(c); > + res = -ESHUTDOWN; > + } else if (res != 0) { > errno = -res; > qb_util_perror(LOG_ERR, "request returned error (%s)", > c->description); > qb_ipcs_connection_unref(c); > - } > + } > > return res; > } > > _______________________________________________ > discuss mailing list > discuss@xxxxxxxxxxxx > http://lists.corosync.org/mailman/listinfo/discuss > _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss