BIND 10 #2911: don't fallback from ixfr to axfr due to data source error
BIND 10 Development
do-not-reply at isc.org
Wed May 29 21:23:19 UTC 2013
#2911: don't fallback from ixfr to axfr due to data source error
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: defect | jinmei
Priority: medium | Status:
Component: xfrin | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-20130611
Sub-Project: DNS | Resolution:
Estimated Difficulty: 4 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:18 vorner]:
> I think rejecting it is fine for now. Most people probably didn't set
the flag and I doubt there are many real-world instances either.
Okay.
> > And I don't understand why this part is cited: is it a tab issue or
> > something else?
> >
> > > {{{#!python
> > > def test_config_handler_use_ixfr(self):
> > > # use_ixfr was deprecated and explicitly rejected for now.
> > > config = { 'zones': [
> > > { 'name': 'test.example.',
> > > 'master_addr': '192.0.2.1',
> > > 'master_port': 53,
> > > 'use_ixfr': True
> > > }
> > > ]}
> > >
self.assertEqual(self.xfr.config_handler(config)['result'][0], 1)
> > > }}}
> >
> > There's not a tab, but the indentation is certainly incorrect. I
> > guess it's a simple mistyping. Fixed.
>
> It may have not been a tab, tabs just show in the diff as differently
indented (because of the `+` at the beginning). In such case it was just
bad indentation.
Regarding test_config_handler_use_ixfr, I see the alignment is awkward
(but basically not because of the branch - this part is basically
copy-pasted). If you mean that, I've fixed it with one other similar
case. If you meant something else, please feel free to edit it as you
like. That's probably the fastest way to fix them.
> However, I don't see any fix for that in the branch and it seems still
broken in my copy.
Sorry, that "fixed" was about ec99eda3e051a84756e35e47ef2ad480a5ba410e
not test_config_..., and I realized I didn't even actually fixed that
one. Now it's really fixed.
> > > I see no threads mentioned in
`fb3b94fa5eec711ff84ef281370eb2bfa95a0b5a` (except the commit message).
Did you mean methods?
> >
> > Ah, right. Should I update the commit using rebase? (Since the
> > branch is already shared I've not touched the history at the moment).
>
> Yes, unless it's a lot of work, as it's only a minor detail.
Hmm, it's not clear this "yes" means I should update it or not. Can
you clarify?
> > > Does the current way of creating zones still have the problem of
leaving an empty zone upon failed attempt?
> >
> > I don't understand the question...is this about config_handler()
> > replacing `_zones`?
>
> No. I mean the fact that we create a new zone if there wasn't one before
in the database. And it's not inside the transaction, so if the transfer
fails for some reason, the data is not committed, but the new zone is
still left in the database, empty.
Ah, okay, that's right. I'm inclined to say it's out of scope for
this ticket, as it's not something introduced by this branch and we
are also expecting fundamental rewrite of xfr's with zone management
framework. But if you think we should update it within this task
strongly, I'm okay with doing it too.
> > As for what we should do in this case may be debatable. But I don't
> > think it a bad idea to continue the transfer using AXFR in such a case
> > (which is what the current branch should do).
>
> Hmm. What will happen if the master copy is broken this way? Will it
reject this on xfr-in, effectively making the transfer fail and retry soon
(and infinitely so)?
Yes, and I think that's actually the right behavior in general. If
the primary sends some broken version, secondaries should simply keep
retrying (with some intervals) until it's eventually fixed at the
primary side. Another side note: in this particular case, it
shouldn't have been due to a bad prior transfer in the first place as
the zone checker should have rejected it. It can only happen due to
something like manually adding a redundant SOA.
In any case, like some other points raised in the review, this is also
not a new change introduced in this branch either. If we want to
change the behavior, I think it should go to a separate ticket...
...but on looking it more closely, I noticed there's a small
discrepancy with the new behavior of this branch and what's described
for the log (ID XFRIN_ZONE_MULTIPLE_SOA). So I just updated that one
to make it match the latest behavior.
--
Ticket URL: <http://bind10.isc.org/ticket/2911#comment:19>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list