BIND 10 #805: Client side code to request new sockets (C++)

BIND 10 Development do-not-reply at isc.org
Fri Jan 6 07:10:07 UTC 2012


#805: Client side code to request new sockets (C++)
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  vorner
  stephen                            |                Status:  reviewing
                       Type:         |             Milestone:
  enhancement                        |  Sprint-20120110
                   Priority:         |            Resolution:
  blocker                            |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  Unclassified                       |  Estimated Difficulty:  5
                   Keywords:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
  Socket creator                     |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Replying to [comment:21 vorner]:

 > The current problem is, it leaks the socket somewhere. It provides the
 socket the first time, but the startup is kind of broken, so it resets the
 sockets once again, it returns them (according to the log messages), but
 it fails to create them again with „Address already in use“. If you would
 like to have a look (or anybody else), it's in the branch trac805-merged.
 Unluckily for me, I can't do much testing, I have problems installing, but
 I don't know exactly why.

 It seems to me that 01d2bc6 fixed the leak.  I suspect, from that you
 (reportedly) couldn't install it, that you tested it "from source"
 using run_bind10.sh without even selectively installing the socket
 creator program.

 If my guess is correct, you are hit by another, unrelated bug that the
 bind10.special_component module unconditionally invokes the installed
 version of socket creator.  If that is the case please try the
 attached patch.

 As for how to test SO_REUSEADDR, if it's okay to actually get the
 socket the creator code we can test it using getsockopt.

 I've noticed a few of other things:

 - at least per API even close(2) could fail.  I believe we should
   catch that case and kill the socket creator should that happen.
 - same for send_fd()
 - sockcreator.cc breaks many style guidelines.

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


More information about the bind10-tickets mailing list