<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">we’ve also seen instances of webrequest timeouts that don’t recover (but curl worked) as well but haven’t got to the bottom of it yet.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">we ran your test app and see the same issue with mono 3.12 on OpenSUSE 13.2 (kernel 3.16.7, libc 2.19).
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">we’ll add the diagnostics from your test app into ours and this will tell us whether we are seeing the same issue with the threadpool.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> mono-devel-list-bounces@lists.ximian.com [mailto:mono-devel-list-bounces@lists.ximian.com]
<b>On Behalf Of </b>Seif Attar<br>
<b>Sent:</b> Friday, February 12, 2016 10:43 AM<br>
<b>To:</b> mono-devel-list@lists.ximian.com<br>
<b>Subject:</b> [Mono-dev] WebRequest timeouts after ThreadPool exhaustion<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi,<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">We are running mono 4.2.2 in prod and the VM that the process was running on had SAN failure and after storage recovered, all outgoing requests were timing out, even though doing a curl was working fine.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Theory was that thread pool starved and somehow things didn't recover properly.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Managed to reproduce with:<br>
<br>
<a href="https://gist.githubusercontent.com/seif/ae2defbfa5afa26fa8f6/raw/bef351eded56c882658a4bad60fa4818ad32d629/timeout.cs">https://gist.githubusercontent.com/seif/ae2defbfa5afa26fa8f6/raw/bef351eded56c882658a4bad60fa4818ad32d629/timeout.cs</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Even after ThreadPool finishes the tasks and has available threads, it never recovers and subsequent webrequests all timeout.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Running on mono 4.2.2, linux kernel 4.2.0-27 and libc 2.21.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Output from gdb is:<br>
<br>
(gdb) info threads<br>
  Id   Target Id         Frame<br>
  13   Thread 0x7fca903ff700 (LWP 27944) "cli" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185<br>
  12   Thread 0x7fca90b34700 (LWP 27945) "Finalizer" 0x00007fca911d70c9 in futex_abstimed_wait (cancel=true, private=<optimised out>, abstime=0x0, expected=0, futex=0x948ae0) at sem_waitcommon.c:42<br>
  11   Thread 0x7fca8dfff700 (LWP 27946) "Timer-Scheduler" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  10   Thread 0x7fca91ba1700 (LWP 27947) "cli" __clock_nanosleep (clock_id=1, flags=1, req=0x7fca91ba0dc0, rem=0x7fca90f134aa <__clock_nanosleep+138>) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48<br>
  9    Thread 0x7fca8ddfe700 (LWP 27948) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  8    Thread 0x7fca8dbfd700 (LWP 27949) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  7    Thread 0x7fca8d7fb700 (LWP 27951) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  6    Thread 0x7fca8d3f9700 (LWP 27953) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  5    Thread 0x7fca8d1f8700 (LWP 27954) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  4    Thread 0x7fca8cff7700 (LWP 27955) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  3    Thread 0x7fca8cdf6700 (LWP 27956) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
  2    Thread 0x7fca8cbf5700 (LWP 27957) "Threadpool work" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238<br>
* 1    Thread 0x7fca91cf0780 (LWP 27942) "cli" 0x00007fca911d7e0d in read () at ../sysdeps/unix/syscall-template.S:81<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Could not reproduce on mono 3.12, but it happens on 4.0.3 and 4.2.2<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Is this a known issue? any workarounds? Tried setting MONO_DNS=1 to use the clr dns, but that didn't help.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Let me know if there is any more info I need to provide.<o:p></o:p></p>
</div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<p class="MsoNormal">Seif<o:p></o:p></p>
</div>
</div>
</body>
</html>