BIND 10 #851: b10-auth (+ hotspot cache) can crash in handling query when DB is busy

BIND 10 Development do-not-reply at isc.org
Thu Apr 14 06:00:27 UTC 2011


#851: b10-auth (+ hotspot cache) can crash in handling query when DB is busy
-------------------------------------+-------------------------------------
                 Reporter:  jinmei   |                Owner:
                     Type:  defect   |               Status:  new
                 Priority:           |            Milestone:  Year 3 Task
  critical                           |  Backlog
                Component:  data     |           Resolution:
  source                             |            Sensitive:  0
                 Keywords:           |  Add Hours to Ticket:  0
Estimated Number of Hours:  0.0      |          Total Hours:  0
                Billable?:  1        |
                Internal?:  0        |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 After looking at the code closely I found the immediate problem
 (i.e. server crash) can be fixed by a quite simple patch.  So I did
 it.  It's in the trac581 branch and is ready for review.

 This fix is a bit suboptimal in terms of performance, because it
 always tries to identify the best matching zone in data sources
 even if the desired answer is cached and subsequent process doesn't
 require the zone information.  But IMO this data source code is
 already too complicated to identify the exact cases that require the
 zone information (and IMO it requires substantial cleanup/refactoring
 anyway).  Also, even with the hot spot cache it's still not that fast
 anyway.  Besides, according to my quick local benchmark using
 auth/benchmarks/query_bench, I've not seen visible performance drop
 due to this patch.

 I'd leave the fix to sqlite3 data source I mentioned in the problem
 description (handle error cases other than SQLITE_DONE separately) to
 a different ticket.

 The proposed changelog entry:
 {{{
 219.?   [bug]           jinmei
         b10-auth, src/lib/datasrc: inconsistency between the hot spot
         cache and actual data source could cause a crash while query
         processing.  The crash could happen, e.g., when an sqlite3 DB file
         is being updated after a zone transfer while b10-auth handles a
         query using the corresponding sqlite3 data source.
         (Trac #851, git TBD)
 }}}

-- 
Ticket URL: <http://bind10.isc.org/ticket/851#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list