This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug network/19688] resolv: Avoid long-term TCP connections to comply with RFC 5966

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
             Status|ASSIGNED                    |NEW
           Assignee|fweimer at redhat dot com          |unassigned at sourceware dot org
            Summary|Deprecate RES_STAYOPEN and  |resolv: Avoid long-term TCP
                   |ignore the flag in          |connections to comply with
                   |libresolv                   |RFC 5966

--- Comment #2 from Florian Weimer <fweimer at redhat dot com> ---
Also relevant is RFC 5966 section 5:

   To mitigate the risk of unintentional server overload, DNS clients
   MUST take care to minimize the number of concurrent TCP connections
   made to any individual server.  Similarly, servers MAY impose limits
   on the number of concurrent TCP connections being handled for any
   particular client.


I think this means that we cannot keep open TCP connections in glibc at all
because glibc only has a single-process view.  If long-term TCP connections are
enabled (with the use-vc/RES_USEVC option), there is no way glibc can bound the
number of active TCP connections per system (“client” in the RFC sense).

On the other hand, use-vc is not the default, and there may be situations where
it is in the only way to get somewhat reliable DNS resolution.  But I think it
is still better to let a local forwarding resolver handle these details, not
the stub resolver, because the forwarder can have a global, per-system view and
limit outgoing parallel TCP connections.

RES_STAYOPEN should still go away, of course.

You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]