BIND 10 #1001: busy loop in notify_out

BIND 10 Development do-not-reply at isc.org
Wed Jun 8 21:58:44 UTC 2011


#1001: busy loop in notify_out
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  defect        |                       Status:  new
            Priority:  major         |                    Milestone:  Next-
           Component:  xfrout        |  Sprint-Proposed
           Sensitive:  0             |                     Keywords:
         Sub-Project:  DNS           |              Defect Severity:  High
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
 There's a quite bad busy loop in src/lib/python/isc/notify/notify_out.py.

 Essentially it runs an infinite loop in a separate thread with a
 synchronization mechanism using select:

 {{{
         while self._serving:
             replied_zones, not_replied_zones =
 self._wait_for_notify_reply()
 }}}

 and in NotifyOut._wait_for_notify_reply:

 {{{
 ...
         try:
             r_fds, w, e = select.select(valid_socks, [], [],
 block_timeout)
 ...
 }}}

 The problem is, block_timeout is set to a constant of 0.5s in most of
 the time.

 Such a busy loop is quite naive for production systems and must be
 eliminated.

 This may or may not be related to #988.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1001>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list