<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="Section1">
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial">Hi Mike<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial">First off, Happy New Year! &nbsp;Now to business&#8230;
<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial">While tracking down an issue on one of our clients&#8217; systems, I discovered that multiple SmbTransport(Transport) threads existed with the same &#8216;transportId&#8217;.&nbsp;
 I think I&#8217;m correct when I say this shouldn&#8217;t happen, and so I&#8217;m trying to track down how this could happen.&nbsp; The snippets from a stack dump below.&nbsp; You will notice that the thread names reflect the changes I submitted a few weeks ago.&nbsp; The second number (added
 as part of those changes) reflects the number of threads that have been created by the Transport class instances over the course of a jvm up time.&nbsp;
<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &quot;jcifs-transport19-2530&quot; daemon prio=10 tid=0x00002aab343fb800 nid=0x1f74
 runnable [0x000000007466d000..0x000000007466db10]<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary&nbsp;&nbsp;&nbsp; java.lang.Thread.State: RUNNABLE<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.net.SocketInputStream.socketRead0(Native Method)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.net.SocketInputStream.read(SocketInputStream.java:129)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.util.transport.Transport.readn(Transport.java:31)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.smb.SmbTransport.doRecv(SmbTransport.java:499)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; - locked &lt;0x00002aaac7470140&gt; (a [B)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.util.transport.Transport.loop(Transport.java:108)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; - locked &lt;0x00002aaac84ab020&gt; (a jcifs.smb.SmbTransport)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.util.transport.Transport.run(Transport.java:261)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt;
font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:619)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &quot;jcifs-transport19-2257&quot; daemon prio=10 tid=0x00002aab26dbec00 nid=0x7d38
 runnable [0x00002aab27276000..0x00002aab27276d90]<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary&nbsp;&nbsp;&nbsp; java.lang.Thread.State: RUNNABLE<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.net.SocketInputStream.socketRead0(Native Method)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.net.SocketInputStream.read(SocketInputStream.java:129)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.net.SocketInputStream.read(SocketInputStream.java:182)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.smb.SmbTransport.peekKey(SmbTransport.java:421)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.util.transport.Transport.loop(Transport.java:98)<o:p></o:p></span></font></p>
<p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at jcifs.util.transport.Transport.run(Transport.java:261)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt;
font-family:&quot;Courier New&quot;">Jan&nbsp; 8 13:37:26 s5kep-tcc-an02-apd1-primary &nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:619)<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Courier New"><span style="font-size:10.0pt;
font-family:&quot;Courier New&quot;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial">The system we have seen this on was regularly hitting the responseTimeout threshold due to network load spikes, but would recover in time as the network load
 dropped.&nbsp; I&#8217;m able to reproduce the response timeouts by inducing delay on packet delivery from the smb server (using the linux tc command), but so far have not seen multiple threads with the same transportId value.&nbsp;
<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial">My best guess at this point is that the first thread is being orphaned by a &#8216;thread = null;&#8217; call while it is blocked on a socketRead0() call.&nbsp; If the thread
 were blocking on the socket read, then potentially it would never return and remain until jvm shutdown.&nbsp; Perhaps a thread.interrupt() call should precede each &#8216;thread = null;&#8217; execution?&nbsp; Granted, without being to reproduce the issue I&#8217;m just postulating but
 I was interested in your thoughts/comments.<o:p></o:p></span></font></p>
</div>
</body>
</html>