From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] DRBD8: disconnecting while already disconnecting can hang the receiver
Date: Wed, 28 Nov 2007 01:26:21 +0100 [thread overview]
Message-ID: <20071128002621.GA6588@racke.local> (raw)
In-Reply-To: <BD7042533C2F8943A6A4257A9E31C454F47A42@EXNA.corp.stratus.com>
On Tue, Nov 27, 2007 at 04:51:21PM -0500, Montrose, Ernest wrote:
> Phil,
> Your modification to the original patch will break it actually. The
> reason is that we can get into "disconnecting" anywhere.
and that should not be the case.
unfortunately it is, because it is forced everywhere.
grep -n force_state *[ch] | tr -s '\t ' ' ' | grep ': '
drbd_actlog.c:852: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_main.c:1883: drbd_force_state(mdev, NS(conn,BrokenPipe));
drbd_main.c:1885: drbd_force_state(mdev, NS(conn,Timeout));
drbd_nl.c:1025: drbd_force_state(mdev,NS(disk,Diskless));
drbd_receiver.c:589: if(rv != size)
drbd_force_state(mdev,NS(conn,BrokenPipe));
drbd_receiver.c:672: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:1957: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2016: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2023: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2035: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2143: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2225: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2259: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2294: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2447: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:2648: drbd_force_state(mdev,NS(conn,ProtocolError));
drbd_receiver.c:2654: drbd_force_state(mdev,NS(conn,ProtocolError));
drbd_receiver.c:3099: drbd_force_state(mdev,NS(conn,Disconnecting));
drbd_receiver.c:3430: drbd_force_state(mdev,NS(conn,NetworkFailure));
drbd_worker.c:738: drbd_force_state(mdev,NS(conn,NetworkFailure));
drbd_worker.c:1008: drbd_force_state(mdev,NS(conn,NetworkFailure));
I don't think "Disconnecting" should ever be forced.
NetworkFailure and the like are possible "forced" transitions.
"state engine" should then do "the right thing".
most locations above where there is "force -> Disconnecting",
in fact there should be either no "force", or force -> ProtocolError.
--
: Lars Ellenberg Tel +43-1-8178292-55 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe http://www.linbit.com :
next prev parent reply other threads:[~2007-11-28 0:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-18 23:11 [Drbd-dev] DRBD8: disconnecting while already disconnecting can hang the receiver Montrose, Ernest
2007-11-27 10:36 ` Philipp Reisner
2007-11-27 13:06 ` Montrose, Ernest
2007-11-27 14:52 ` Philipp Reisner
2007-11-27 15:06 ` Montrose, Ernest
2007-11-27 21:51 ` Montrose, Ernest
2007-11-28 0:26 ` Lars Ellenberg [this message]
2007-11-28 13:09 ` Philipp Reisner
2007-11-28 14:08 ` Montrose, Ernest
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071128002621.GA6588@racke.local \
--to=lars.ellenberg@linbit.com \
--cc=drbd-dev@lists.linbit.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox