Re: [Nbd] Testing NBD server implementations for correctness
- To: Alex Bligh <alex@...872...>
- Cc: "nbd-general@lists.sourceforge.net" <nbd-general@lists.sourceforge.net>, libguestfs@...696...
- Subject: Re: [Nbd] Testing NBD server implementations for correctness
- From: Wouter Verhelst <w@...112...>
- Date: Mon, 26 Sep 2016 20:15:06 +0200
- Message-id: <20160926181506.ersl2ajwatrqb2ov@...3...>
- In-reply-to: <6E87D159-3DAA-4C94-A99C-2EE9EBD1F7A6@...872...>
- References: <57E74AFB.4070506@...2724...> <5720E25C-93C9-4DDB-B871-93DC5BA9CD5F@...872...> <20160925112411.byjfmv7qotamd7m4@...3...> <57E8786C.7050306@...2724...> <20160926075320.ubnz3aeszclsrcf2@...3...> <57E8E895.3030103@...2724...> <6E87D159-3DAA-4C94-A99C-2EE9EBD1F7A6@...872...>
On Mon, Sep 26, 2016 at 11:43:42AM +0100, Alex Bligh wrote:
>
> > On 26 Sep 2016, at 10:21, Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@...2724...> wrote:
> >
> > Wow, that was quick! Thank you.
> >
> > I stumbled upon another problem: Apparently nbd-tester-client and nbdkit
> > disagree on what constitutes a valid flush request.
> > nbd-tester-client complains:
> > ./flush
> > 15901: Requests: 3536
> > ** (process:15901): WARNING **: Could not run test: Received error from
> > server: 22 (0x16). Handle is -9223372036854764544 (0x8000000000002C00).
> >
> > nbdkit complains:
> > nbdkit: python[7]: error: invalid flush request: expecting offset and
> > length == 0
> >
> > Not sure where that bug is, nbdkit or nbd-tester-client.
> > - Is the request correct and should have been accepted?
> > - Is the reject correct, but the response is screwed up?
>
> Per the docs:
>
> • For a flush request, length and offset are reserved, and MUST be set to all-zero.
>
> So if nbd-tester-client.c is sending a flush with non-zero length or offset, it is wrong.
Right.
We have had cases in the past where out-in-the-wild implementations
turned out to behave differently to how the spec behaved, but in this
case I think it's a pretty safe bet to say that most implementations
should generally DTRT here. I'm guessing that nbd-tester-client doesn't
because of uninitialized code or something (haven't actually looked at
it, must go, will do so later).
TLDR: nbdkit is correct, nbd-tester-client is not, patches welcome.
--
< ron> I mean, the main *practical* problem with C++, is there's like a dozen
people in the world who think they really understand all of its rules,
and pretty much all of them are just lying to themselves too.
-- #debian-devel, OFTC, 2016-02-12
Reply to: