On Wed, 23 Jul 2014, Doug Hellmann wrote:
That's bad enough, but much worse, this will catch all sorts of
exceptions, even ones that are completely unexpected and ought to
cause a more drastic (and thus immediately informative) failure
than 'something failed’.

In most cases, we chose to handle errors this way to keep the service
running even in the face of “bad” data, since we are trying to
collect an audit stream and we don’t want to miss good data if we
encounter bad data.

a) I acknowledge that you're actually one of the "elders" to whom I
   referred earlier so I hesitate to disagree with you here, so feel
   free to shoot me down, but...

b) "keep the service running" in the face of "bad" is exactly the
   sort or reason why I don't like this idiom. I think those
   exceptions which we can enumerate as causes of "bad" should be
   explicitly caught and explicitly logged and the rest of them
   should explicitly cause death exactly because we don't know
   what happened and the situation is _actually_ exceptional and we
   ought to know now, not later, that it happened, and not some
   number of minutes or hours or even days later when we notice that
   some process, though still running, hasn't done any real work.

   That kind of "keep it alive" rationale often leads to far more
   complex debugging situations than otherwise.

In other words there are two kinds of "bad": The bad that we know
and can expect (even though we don't want it) and the bad that we
don't know and shouldn't expect. These should be handled
differently.

A compromise position (if one is needed) would be something akin to,
but not exactly like:

    except (TheVarious, ExceptionsIKnow) as exc:
        LOG.warning('shame, no workie, but you know, it happens: %s', exc)
    except Exception:
        LOG.exception('crisis!')

This makes it easier to distinguish between the noise and the nasty,
which I've found to be quite challenging thus far.

--
Chris Dent tw:@anticdent freenode:cdent
https://tank.peermore.com/tanks/cdent
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to