Bug 835898

Summary: Bug in DNS cache causes connections until restart of libcurl-using processes
Product: Red Hat Enterprise Linux 6 Reporter: Kamil Dudka <kdudka>
Component: curlAssignee: Kamil Dudka <kdudka>
Status: CLOSED ERRATA QA Contact: Stefan Kremen <skremen>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.3CC: kdudka, ksrot, moremellotron, ovasik, prc
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: curl-7.19.7-43.el6 Doc Type: Bug Fix
Doc Text:
Previously, libcurl did not properly refresh a DNS cache entry after it expired. Consequently, the expired cache entry kept being used despite a fresh DNS entry was available. This resulted in unnecessary connection failures. An upstream patch has been applied on libcurl source code to make sure that expired DNS cache entries are replaced by fresh ones. With the updated packages, such connection failures no longer happen.
Story Points: ---
Clone Of: 835639 Environment:
Last Closed: 2015-07-22 05:42:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 835639    

Description Kamil Dudka 2012-06-27 13:33:47 UTC
+++ This bug was initially created as a clone of Bug #835639 +++

Description of problem:

A bug fixed in version 7.20 of libcurl is affecting a lot of my customers using software that depends on libcurl and maintains long-lived HTTP connection pools. Older versions had race conditions that "locked" stale DNS lookups in memory and prevented fresh DNS lookups. When IP addresses change, the library fails to detect the change and keeps accessing the stale address.

The bug fix is here:
http://sourceforge.net/tracker/index.php?func=detail&aid=2891595&group_id=976&atid=100976

I don't really guess you'll backport this, but I need to file this and get confirmation for my customers so that a decision on whether to junk use of RH-supplied libcurl will be the only recourse.

Version-Release number of selected component (if applicable):

All versions < 7.20.0 of libcurl, including the one in RH5.

How reproducible:

It requires software that relies on connection pooling of libcurl handles and uses multiple threads with some load.

Steps to Reproduce:
1.Load test software using a particular destination name/address.
2.Change the DNS entry.
3.Observe new connections inheriting use of the old address.
  
Actual results:

The DNS change is not picked up.

Expected results:

New connections should see the change without restarting the process.

Additional info:

--- Additional comment from kdudka on 2012-06-27 15:30:23 CEST ---

upstream commit:

https://github.com/bagder/curl/commit/fb5f332

Comment 4 RHEL Program Management 2013-10-14 00:35:26 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unable to address this
request at this time.

Red Hat invites you to ask your support representative to
propose this request, if appropriate, in the next release of
Red Hat Enterprise Linux.

Comment 14 errata-xmlrpc 2015-07-22 05:42:47 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-1254.html