<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Managed Thread Ids &#8211; Unique Id&#8217;s that aren&#8217;t Unique</title>
	<atom:link href="http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique/feed" rel="self" type="application/rss+xml" />
	<link>http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique</link>
	<description>Notes from the folks behind Gibraltar Software</description>
	<lastBuildDate>Sat, 10 Dec 2011 21:22:19 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Gibraltar 2.1.1 Released :: Rock Solid</title>
		<link>http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique/comment-page-1#comment-326</link>
		<dc:creator>Gibraltar 2.1.1 Released :: Rock Solid</dc:creator>
		<pubDate>Fri, 19 Feb 2010 05:14:28 +0000</pubDate>
		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=474#comment-326</guid>
		<description>[...] users to restart Analyst.  Ouch.  Fortunately we were able to figure it out and fix it.  We addressed Thread Ids [...]</description>
		<content:encoded><![CDATA[<p>[...] users to restart Analyst.  Ouch.  Fortunately we were able to figure it out and fix it.  We addressed Thread Ids [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kendall</title>
		<link>http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique/comment-page-1#comment-323</link>
		<dc:creator>Kendall</dc:creator>
		<pubDate>Tue, 16 Feb 2010 21:59:31 +0000</pubDate>
		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=474#comment-323</guid>
		<description>I might have been more clear - I&#039;m honestly not sure if they&#039;re resetting the name but I presume they are.  We were showing the name as duplicate because we captured the thread name the first time and assumed if we keep seeing the same thread Id then the additional metadata (like name) goes along with it. 

What is really interesting is the speed that we&#039;re seeing it happen which makes me suspect they actually are recycling the thread under the covers:  We find that this reproduces pretty quickly where if you create a thread, use it for a short time and release it then cause activity on the thread pool the ID shows up there even if there are other Ids that it could use (for example gaps in the numbers).  It could be that threads are so expensive that it&#039;s &quot;sanitizing&quot; the thread and keeping it around to optimize the case where people are creating &amp; destroying threads a lot instead of using thread pools.</description>
		<content:encoded><![CDATA[<p>I might have been more clear &#8211; I&#8217;m honestly not sure if they&#8217;re resetting the name but I presume they are.  We were showing the name as duplicate because we captured the thread name the first time and assumed if we keep seeing the same thread Id then the additional metadata (like name) goes along with it. </p>
<p>What is really interesting is the speed that we&#8217;re seeing it happen which makes me suspect they actually are recycling the thread under the covers:  We find that this reproduces pretty quickly where if you create a thread, use it for a short time and release it then cause activity on the thread pool the ID shows up there even if there are other Ids that it could use (for example gaps in the numbers).  It could be that threads are so expensive that it&#8217;s &#8220;sanitizing&#8221; the thread and keeping it around to optimize the case where people are creating &amp; destroying threads a lot instead of using thread pools.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Short</title>
		<link>http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique/comment-page-1#comment-322</link>
		<dc:creator>Jason Short</dc:creator>
		<pubDate>Tue, 16 Feb 2010 21:54:36 +0000</pubDate>
		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=474#comment-322</guid>
		<description>Sounds to me like they are recycling it, but not resetting the name.  So if another thread is spun up, and doesn&#039;t explicitly set the name, it can be reused.  That is bad behavior to me.  

All objects being initialized should have all their member variables reset to known states, not just left to the previous value.

It is ok to hold and recycle objects, but they should never have left over state or information from the previous run.  Imagine if you got a new string back from the system and it already had a string present in it...  Not expect (and no, it doesn&#039;t happen).  So I wonder why it happens for Threads.</description>
		<content:encoded><![CDATA[<p>Sounds to me like they are recycling it, but not resetting the name.  So if another thread is spun up, and doesn&#8217;t explicitly set the name, it can be reused.  That is bad behavior to me.  </p>
<p>All objects being initialized should have all their member variables reset to known states, not just left to the previous value.</p>
<p>It is ok to hold and recycle objects, but they should never have left over state or information from the previous run.  Imagine if you got a new string back from the system and it already had a string present in it&#8230;  Not expect (and no, it doesn&#8217;t happen).  So I wonder why it happens for Threads.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kendall</title>
		<link>http://rocksolid.gibraltarsoftware.com/development/logging/managed-thread-ids-unique-ids-that-arent-unique/comment-page-1#comment-321</link>
		<dc:creator>Kendall</dc:creator>
		<pubDate>Tue, 16 Feb 2010 16:43:15 +0000</pubDate>
		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=474#comment-321</guid>
		<description>The point is that the documentation doesn&#039;t specify that the uniqueness is bounded in time.  It says this is the unique identifier for the managed thread.  Without any other decoration it&#039;s completely ambiguous whether that&#039;s bound or not.  It&#039;s the ambiguity that&#039;s a problem - particularly since this appears to be bounded by a very short period of time (we&#039;ve seen duplication in a matter of a few seconds).  Contrast this with Process Id - it&#039;s exactly and clearly documented how unique this is.  There&#039;s no need to play detective and infer what&#039;s going on.  Likewise the documentation on unmanaged Thread Id&#039;s is very clear. 

We&#039;re not bothered that they are recycled - far from it - it&#039;s more the challenge of writing good documentation and how ambiguity in documentation can get your customers in trouble.</description>
		<content:encoded><![CDATA[<p>The point is that the documentation doesn&#8217;t specify that the uniqueness is bounded in time.  It says this is the unique identifier for the managed thread.  Without any other decoration it&#8217;s completely ambiguous whether that&#8217;s bound or not.  It&#8217;s the ambiguity that&#8217;s a problem &#8211; particularly since this appears to be bounded by a very short period of time (we&#8217;ve seen duplication in a matter of a few seconds).  Contrast this with Process Id &#8211; it&#8217;s exactly and clearly documented how unique this is.  There&#8217;s no need to play detective and infer what&#8217;s going on.  Likewise the documentation on unmanaged Thread Id&#8217;s is very clear. </p>
<p>We&#8217;re not bothered that they are recycled &#8211; far from it &#8211; it&#8217;s more the challenge of writing good documentation and how ambiguity in documentation can get your customers in trouble.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

