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