BIND 10 #249: review: auth server can return SERVFAIL with an answer
BIND 10 Development
do-not-reply at isc.org
Fri Jun 25 05:34:38 UTC 2010
#249: review: auth server can return SERVFAIL with an answer
--------------------------+-------------------------------------------------
Reporter: jinmei | Owner: jinmei
Type: defect | Status: reviewing
Priority: major | Milestone: 05. 3rd Incremental Release: Serious Secondary
Component: Unclassified | Resolution:
Keywords: | Sensitive: 0
--------------------------+-------------------------------------------------
Changes (by each):
* owner: UnAssigned => jinmei
Comment:
Replying to [comment:1 jinmei]:
> I decided to fundamentally refactor the test data source mock.
Glorious. Vast improvement. Thank you. Merge it.
> Notes on the bug and fix themselves:
Rather than throwing exceptions from the data source, I would have had
b10-auth look for a SERVFAIL Rcode in the reply from doQuery(), and either
clear the partial answers out of the Message or construct a new Message
with no answer. But, if we're going to throw exceptions, then I agree
with your speculation that we should do so in every SERVFAIL case, not
just the two that you've already done.
> This observation leads to broader discussions. First, I suspect other
internal SERVFAIL cases should actully be changed to exceptions. But I
was not so sure if they are due to something like a broken database or an
unsual, but not necessarily broken error. So I didn't touch them. We
should revisit these cases, too, and, whatever the conclusion is, we
should avoid SERVFAIL+answer for these cases.
AFAIK, SERVFAIL always means either that the database is insane, or we've
been told to do something unnatural (for example, a glue query found on
the task queue, which should never happen). Both seem like natural
circumstances for an exception to me.
My only question about it is, I recall having a conversation early in the
BIND 10 project about someone (maybe you?) running benchmarks that showed
exceptions caused a serious performance hit. If that's true, then maybe
it would be preferable to continue signaling the problem via the Rcode,
and simply handle it better on the calling end? But I'm okay either way.
> So, in a longer term, I think we need to define a border in the top
level data source, under which we cannot assume the validity of the data
and the module must perform validation.
What do you mean by "the module"?
--
Ticket URL: <https://bind10.isc.org/ticket/249#comment:3>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list