<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DotCom's Blog Space</title>
	<atom:link href="http://www.bnsstevenson.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.bnsstevenson.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 21 May 2010 17:52:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>System.StackOverflowException with IronPython 2.6.0 and 2.6.1</title>
		<link>http://www.bnsstevenson.com/blog/?p=41</link>
		<comments>http://www.bnsstevenson.com/blog/?p=41#comments</comments>
		<pubDate>Fri, 21 May 2010 15:56:53 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Engineers Corner]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[Dynamic Library Runtime]]></category>
		<category><![CDATA[e053534f]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Stack Overflow]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=41</guid>
		<description><![CDATA[Recently we were trying to fix our High CPU utilization by moving from 2.0.x iron python to 2.6 as it has a interpreter built in and they claim it will use a lot less CPU in the compilation of the python scripts.  Well when we upgraded to the new versions and put anything more [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we were trying to fix our High CPU utilization by moving from 2.0.x iron python to 2.6 as it has a interpreter built in and they claim it will use a lot less CPU in the compilation of the python scripts.  Well when we upgraded to the new versions and put anything more then 1 request simulataneously to the site it would crash it with a Kernel.dll error in the Event Viewer claiming an error of 0xe053534f which indicates a Stack Overflow.  This was a difficult one to chase down because just attaching ADPlus in crash mode slowed the site down so bad it was causing site to stack and not work properly.<span id="more-41"></span>  So eventually we would ultimately attach windbg and only break on exception 0xe053534f using  command:</p>
<p>sxe 0xe053534f</p>
<p>Then we could investigate the stack properly to see what was going on.   When this breakpoint happens you will be on the thread that is the offending code that caused the stack overflow.  Also note if you just do a crash dump instead of the windbg sxe method all other threads will most likely be shutdown as the crash dump happens after your exception was raised.  You must use the following commands to allow you to see both managed and unmanaged stacks:</p>
<p>.loadby sos mscorwks<br />
.load psscor2.dll (if you have it)</p>
<p>When doing a !dumpstack we ended up finding that the DLR was using recursive algorithms for some of there code exection/compilation.  In our Python script we had a case where there were 139 if/elsif conditions.  This was enough to cause the stack overflow in the recursive interpreter of the new 1.0 Dynamice Library Runtime.  If we brought it below 125 in the block the overflow would go away.   </p>
<p>Another note when using windbg on checking these errors some other helpful commands are:</p>
<p>kb 2000 &#8211; show up to 2000 lines back into the stack<br />
!dso &#8211; Dump Stack Objects<br />
!dae &#8211; Dump all exceptions and there data</p>
<p>Our Stack indicating the exception is as follows:<br />
OS Thread Id: 0&#215;1788 (37)<br />
Child-SP RetAddr Call Site<br />
00000000095564d0 000007fef9ca12e6 KERNELBASE!RaiseException+0&#215;39<br />
00000000095565a0 000007fef9ecfdd5 mscorwks!`string&#8217;+0&#215;59046<br />
00000000095566f0 000007fef8baa137 mscorwks!RuntimeTypeHandle::GetInstantiation+0&#215;175<br />
00000000095568f0 000007ff009d5750 mscorlib_ni!System.RuntimeType.GetGenericArguments()+0&#215;37<br />
0000000009556950 000007ff009d5351 Microsoft_Scripting_Core!System.Dynamic.Utils.TypeUtils.CanCache(System.Type)+0&#215;60<br />
0000000009556990 000007ff00b11276 Microsoft_Scripting_Core!System.Dynamic.Utils.TypeExtensions.GetParametersCached(System.Reflection.MethodBase)+0&#215;71<br />
00000000095569f0 000007ff00b11115 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Expression.GetValidMethodForDynamic(System.Type)+0&#215;26<br />
0000000009556a30 000007ff00c17f15 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Expression.MakeDynamic(System.Type, System.Runtime.CompilerServices.CallSiteBinder, Microsoft.Scripting.Ast.Expression, Microsoft.Scripting.Ast.Expression)+0&#215;75<br />
0000000009556aa0 000007ff00c171ca Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteDynamicExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xe5<br />
0000000009556b10 000007ff00c180cd Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xd2a<br />
0000000009556f70 000007ff00c1803f Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller+ChildRewriter.Add(Microsoft.Scripting.Ast.Expression)+0&#215;4d<br />
0000000009556fc0 000007ff00c17eb8 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller+ChildRewriter.AddArguments(Microsoft.Scripting.Ast.IArgumentProvider)+0&#215;4f<br />
0000000009557010 000007ff00c171ca Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteDynamicExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;88<br />
0000000009557080 000007ff00c180cd Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xd2a<br />
00000000095574e0 000007ff00c1803f Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller+ChildRewriter.Add(Microsoft.Scripting.Ast.Expression)+0&#215;4d<br />
0000000009557530 000007ff00c17eb8 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller+ChildRewriter.AddArguments(Microsoft.Scripting.Ast.IArgumentProvider)+0&#215;4f<br />
0000000009557580 000007ff00c171ca Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteDynamicExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;88<br />
00000000095575f0 000007ff00c17993 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xd2a<br />
0000000009557a50 000007ff00c1691a Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteConditionalExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;93<br />
0000000009557b20 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;47a<br />
0000000009557f80 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
0000000009558030 000007ff00c179f9 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6</p>
<p>last 4 lines Repeated 122 times</p>
<p>00000000095aa980 000007ff00c1691a Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteConditionalExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xf9<br />
00000000095aaa50 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;47a<br />
00000000095aaeb0 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095aaf60 000007ff00c179f9 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095ab3c0 000007ff00c1691a Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteConditionalExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xf9<br />
00000000095ab490 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;47a<br />
00000000095ab8f0 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095ab9a0 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095abe00 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095abeb0 000007ff012b14af Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095ac310 000007ff00c17206 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExtensionExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;6f<br />
00000000095ac390 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xd66<br />
00000000095ac7f0 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095ac8a0 000007ff012b10f6 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095acd00 000007ff00c173da Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteTryExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xe6<br />
00000000095ace50 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xf3a<br />
00000000095ad2b0 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095ad360 000007ff00c17803 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095ad7c0 000007ff00c17156 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteBlockExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xa3<br />
00000000095ad870 000007ff00c18453 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xcb6<br />
00000000095adcd0 000007ff00c172f0 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteLabelExpression(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;73<br />
00000000095add70 000007ff00c163e8 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpression(Microsoft.Scripting.Ast.Expression, Stack)+0xe50<br />
00000000095ae1d0 000007ff00c16245 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.RewriteExpressionFreeTemps(Microsoft.Scripting.Ast.Expression, Stack)+0&#215;48<br />
00000000095ae240 000007ff00c161d5 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.StackSpiller.Rewrite[[System.__Canon, mscorlib]](Microsoft.Scripting.Ast.Expression`1<System.__Canon>)+0&#215;45<br />
00000000095ae2d0 000007ff00c16014 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Expression`1[[System.__Canon, mscorlib]].Accept(Microsoft.Scripting.Ast.Compiler.StackSpiller)+0&#215;55<br />
00000000095ae320 000007ff012b0355 Microsoft_Scripting_Core!Microsoft.Scripting.Ast.Compiler.LambdaCompiler.Compile(Microsoft.Scripting.Ast.LambdaExpression, System.Runtime.CompilerServices.DebugInfoGenerator)+0&#215;44<br />
00000000095ae370 000007fef8b3dd38 Microsoft_Dynamic!Microsoft.Scripting.Interpreter.LightDelegateCreator.Compile(System.Object)+0xb5<br />
00000000095ae3d0 000007fef9aad502 mscorlib_ni!System.Threading.ExecutionContext.runTryCode(System.Object)+0&#215;178<br />
00000000095ae490 000007fef9969fd3 mscorwks!CallDescrWorker+0&#215;82<br />
00000000095ae4e0 000007fef997a3af mscorwks!CallDescrWorkerWithHandler+0xd3<br />
00000000095ae580 000007fef995f916 mscorwks!MethodDesc::CallDescr+0&#215;24f<br />
00000000095ae7e0 000007fef9f0a302 mscorwks!ExecuteCodeWithGuaranteedCleanupHelper+0&#215;12a<br />
00000000095aea70 000007fef8b22b82 mscorwks!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+0&#215;172<br />
00000000095aec80 000007fef8b97411 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0&#215;62<br />
00000000095aecd0 000007fef8b9724f mscorlib_ni!System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(System.Threading._ThreadPoolWaitCallback)+0&#215;61<br />
00000000095aed20 000007fef9aad502 mscorlib_ni!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(System.Object)+0&#215;4f<br />
00000000095aed70 000007fef9969fd3 mscorwks!CallDescrWorker+0&#215;82<br />
00000000095aedc0 000007fef9961c3a mscorwks!CallDescrWorkerWithHandler+0xd3<br />
00000000095aee60 000007fef991d0bf mscorwks!DispatchCallDebuggerWrapper+0&#215;3e<br />
00000000095aeec0 000007fef9a22f17 mscorwks!DispatchCallNoEH+0&#215;5f<br />
00000000095aef40 000007fef98ec1a0 mscorwks!QueueUserWorkItemManagedCallback+0&#215;83<br />
00000000095aefd0 000007fef9928725 mscorwks!Thread::DoADCallBack+0&#215;488<br />
00000000095af020 000007fef98e0195 mscorwks!SVR::gc_heap::make_heap_segment+0&#215;155<br />
00000000095af0f0 000007fef98c0a21 mscorwks!AssemblySecurityDescriptor::GetZone+0&#215;169<br />
00000000095af130 000007fef98ebe5d mscorwks!ClassCompat::MethodTableBuilder::BuildInteropVTable_PlaceVtableMethods+0&#215;441<br />
00000000095af160 000007fef98ec1c5 mscorwks!Thread::DoADCallBack+0&#215;145<br />
00000000095af2d0 000007fef9928725 mscorwks!Thread::DoADCallBack+0&#215;4ad<br />
00000000095af320 000007fef98e0195 mscorwks!SVR::gc_heap::make_heap_segment+0&#215;155<br />
00000000095af3f0 000007fef98c4cc5 mscorwks!AssemblySecurityDescriptor::GetZone+0&#215;169<br />
00000000095af430 000007fef98f102a mscorwks!ThreadNative::KickOffThread+0&#215;401<br />
00000000095af490 000007fef99ca4ea mscorwks!ManagedPerAppDomainTPCount::DispatchWorkItem+0xee<br />
00000000095af540 000007fef9a2095c mscorwks!ThreadpoolMgr::WorkerThreadStart+0&#215;1ba<br />
00000000095af5e0 00000000775cf56d mscorwks!Thread::intermediateThreadProc+0&#215;78<br />
00000000095af7b0 0000000077703281 kernel32!BaseThreadInitThunk+0xd<br />
00000000095af7e0 0000000000000000 ntdll!RtlUserThreadStart+0&#215;1d</p>
<p>DLR Forums where we were discussing the problem:<br />
<a href="http://dlr.codeplex.com/Thread/View.aspx?ThreadId=212185">http://dlr.codeplex.com/Thread/View.aspx?ThreadId=212185</a></p>
<p>OS: 2008 R2 IIS 7.5 using MVC Framework with IronPython</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>32 Bit vs 64 Bit Memory Allocation / Garbage Collection</title>
		<link>http://www.bnsstevenson.com/blog/?p=32</link>
		<comments>http://www.bnsstevenson.com/blog/?p=32#comments</comments>
		<pubDate>Wed, 14 Apr 2010 19:51:24 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Engineers Corner]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[32 bit]]></category>
		<category><![CDATA[64 bit]]></category>
		<category><![CDATA[Garbage Collection]]></category>
		<category><![CDATA[Memory Leak]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=32</guid>
		<description><![CDATA[   Recently we deployed some of our Web Services to a new and shiney 64 bit OS and 8 processor machine.  A few days later I was pinged with cacti graphs showing that the web service was using 1.4 gb of memory.  At first I assumed that this was due to [...]]]></description>
			<content:encoded><![CDATA[<p>   Recently we deployed some of our Web Services to a new and shiney 64 bit OS and 8 processor machine.  A few days later I was pinged with cacti graphs showing that the web service was using 1.4 gb of memory.  At first I assumed that this was due to some kinda of memory leak so I started getting the dump off the box for that w3wp process hosting the web service.  Pulled the data up in windbg and noted  a very large number of System.XML.DocumentXpathNavigator objects, in excess of 1.2 million.  So with this I started investigating roots of these object of which none I could find.  Started banging my head because the same code in 32 bit OS only consumed 250 meg max and ran just fine.<br />
<span id="more-32"></span><br />
     After digging and opening up a ticket with MS we finally figured out what the issue really was.  Memory allocation and usage is different in 64 bit vs 32 bit applications.  Of course I knew this, but to the extent is what I didnt know.  One thing they have in common is that in IIS all applications default to gcServer enabled=true.  This will cause the GC manager to spawn 1 heap and Garbage Collector per Processor(multiply this by 2 when using hyperthreading).  The difference in 2.0 sp1  .net 64 bit, for example, is that the initial allocations segment sizes the GC Manager reserves is 512mb for small object segment, and 128 mb for the LOH.  The 32 bit version will allocate 64 mb for small object segment, and 32 mb for the LOH.</p>
<p>     Now if you take that and multiply this out across 8 processors it becomes a pretty substantial amount.  Now people are saying to themselves, but I dont see that much memory used so how can that be.  Explanation follows:  The commited memory does not show this maybe because you have not created or allocated that many managed objects.  If you take an application and just loop it creating and destroying objects you would see the committed memory climb until the garbage collector kicks in when it reaches that segments size at which point it will clean out all non rooted objects and bring the committed memory back down to earth.  The other side effect to this is that garbage collections happen a LOT less often as it takes your application a lot longer to fill the segment.  What does this mean to the troubleshooter?  A lot of objects left in memory without roots.  This goes back to the original issue I talked about above.</p>
<p>    So one asks, how do I solve this problem?  You have to think about how much memory does your application need.  If you don&#8217;t see the need for more then the 4gb limit(2gb application) then the recommendation is run the application in 32 bit mode as this will cause a lot less memory pressure on the box.   It may cause more garbage collections but if your are running in gcServer mode you probably will not see difference.   I have actually noticed a few points drop in the CPU Cycles being used.  This I am guessing is the numbers being crunched in the background are much larger due to being 64 bit in nature.</p>
<p>    If you don&#8217;t have the option of running the application in 32 bit mode another workaround is to make the application run in workstation mode.  To enable workstation mode you must add this to the applications config file(in iis its the frameworks aspnet.config).</p>
<p>&lt;configuration&gt;<br />
&nbsp;&nbsp;&lt;runtime&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;gcServer enabled=&quot;false&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;gcConcurrent enabled=&quot;false&quot; /&gt;<br />
&nbsp;&nbsp;&lt;/runtime&gt;<br />
&lt;/configuration&gt; </p>
<p>The difference between these are explained in greater detail in Tess&#8217;s blog entry here: <a href="http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx">How does the gc work and what are the sizes of the different generations</a></p>
<p>     With the workaround above, something to also note is that in WinForms and Windows Services they default to gcConcurrent enabled=true/gcServer enabled = false mode and you have to specifically configure them to gcServer enabled=true to take advantage of the multiple GC heaps on a multiproc machine.  Applications and Services default to a single GC Heap, and the thread causing the allocation to the heap that triggers GC is responsible for running the collection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The underlying truth</title>
		<link>http://www.bnsstevenson.com/blog/?p=25</link>
		<comments>http://www.bnsstevenson.com/blog/?p=25#comments</comments>
		<pubDate>Thu, 18 Feb 2010 21:51:34 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Truth or Not]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[Joseph]]></category>
		<category><![CDATA[Plane]]></category>
		<category><![CDATA[Stack]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=25</guid>
		<description><![CDATA[I have suspected with the way things are going in the economy and how the government seems to have forgotten they represent the people that there would be a place and time people started flipping out.  Today a sad but inevitable event happened where a guy couldn&#8217;t take anymore of the years of government [...]]]></description>
			<content:encoded><![CDATA[<p>I have suspected with the way things are going in the economy and how the government seems to have forgotten they represent the people that there would be a place and time people started flipping out.  Today a sad but inevitable event happened where a guy couldn&#8217;t take anymore of the years of government manipulation and twists to our nations laws. He finally went over the deep end. </p>
<p>Since the larger portion of the press do not truely cover whats truthful in many cases, word for word, I decided I would post the letter left by the software engineer(pilot) as it surprised me how the excerpts they used truly painted the picture in my head differently then what his letter did.</p>
<p>I am sorry for any of the people injured or involved and my wishes go out to you. </p>
<p><a href='http://www.bnsstevenson.com/blog/wp-content/uploads/Suicide_stack.letter.pdf'>Suicide_stack.letter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ahhh Memories</title>
		<link>http://www.bnsstevenson.com/blog/?p=19</link>
		<comments>http://www.bnsstevenson.com/blog/?p=19#comments</comments>
		<pubDate>Wed, 16 Sep 2009 21:11:05 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Arcade]]></category>
		<category><![CDATA[Crack 4 Geeks]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=19</guid>
		<description><![CDATA[Recently at work we had an arcade game down and I remember my good old days of working with A&#038;A Services in the southern region of the US on the arcade games they supplied to many military installations down there.  Well got to dig into an old Wells Gardner monitor which are popular for [...]]]></description>
			<content:encoded><![CDATA[<p>Recently at work we had an arcade game down and I remember my good old days of working with A&#038;A Services in the southern region of the US on the arcade games they supplied to many military installations down there.  Well got to dig into an old Wells Gardner monitor which are popular for use in many of the arcade games in the industry.  This game was from the 80&#8217;s, so when opening it and looking at the board it brought the memories flooding back.  It was pretty sweet that I didn&#8217;t need a flowchart to check the components as I remembered most of them.  This monitor needs a cap kit but other than that the humor of the issue was that the board ended up good to go.  What ended up being the problem on this monitor was the cabinet had been rewired and they drove the monitor power from two switches in the cabinet and the one switch had somehow knocked itself into the off(non service mode) position.  The Service switch for the door had been remounted due to the fact the door was warped and wouldn&#8217;t hold it in properly. Pulled it out back into service mode and bingo.   A few adjustments later, its back up and running.  But for you techies I got to digging around and found a few things that can help you troubleshoot your old arcade games and monitors.  </p>
<p><a href="http://www.mikesarcade.com/cgi-bin/spies.cgi?action=url&#038;type=info&#038;page=Raster-monitors.txt" >A little how a raster monitor works</a><br />
<a href="http://arcadeheroes.com/2007/11/14/randy-fromms-monitor-repair-videos/"><br />
Some Randy Fromm videos(Serious arcade genius)<br />
</a></p>
<p><a href="http://bnsstevenson.com/blog/wp-content/uploads/monitor-troubleshooting-flowcharts.pdf">Actual flowcharts you use to troubleshoot your monitors</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server Errors out with 80071736 &#8220;The cluster Resource &#8216;Sql Server&#8217; cannot be brought online&#8221; Problem</title>
		<link>http://www.bnsstevenson.com/blog/?p=16</link>
		<comments>http://www.bnsstevenson.com/blog/?p=16#comments</comments>
		<pubDate>Thu, 22 Jan 2009 20:40:58 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Engineers Corner]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[80071736]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=16</guid>
		<description><![CDATA[We have been working on a remote distributor Highly available SQL 2008 / Windows Server 2008 installation.Â  We have come across many issues in doing this.Â  Microsoft claims they are geocluster capable.Â  FALSE**** The truth of the matter is that many geographically distributed datacenters in many cases due to security and the such also have [...]]]></description>
			<content:encoded><![CDATA[<p>We have been working on a remote distributor Highly available SQL 2008 / Windows Server 2008 installation.Â  We have come across many issues in doing this.Â  Microsoft claims they are geocluster capable.Â  FALSE**** The truth of the matter is that many geographically distributed datacenters in many cases due to security and the such also have there own VLAN&#8217;s or Subnets.Â  The old solution to clustering across datacenters was to create a VLAN that spanned the two datacenters.Â Â  With Geoclustering this was supposed to be solved.</p>
<p>Â </p>
<p>Well after working with Microsoft teams and getting to the guys in the SQL development group.Â  There geocluster solution requires that each server have a NIC with the IP address of each Subnet the cluster will live in.Â Â  Guess what?Â  That means you still have to stretch the VLAN/Subnet across datacenter opening possible security issues.Â  Geocluster my butt.Â  Even there developers have been arguing its not truely geoclustering.Â Â  They say that in future versions this would probably be taken care of.Â Â  Anyways now to the new errors we had installing the solution.</p>
<p>Â </p>
<p>When installing SQL on the primary cluster node,Â  toward the end of the install it will attempt to bring the cluster online.Â  If it doesn&#8217;t and errors out with the code above, you may want to check to make sure you have the NIC IP physically set, instead of using DHCP.Â  We got this error because it was set to DHCP and we are not running an environment that DHCP is supported in, so theres no servers to dish out IP&#8217;s.</p>
<p>Another Error we ran into was when we &#8220;Add a SQL Node&#8221; on the secondary nodes was &#8220;INVALID SKU&#8221; error.Â  You must retrieve the Cumulative Update #1 for sql 2008 to fix this issue.Â Â  They say it will be in the first service pack for 2008 but as of right now you must request it from Microsoft.Â </p>
<p>Â </p>
<p>I will try to keep people up to date on our implementation and issues we see as we progress through this.Â  I am also curious to hear from others what there experience is in the 2008/2008 installs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fireman&#8217;s Poker Run 2008</title>
		<link>http://www.bnsstevenson.com/blog/?p=11</link>
		<comments>http://www.bnsstevenson.com/blog/?p=11#comments</comments>
		<pubDate>Fri, 27 Jun 2008 23:24:10 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Bike]]></category>
		<category><![CDATA[Harley]]></category>
		<category><![CDATA[motorcycle]]></category>
		<category><![CDATA[Poker Run]]></category>
		<category><![CDATA[Riding]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=11</guid>
		<description><![CDATA[Well over last weekend there was a poker run to raise money for a local fire department.Â  Its one of the bigger ones in the area and me and about 8-10 friends decided to go out on the run.Â Â  It was pretty sweet.Â  Altogether I believe there must have been 450 bikes in this run.
As [...]]]></description>
			<content:encoded><![CDATA[<p>Well over last weekend there was a poker run to raise money for a local fire department.Â  Its one of the bigger <a href="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_6.jpg"><img class="alignnone size-medium wp-image-10 alignright" style="float: right;" title="fireman-run-2008_6" src="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_6.jpg" alt="Beginning before we started the run" width="300" height="225" /></a>ones in the area and me and about 8-10 friends decided to go out on the run.Â Â  It was pretty sweet.Â  Altogether I believe there must have been 450 bikes in this run.</p>
<p>As we took off in the morning and through out all the towns we went there were people out in lawns and on the streets just watching us all go by and waving.Â Â </p>
<p>Â </p>
<p style="text-align: left;">Had some great food both at the eagles when we left and at our first stop in Kilkenny (Liquor Hole).Â  Then we drove to Elysiah (The thirsty Beave), Union Hill, and then back to Eagles in Shakopee.Â  Was a total of 160+ miles for this particular run.Â </p>
<p><a href="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_2.jpg"><img class="alignleft size-medium wp-image-12" title="fireman-run-2008_2" src="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_2.jpg" alt="Union Hill" width="300" height="225" /></a>A couple weeks ago was another we had gone on that was a charity run for Suicide prevention, and then of course the pullman run to benefit a family.Â  This Saturday I believe we are going to the open house/Party at American Thunder.Â  Should be a good time, free food, drink, contests, and burn out contest.Â  Will have a few pictures to show after that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=11</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Approaching my final mods</title>
		<link>http://www.bnsstevenson.com/blog/?p=13</link>
		<comments>http://www.bnsstevenson.com/blog/?p=13#comments</comments>
		<pubDate>Fri, 27 Jun 2008 23:23:47 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=13</guid>
		<description><![CDATA[Not a very good picture of my bike but will do for now.Â  I have spent a lot of time on it since I bought her new in April and now I am working on the final stages of the Stage 1 Kit.Â Â  Air Cleaner is probably only thing I have left.Â Â  So far I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_3.jpg"><img class="alignright size-medium wp-image-14" title="fireman-run-2008_3" src="http://www.bnsstevenson.com/blog/wp-content/uploads/fireman-run-2008_3.jpg" alt="On the Fireman Run" width="300" height="225" /></a>Not a very good picture of my bike but will do for now.Â  I have spent a lot of time on it since I bought her new in April and now I am working on the final stages of the Stage 1 Kit.Â Â  <a href="http://www.bnsstevenson.com/blog/wp-content/uploads/new-bars.jpg"><img class="alignleft size-medium wp-image-15" title="new-bars" src="http://www.bnsstevenson.com/blog/wp-content/uploads/new-bars.jpg" alt="Snapshot" width="300" height="225" /></a>Air Cleaner is probably only thing I have left.Â Â  So far I have chromed out the Pegs/Grips, added a drag bar which I internally wired, braided break line, New D&amp;D Exhaust, and new chromed Kuryakyn LED flashers.Â Â  The stock flashers wereÂ  pretty plain jane, along with the fact they like to burn out quite a bit due to vibration I would imagine.Â </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Error codes&#8230;..!</title>
		<link>http://www.bnsstevenson.com/blog/?p=8</link>
		<comments>http://www.bnsstevenson.com/blog/?p=8#comments</comments>
		<pubDate>Mon, 07 Apr 2008 20:32:59 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Engineers Corner]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[Codes]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tdsParser]]></category>
		<category><![CDATA[Timeout]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=8</guid>
		<description><![CDATA[Recently have noticed it was a little more of a challenge to find the actual error codes you might have to handle in a case of timeouts or connectivity issues.Â Â  Normally you can easily get a list of error numbers/messages by viewing the master.dbo.sysmessages table.Â  But what error codes do you get in cases you [...]]]></description>
			<content:encoded><![CDATA[<p>Recently have noticed it was a little more of a challenge to find the actual error codes you might have to handle in a case of timeouts or connectivity issues.Â Â  Normally you can easily get a list of error numbers/messages by viewing the master.dbo.sysmessages table.Â  But what error codes do you get in cases you can&#8217;t even communicate properly with the DB itself.Â  Well it is hard to find the answer to these.Â  Which I think is a little wierd since I can see many use cases of where I would want to determine wether its a connection error or processing error in order to know how to proceed on indexed data.Â  Anyway the list I could come up with is as follows, not sure how accurate it is since there is very little information around it.</p>
<p>-3: ZeroBytes<br />
-2: Timeout<br />
-1: Unknown<br />
1: InsufficientMemory<br />
2: AccessDenied<br />
3: ConnectionBusy<br />
4: ConnectionBroken<br />
5: ConnectionLimit<br />
6: ServerNotFound<br />
7: NetworkNotFound<br />
8: InsufficientResources<br />
9: NetworkBusy<br />
10: NetworkAccessDenied<br />
11: GeneralError<br />
12: IncorrectMode<br />
13: NameNotFound<br />
14: InvalidConnection<br />
15: ReadWriteError<br />
16: TooManyHandles<br />
17: ServerError<br />
18: SSLError<br />
19: EncryptionError<br />
20: EncryptionNotSupported</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=8</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring is around the corner.</title>
		<link>http://www.bnsstevenson.com/blog/?p=7</link>
		<comments>http://www.bnsstevenson.com/blog/?p=7#comments</comments>
		<pubDate>Sun, 06 Apr 2008 22:59:46 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Dyna]]></category>
		<category><![CDATA[Low rider]]></category>
		<category><![CDATA[Riding]]></category>
		<category><![CDATA[Softail deluxe]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=7</guid>
		<description><![CDATA[Spring is around the corner and I am getting the itch.Â Â  So I have been out motorcycle shopping.Â  Found my self at the Wild Prairie Harley Davidson grand opening this past weekend.Â Â  I finally decided I am going to get the Dyna Low Rider, new of course.Â Â  I demo&#8217;ed the first available demo&#8217;s this weekend.Â  [...]]]></description>
			<content:encoded><![CDATA[<p>Spring is around the corner and I am getting the itch.Â Â  So I have been out motorcycle shopping.Â  Found my self at the Wild Prairie Harley Davidson grand opening this past weekend.Â Â  I finally decided I am going to get the Dyna Low Rider, new of course.Â Â  I demo&#8217;ed the first available demo&#8217;s this weekend.Â  I rode both a Dyna Low Rider and a Softail Deluxe.Â Â  Both rode fairly well the dyna vibrated more at an idle but smoothed out very nicely once you took off.Â Â  This is due to the rubber mounted engines.Â Â  The Softail was pretty uniform in vibration all around, but you could feel more of the road due to the suspension having the under side mounted shocks.Â  The Dyna has side mounted ones.Â Â  So this week I will be doing the finalizing to hopefully have the bike next weekend.</p>
<p>Â For those curious based no some information I have gathered up, it looks like dealers get a 21% markup from cost at sticker price.Â  This gives a guy some good negotiation room.Â  I wouldnt expect more then 10% off the sticker price though.Â Â  Can&#8217;t wait to get back out on the bikes this year.Â </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=7</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rolling File TraceListener</title>
		<link>http://www.bnsstevenson.com/blog/?p=5</link>
		<comments>http://www.bnsstevenson.com/blog/?p=5#comments</comments>
		<pubDate>Fri, 04 Apr 2008 17:32:50 +0000</pubDate>
		<dc:creator>DotCom</dc:creator>
				<category><![CDATA[Engineers Corner]]></category>

		<guid isPermaLink="false">http://www.bnsstevenson.com/blog/?p=5</guid>
		<description><![CDATA[Ever been in a situation you needed to use the logging mechanisms of .Net&#8217;s System.Diagnostics and the file output from TextWriterTraceListener became huge and theres not a lot of control over it.Â Â  Well recently I created a custom listener to overcome this problem.Â Â  To use the custom class all you have to do is specify [...]]]></description>
			<content:encoded><![CDATA[<p>Ever been in a situation you needed to use the logging mechanisms of .Net&#8217;s System.Diagnostics and the file output from TextWriterTraceListener became huge and theres not a lot of control over it.Â Â  Well recently I created a custom listener to overcome this problem.Â Â  To use the custom class all you have to do is specify the FQN and the DLL it lives in, in the type field of the listener in the config.Â Â  This is a modified version of TextWriterTraceListener as just inheriting the class still was not allowing the filename attributes to be accessed.Â  Two added attributes that you can specify in your config file is maxfilesize and numrollovers to have more control over the files and there size.Â Â  Default in the code is 10000000 and 10 respectively.Â  The main difference in this custom class is the method: <font size="2" color="#01c5fe">IsFileSizeReached<font size="2" color="#c0c0c0">(string </font><font size="2" color="#01c5fe">filename</font><font size="2" color="#c0c0c0">)</font></font><font size="2" color="#01c5fe"> </font>This is used and checked from the Ensure Writer and checks to see if you had specified a file as output.Â  To use custom attributes if you so choose to change this you can look at the overridden method: <font size="2" color="#01c5fe">GetSupportedAttributes<font size="2" color="#c0c0c0">()</font></font></p>
<p>I have attached the class file for anyone who wishes to have a sample or play around with it.</p>
<p>Another thing to note is that this class still allows you to pass custom stream or textwriters for those that use those.</p>
<p><a href="http://www.bnsstevenson.com/blog/wp-content/rollingtextwritertracelistener.txt" title="RollingTextWriterTraceListener.txt">RollingTextWriterTraceListener.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bnsstevenson.com/blog/?feed=rss2&amp;p=5</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
