Bug 835898 - Bug in DNS cache causes connections until restart of libcurl-using processes
Bug in DNS cache causes connections until restart of libcurl-using processes
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: curl (Show other bugs)
All Linux
unspecified Severity medium
: rc
: ---
Assigned To: Kamil Dudka
Stefan Kremen
Depends On:
Blocks: 835639
  Show dependency treegraph
Reported: 2012-06-27 09:33 EDT by Kamil Dudka
Modified: 2015-07-22 01:42 EDT (History)
5 users (show)

See Also:
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
Last Closed: 2015-07-22 01:42:47 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Kamil Dudka 2012-06-27 09:33:47 EDT
+++ 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:

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@redhat.com on 2012-06-27 15:30:23 CEST ---

upstream commit:

Comment 4 RHEL Product and Program Management 2013-10-13 20:35:26 EDT
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 01:42:47 EDT
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.


Note You need to log in before you can comment on or make changes to this bug.