Re: deprecating Postel's principle - considered harmful

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Sent from my iPhone
> > On May 11, 2019, at 12:34 PM, Ned Freed <ned.freed@xxxxxxxxxxx> wrote:
> >
> > It's even better to continue to have customers and stay in business.

First of all, this comment, as well as the comment from Doug you were
responding to, is in the context of whether or not to code around bugs in other
implementations, not failing to correct bugs in your own implementation.

Second, not everything is security related, and even things that are security
related aren't necessarily about weakening or strengthening security.

> Why would you say this?

I said it because I've been able to keep customers by adding workarounds and
lost customers by not doing so.

> Of course we all understand that there will be pressure to do less work, and
> consequently produce less secure implementations. The question is, should the
> IETF assist or hinder this practice?

Huh? I have no idea what this is supposed to mean. We're talking about  whether
or not to do *additional* work, and the pressure is usually to "make things
work, never mind how".

> Should we normalize it or, not to put too fine a point on it, write our specs
> in such a way that when you do this it’s easy to demonstrate misfeasance when
> you are taken to court?

The odds of this sort of thing landing any of the participants in court,
regardless of what they do or don't do, are quite small. (And when it does
happen, well, let's just say that technical merit doesn't count for as much as
it should.) But the almost certain lack of legal consequences doesn't mean
there aren't risks to consider.

Here's a (suitably anonymized) real world example. Some time back one of our
customers, after several weeks of extensive testing, decided to upgrade our
software across their deployment. Unfortunately, the testing managed to miss a
particular interaction with another vendor's software, with seriously bad
results.

I soon managed to figure out what was happening: We had added an optimization
to our code that made use of a particular protocol feature we hadn't used
before. Despite being a mandatory part of the protocol specification, the other
vendor's product did not implement the feature we now depended on.

The other vendor immediately acknowledged that this was their bug, so
finger-pointing was not an issue.

At this point we had three choices:

(1) Do nothing - it's the other vendor's problem so it's up to them to fix it.

(2) Remove the optimization entirely.

(3) Add a configuration switch to disable use of the option.

Now, by your logic the correct choice is (1). But here's the thing:
Implementing a missing feature is a lot harder than disabling a recently added
optimization. So much so that the customer would have had to back out the
upgrade, downgrade upgraded databases, etc. etc., wait for the new version of
the other vendor's software to come out, test that, upgrade that, and then
restart the original upgrade process.

In constrast, we could - and did - issue a patch to disable our use of the
feature in a matter of hours, salvaging the upgrade.

Of course there was risk in doing this: We could have introduced additional,
possibly worse, problems, problems which in our haste to deploy a fix might not
have been found until much later. And such a problem would have been entirely
our fault.

And maybe that risk are suffcient for you to still believe (1) was the correct
choice. But think for a moment about perception. Upper management types don't
care about specifications, who follows them, and who doesn't. All they are
going to hear is that a major upgrade of our software turned into a
catastrophe, costing lots of time while waiting for another vendor to step in
and solve the issue while we did nothing. Not exactly the record we want when
the time comes to renew our support contract.

By fixing the problem ourselves we managed to both minimize the consequences
and come across as the good guys.

Now, this is just an anecdote, and the plural of anecdote is not data. But I
could just as easily have described a dozen other similar cases, including a
couple where we got on our high horse and promptly crashed it into a wall.

				Ned




[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux