BIND 10 #2911: don't fallback from ixfr to axfr due to data source error
BIND 10 Development
do-not-reply at isc.org
Fri Apr 12 15:44:37 UTC 2013
#2911: don't fallback from ixfr to axfr due to data source error
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: defect | Status: new
Priority: medium | Milestone: Next-
Component: xfrin | Sprint-Proposed
Keywords: | Resolution:
Sensitive: 0 | CVSS Scoring:
Sub-Project: DNS | Defect Severity: N/A
Estimated Difficulty: 0 | Feature Depending on Ticket:
Total Hours: 0 | Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:2 jinmei]:
> Replying to [comment:1 vorner]:
>
> > What happens if the data source does not support differences?
> > Doesn't it throw data source error too?
>
> No, it throws `NotImplemented` in that case.
...I just noticed I myself was confused. Actually, it doesn't matter
if the data source supports diffs in the case of xfrin; it's only an
issue for xfrout. For xfrin, if the diff isn't supported, it would
just apply the diffs to the main table, skipping recording diffs
themselves.
We might want to clarify it in doc, however:
{{{#!cpp
/// If \c journaling is true, the data source should store a journal
/// of changes. These can be used later on by, for example, IXFR-out.
/// However, the parameter is a hint only. It might be unable to store
/// them and they would be silently discarded. Or it might need to
/// store them no matter what (for example a git-based data source
would
/// store journal implicitly). ...
}}}
We should probably clarify (in this task) the underlying
implementation shouldn't throw when journaling is true but it doesn't
have the storage (a "diffs" table of DB, etc), but should just skip
recording them.
On a related note, I think `DataSourceError` is currently too
overloaded: it could mean DB-level errors at various levels
(connection reset, "DB is busy", etc) and upper layer errors (invalid
RDATA text is stored). We should make it possible to distinguish
these cases, either by introducing a different exception class or
by deriving from `DataSourceError`. But that will be out of the scope
of this task.
--
Ticket URL: <http://bind10.isc.org/ticket/2911#comment:3>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list