All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] chardev's and fd's in monitors
Date: Thu, 20 Oct 2016 13:45:40 +0200	[thread overview]
Message-ID: <87shrrqm57.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20161020111052.GH12145@redhat.com> (Daniel P. Berrange's message of "Thu, 20 Oct 2016 12:10:52 +0100")

"Daniel P. Berrange" <berrange@redhat.com> writes:

> On Thu, Oct 20, 2016 at 12:01:08PM +0100, Dr. David Alan Gilbert wrote:
>> * Markus Armbruster (armbru@redhat.com) wrote:
>> > "Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
>> 
>> > > The problem is that our way of propagating errors actively discourages 
>> > > people from adding errors and you're left with lots of useless invented errno's.
>> > > error_report makes it easy for people to scatter meaningful error messages
>> > > in at any point.
>> > >
>> > > Make an easy, concise way of reporting an error that fits in with
>> > > a propagation scheme and I'd consider converting stuff.
>> > 
>> > error_setg(errp, "This is as simple as it gets, I'm afraid")
>> > 
>> > Snark aside, I acknowledge the pain of converting call chains to
>> > propagate Error objects, having converted "a few" myself.
>> 
>> If you can get it down to that line it would be great!
>> 
>> But unfortunately it isn't:
>>   a) I have to make sure my cleanup path after that error_setg doesn't
>>      cause any other errors because that breaks the rule
>>      that I can't call error_setg twice.

We disallowed setting a second error because that's a common symptom of
forgotten or botched error handling.

For what it's worth, g_error_set() does the same.

>>   b) I've got to put the whole local_err/error_propagate stuff all over.

Only when you need to examine the errors you're propagating.

>>   c) We insist on allowing the Err ** pointer to be NULL that
>>      removes some potential simplifications.
>
> This last point is one i really dislike - if we could mandate that
> the error parameters was non-NULL, it will eliminate alot of the
> need to use local_err/error_propagate, as you could just check
> if (*errp), and so largely solve (b).

Outlawing null errp shifts the pain to the places that ignore errors.
Whether that would be a win is not obvious.  A patch doing the change
might demonstrate it is, but it would be a lot of work, possibly for
naught.

For what it's worth, g_error_set() permits null, too.

  reply	other threads:[~2016-10-20 11:45 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-12 19:15 [Qemu-devel] chardev's and fd's in monitors Dr. David Alan Gilbert
2016-10-12 20:02 ` Marc-André Lureau
2016-10-13 15:47   ` Dr. David Alan Gilbert
2016-10-18 10:04 ` Daniel P. Berrange
2016-10-18 11:32   ` Dr. David Alan Gilbert
2016-10-18 11:41     ` Marc-André Lureau
2016-10-18 11:44       ` Marc-André Lureau
2016-10-18 12:01     ` Daniel P. Berrange
2016-10-18 13:25       ` Dr. David Alan Gilbert
2016-10-18 13:35         ` Daniel P. Berrange
2016-10-18 13:52           ` Dr. David Alan Gilbert
2016-10-18 14:01             ` Daniel P. Berrange
2016-10-18 18:53               ` Dr. David Alan Gilbert
2016-10-19  7:45                 ` Daniel P. Berrange
2016-10-19  8:00               ` Markus Armbruster
2016-10-19  8:12                 ` Dr. David Alan Gilbert
2016-10-19  8:42                   ` Daniel P. Berrange
2016-10-19  9:48                     ` Markus Armbruster
2016-10-19 10:05                       ` Dr. David Alan Gilbert
2016-10-19 10:16                         ` Daniel P. Berrange
2016-10-19 12:16                           ` Markus Armbruster
2016-10-19 12:21                             ` Daniel P. Berrange
2016-10-19 18:06                               ` Dr. David Alan Gilbert
2016-10-20  8:37                                 ` Daniel P. Berrange
2016-10-20  8:53                                   ` Marc-André Lureau
2016-10-20 10:45                                     ` Markus Armbruster
2016-10-20 16:56                                   ` Paolo Bonzini
2016-10-21  9:12                                     ` Markus Armbruster
2016-10-21 21:06                                       ` Paolo Bonzini
2016-10-24  7:07                                         ` Markus Armbruster
2016-10-21  9:35                                     ` Daniel P. Berrange
2016-10-20 16:59                                   ` Dr. David Alan Gilbert
2016-10-20  8:55                                 ` Markus Armbruster
2016-10-20  9:03                                   ` Daniel P. Berrange
2016-10-20  9:58                                     ` Dr. David Alan Gilbert
2016-10-20 10:42                                       ` Markus Armbruster
2016-10-20 11:01                                         ` Dr. David Alan Gilbert
2016-10-20 11:10                                           ` Daniel P. Berrange
2016-10-20 11:45                                             ` Markus Armbruster [this message]
2016-10-20 11:08                                         ` Daniel P. Berrange
2016-10-20 11:57                                           ` Markus Armbruster
2016-10-20 17:56                                             ` Dr. David Alan Gilbert
2016-10-21  9:06                                               ` Markus Armbruster
2016-10-21  9:37                                                 ` Daniel P. Berrange
2016-10-21 11:56                                                   ` Dr. David Alan Gilbert
2016-10-21  9:45                                                 ` Dr. David Alan Gilbert
2016-10-19 12:26               ` Paolo Bonzini
2016-10-19 17:01                 ` Dr. David Alan Gilbert
2016-10-19 20:51                   ` Paolo Bonzini
2016-10-20  8:34                     ` Daniel P. Berrange
2016-10-18 12:08   ` Markus Armbruster
2016-10-18 12:13     ` Daniel P. Berrange
2016-10-18 12:43       ` Dr. David Alan Gilbert
2016-10-18 10:06 ` Daniel P. Berrange

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=87shrrqm57.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.