Bug 42864

Summary: [Cycle 7] "System.Net.WebException: Error: NameResolutionFailure" on second web request to certain raw IP addresses with HttpClient
Product: [Mono] Class Libraries Reporter: Brendan Zagaeski (Xamarin Support) <brendan.zagaeski>
Component: SystemAssignee: Marek Safar <masafa>
Severity: major CC: aceo, atinc, jean-baptiste.girard, luis.aguilera, masafa, mono-bugs+mono, petr.brant
Priority: High    
Version: 4.4.0 (C7)   
Target Milestone: 4.6.0 (C8)   
Hardware: PC   
OS: Mac OS   
Tags: BZRC7S1_C6SR4S1, C8Beta1 Is this bug a regression?: Yes
Last known good build: Mono 4.2.4 (71b88f3)
Bug Depends on: 41782    
Bug Blocks:    

Description Brendan Zagaeski (Xamarin Support) 2016-07-28 00:45:47 UTC
[Cycle 7] "System.Net.WebException: Error: NameResolutionFailure" on second web request to certain raw IP addresses with HttpClient

This is a follow-up to Bug 41782.  At least when using HttpClient as in the code example below, `ServicePoint.get_HostEntry()` [1] gets called 2 separate times, once for each request.  On the second time, `host` is non-null and `HasTimedOut` is true, so `get_HostEntry()` returns `null` rather than returning the non-null `host`.

[1] https://github.com/mono/mono/blob/d35b5d218894e15cec84273d77cf4a61985edb5f/mcs/class/System/System.Net/ServicePoint.cs#L348

## Steps to replicate

Replace the IP address in the following program with a "bad" IP address that hits the problem and run the program.

using System.Net.Http;

namespace ConsoleApp1
    class MainClass
        public static void Main(string[] args)

        public static void DoRequest()
            var httpClient = new HttpClient();

            var responseTask = httpClient.GetAsync("");
            var response = responseTask.Result;

## Regression status: regression in Cycle 7

BAD:  Mono 4.6.0 (mono-4.6.0-branch/37dea728)      "C8"
BAD:  Mono 4.4.2 (mono-4.4.0-branch-c7sr1/b430435) "C7SR1"
GOOD: Mono 4.2.4 (explicit/71b88f3)                "C6SR4"

## BAD Results

The second call to `DoRequest()` fails:

> Unhandled Exception:
> System.AggregateException: One or more errors occurred. ---> System.Net.WebException: Error: NameResolutionFailure

## GOOD Results

The app runs to completion without error.
Comment 2 Brendan Zagaeski (Xamarin Support) 2016-07-28 00:50:31 UTC
*** Bug 42850 has been marked as a duplicate of this bug. ***
Comment 5 Marek Safar 2016-08-16 13:26:47 UTC
Fixed in master and Mono 4.6