Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
On Fri, Oct 23, 2015 at 09:49:37AM +0100, Nuno Fernandes wrote:
> A Quinta, 22 de Outubro de 2015 16:47:53 Lars Ellenberg escreveu:
> > On Wed, Oct 21, 2015 at 05:00:56PM +0100, Nuno Fernandes wrote:
kernel: drbd infiniband: conn( Unconnected -> WFConnection )
kernel: drbd infiniband: sock_recvmsg returned -11
kernel: drbd infiniband: conn( WFConnection -> BrokenPipe )
kernel: drbd infiniband: short read (expected size 8)
> > > > > I'm using latest centos 6 with 2.6.32-573.7.1.el6.x86_64 kernel and
> > > > > drbd84 from elrepo.
> > > >
> > > > Last time I checked, it "worked for me".
> > >
> > > It works with drbd 8.3. How can i continue in the debug process? Is there
> > > any loglevel i can increase in drbd kernel module?
> >
> > So, it *still* works with drbd 8.3 on the upgraded kernel,
> > and the only variable is the DRBD version?
>
> That is correct. We didn't upgrade the kernel. Only drbd.
>
> > Or it *used* to work with old drbd on old kernel on old OS,
> > basically on a completely different system?
>
> If uninstall drbd 8.4 and install 8.3 it works fine using SDP.
Hm.
See if this improvesbehaviour for you.
diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c
index d82176f..6213ab7 100644
--- a/drbd/drbd_receiver.c
+++ b/drbd/drbd_receiver.c
@@ -886,11 +886,13 @@ static struct socket *drbd_wait_for_connect(struct drbd_connection *connection,
timeo = connect_int * HZ;
timeo += (prandom_u32() & 1) ? timeo / 7 : -timeo / 7; /* 28.5% random jitter */
- err = wait_for_completion_interruptible_timeout(&ad->door_bell, timeo);
- if (err <= 0)
- return NULL;
-
err = kernel_accept(ad->s_listen, &s_estab, O_NONBLOCK);
+ if (err) {
+ err = wait_for_completion_interruptible_timeout(&ad->door_bell, timeo);
+ if (err <= 0)
+ return NULL;
+ err = kernel_accept(ad->s_listen, &s_estab, O_NONBLOCK);
+ }
if (err < 0 && err != -EAGAIN && err != -EINTR && err != -ERESTARTSYS) {
drbd_err(connection, "accept failed, err = %d\n", err);
conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_HARD);
--
: Lars Ellenberg
: http://www.LINBIT.com | Your Way to High Availability
: DRBD, Linux-HA and Pacemaker support and consulting
DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
__
please don't Cc me, but send to list -- I'm subscribed