Re: [Nbd] proposal
- To: Folkert van Heusden <folkert@...421...>
- Cc: nbd-general@...72...
- Subject: Re: [Nbd] proposal
- From: Wouter Verhelst <w@...112...>
- Date: Thu, 15 Sep 2011 09:14:29 +0200
- Message-id: <20110915071429.GD29036@...3...>
- In-reply-to: <CAFDOyVABADMhc54mtFGiqF__88Akb7Ou5tPsCEgK=m7R2OGk-g@...18...>
- References: <CAFDOyVABADMhc54mtFGiqF__88Akb7Ou5tPsCEgK=m7R2OGk-g@...18...>
On Wed, Sep 14, 2011 at 09:47:55AM +0200, Folkert van Heusden wrote:
> Hi,
>
> I propose two new commands:
>
> - NBD_SERVER_INFO
> which retrieves a textual description of the server it is connected
> to. this then can for example contain information like buffer
> settings, parameters, version of the software used, etc.
That sounds like something that could be done in the negotiation phase,
during the option haggling. I don't think I'd like to see this
afterwards.
> - NBD_ELABORATE_ON_ERROR
> if a command fails, an error code is returned. afaik this is an errno
> value. sometimes you want to elaborate on this. for example a
> server-device which detected that the datastructures got invalid or so
> me return EINVALID (or whatever) and in response to this command a
> textual description of what is wrong: "datastore corrupt, run fsck"
Yes, there're definite problems with the current error handling. I
didn't realize it at the time when I suggested it, but the absolute
value of errno is very ill defined; POSIX only defines the symbolic
names, nothing more, and on Linux the actual value can even be different
from one architecture to another.
I've been thinking of creating an NBD-specific list of error values, so
that a client can have some more useful information.
Adding textual info could also be an interesting idea, but the only
problem I see with that is that it would entail a change of the
protocol. Currently, an error returns only the nbd_reply data, nothing
more; if we want to add textual data to that, it would require adding a
length field, followed by an amount of textual data to the reply. This
is doable, I suppose, but would change the protocol incompatibly.
--
The volume of a pizza of thickness a and radius z can be described by
the following formula:
pi zz a
Reply to: