[DRBD-user] DRBD (0.6) slows down the application. After some research

Lars Ellenberg Lars.Ellenberg at linbit.com
Mon Sep 12 13:23:30 CEST 2005

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


/ 2005-09-12 12:47:31 +0200
\ Hans Holm:
> 
> Hello again,
> 
> After spending some days with debugging my drbd-0.6.12 problem I found this!
> 
> At the secondary side in the asender thread when reaching sock_recvmsg()
> call the signal DRBD_SIG is blocked when the secondary side is in the
> SynchingQuick state and afterwards in next Connected state.
> 
> Who is blocking it and why?

nobody should. no reason.  (as far as I can remember)

> So the primary always times out waiting for WriteAck and then sends Ping,
> avoiding a completely deadlock.
> The WriteAck is only send after the received Ping, two seconds too late,
> because the secondary asender hangs in  sock_recvmsg() with the DRBD_SIG
> blocked.
> 
> I made the following patch that seems to work fine.
> But I am really a newbie kernel programmer so I am afraid that I am perhaps
> making
> a new bug or something else stupid?
> 
> Please could someone just look at the patch for a moment without taking any
> responsibility for it!?!
> 
> The patch code I used is the same code as you use around sock_sendmsg() call
> in drbd_main.c.

rather try to double check (assert) the sigset,
and allow the signal just befor the while(1) {
in drbd_asender(), and maybe again just before the drbd_recv
within the loop.

it would be interessting which of those two asserts would trigger.

if both do not trigger, but your current one still does,
that would be interessting, too.

thanks for feedback!

	Lars

-- 
: Lars Ellenberg                                  Tel +43-1-8178292-0  :
: LINBIT Information Technologies GmbH            Fax +43-1-8178292-82 :
: Schoenbrunner Str. 244, A-1120 Vienna/Europe   http://www.linbit.com :
__
please use the "List-Reply" function of your email client.



More information about the drbd-user mailing list