<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx</link><description>It was nice to see that so many people downloaded the demo site already and checked out the lab instructions for the first lab, and thanks to Pedro for pointing out that the original demo site required .NET Framework 3.5... I've changed it now so the</description><dc:language>sv-SE</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>If broken it is, fix it you should : .NET Debugging Demos - Information and setup instructions</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7539407</link><pubDate>Fri, 08 Feb 2008 14:58:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7539407</guid><dc:creator>If broken it is, fix it you should : .NET Debugging Demos - Information and setup instructions</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/tess/pages/net-debugging-demos-information-and-setup-instructions.aspx"&gt;http://blogs.msdn.com/tess/pages/net-debugging-demos-information-and-setup-instructions.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7541063</link><pubDate>Fri, 08 Feb 2008 17:05:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7541063</guid><dc:creator>Dragos</dc:creator><description>&lt;p&gt;Thank you very much for the wonderful work. I was in big need of a tool like Windbg, it really helps with my work.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7551639</link><pubDate>Sat, 09 Feb 2008 06:19:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7551639</guid><dc:creator>Kevin</dc:creator><description>&lt;p&gt;Hi Tess,&lt;/p&gt;
&lt;p&gt;Excellent labs, looking forward to more.&lt;/p&gt;
&lt;p&gt;I have one question though. On a server running multiple sites (hundreds in fact) in the same app pool, how do I identify the site that caused a hang or crash having identified the root cause?&lt;/p&gt;
&lt;p&gt;Or to put it differently, how do I match up threads to IIS sites/applications in windbg?&lt;/p&gt;
&lt;p&gt;As a hoster we can be running up to 1000 sites on a single server with those sites divided across say 5-10 app pools.&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Kev&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7569823</link><pubDate>Sun, 10 Feb 2008 00:08:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7569823</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi Kev,&lt;/p&gt;
&lt;p&gt;Although i probably wouldn't recommend running 200 apps per app pool because of how much memory usage there would be per process (likely OOMs just because of the dlls loaded alone) your question is very valid.&lt;/p&gt;
&lt;p&gt;The finalizer thread is common to all apps in the process but for all other threads you can check out the threads in !threads and check which appdomain the code is running in by running !dumpdomain on the domain in the domain column.&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7638187</link><pubDate>Tue, 12 Feb 2008 13:28:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7638187</guid><dc:creator>GProssliner</dc:creator><description>&lt;p&gt;Hello!&lt;/p&gt;
&lt;p&gt;I have the following SOS output:&lt;/p&gt;
&lt;p&gt;0:000&amp;gt; !threadpool&lt;/p&gt;
&lt;p&gt;CPU utilization 100%&lt;/p&gt;
&lt;p&gt;Worker Thread: Total: 2 Running: 0 Idle: 2 MaxLimit: 25 MinLimit: 2&lt;/p&gt;
&lt;p&gt;Work Request in Queue: 0&lt;/p&gt;
&lt;p&gt;--------------------------------------&lt;/p&gt;
&lt;p&gt;Number of Timers: 3&lt;/p&gt;
&lt;p&gt;--------------------------------------&lt;/p&gt;
&lt;p&gt;Completion Port Thread:Total: 5 Free: 0 MaxFree: 4 CurrentLimit: 2 MaxLimit:&lt;/p&gt;
&lt;p&gt;25 MinLimit: 2&lt;/p&gt;
&lt;p&gt;It's obvious, that the 100% CPU utilization is a problem (that has been solved already). My question is if and how the Threadpool used the current CPU utilization for scheduling WorkItems or to control how and if new Workerthreads are created (the Threadpool is primary used for async Socket Operations (HttpListener) within this project).&lt;/p&gt;
&lt;p&gt;It seems like no new threads are started, even if the current number of Threadpool Threads is below the Max-Threads (what could makes sence because there would be no resources available for the new thread).&lt;/p&gt;
&lt;p&gt;So ... how can the values (Total, Running, Idle, MaxLimit and MinLimit) be interpreted?&lt;/p&gt;
&lt;p&gt;Any toughts?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7640442</link><pubDate>Tue, 12 Feb 2008 15:19:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7640442</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Are you saying you are getting those numbers for this lab or in some other dump? &amp;nbsp;I'm just curious because you shouldnt get 100% CPU in this specific crash lab...&lt;/p&gt;
&lt;p&gt;The 100% is for the whole system, not only the w3wp.exe process so this would also include any CPU usage by other processes. &lt;/p&gt;
&lt;p&gt;Total = number of current worker threads started (running+idle)&lt;/p&gt;
&lt;p&gt;Running = executing a request or work item&lt;/p&gt;
&lt;p&gt;MaxLimit = max number of worker threads (as set in machine.config for asp.net or 1000 by default for winforms)&lt;/p&gt;
&lt;p&gt;MinLimit = 1 per logical CPU (min number of worker threads at any given time)&lt;/p&gt;
&lt;p&gt;The threadpool does take CPU usage into account, and currently it will not create new threads if the systems cpu usage is over 80%&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7640876</link><pubDate>Tue, 12 Feb 2008 15:33:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7640876</guid><dc:creator>GProssliner</dc:creator><description>&lt;p&gt;Hello!&lt;/p&gt;
&lt;p&gt;First of all: No. This is not related to this lab. I just read the Review posting where you said that questions - even not directly related to the lab - are welcome.&lt;/p&gt;
&lt;p&gt;Thank you for sharing this information! The 80% threshold is hardcoded or configurable?&lt;/p&gt;
&lt;p&gt;Maybe you can also explain the Completion Port Thread values (Total, Free, MaxFree, CurrentLimit, MaxLimit and MinLimit) too? I've already search over and over the web but doesn't find anything about them.&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7641139</link><pubDate>Tue, 12 Feb 2008 15:39:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7641139</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Its totally cool to ask questions not related to the lab:) &amp;nbsp;just wanted to make sure that the lab didnt behave like that on your machine.&lt;/p&gt;
&lt;p&gt;The completion port threads are pretty much the same. &amp;nbsp;Completion ports are mostly used for callbacks but can be used for work items too if there are available completion port threads but no available worker threads.&lt;/p&gt;
&lt;p&gt;The 80% is hard coded but in reality there is no use to change it since you really can't do much with new threads at that CPU level anyways.&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7689675</link><pubDate>Thu, 14 Feb 2008 13:43:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7689675</guid><dc:creator>Andrew Lomakin</dc:creator><description>&lt;p&gt;Hello Tess!&lt;/p&gt;
&lt;p&gt;Great post, gives very important knowledge needed for newbie .NET crash analyst :)&lt;/p&gt;
&lt;p&gt;I have a situation where DFS management snapin is crashing due to a null-reference exception (0x80004003), and i've gone a long way to identify at what level the exception occurs (let me know if you're curious enough to look at the dump - you should have my email somewhere hopefully). Eventually i came to the clr thread stack where the exception occurs, but i'm stuck, because i want to observe what parameters are passed to each funciton in the stack, but i went through your blog posts, and Johan's, and i can't seem to find a way to do this. Can you advice a little bit please? I've been banging my head against the table about this case for weeks now.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Andrew&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7690222</link><pubDate>Thu, 14 Feb 2008 14:23:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7690222</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi Andrew,&lt;/p&gt;
&lt;p&gt;Yepp, I remember you:) &amp;nbsp;I can't really commit to look at any dumps but I can give you some pointers. &lt;/p&gt;
&lt;p&gt;0x80004003 is not really a clr exception, and I am not sure based on your comment if you are actually stopped at the exception or just see it on the heap. &amp;nbsp;If you got it from the heap you won't be able to inspect the parameters etc. so in that case you would have to set up debug diag or an adplus config file to get a full dump on 0x80004003. &amp;nbsp;Check the windbg help files for adplus config for more info on that... &lt;/p&gt;
&lt;p&gt;If you are stopped on the exception you can either use !clrstack -p to find the parameters or if that doesnt help you can try !dso to see the objects on the stack,&lt;/p&gt;
&lt;p&gt;Best of luck&lt;/p&gt;
&lt;p&gt;Tess&lt;/p&gt;
</description></item><item><title>Summary of the Week - 02/11</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7714546</link><pubDate>Fri, 15 Feb 2008 15:00:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7714546</guid><dc:creator>André Nobre</dc:creator><description>&lt;p&gt;I decided to publish, every friday, some links that i judge interesting, from now. Architecture Scott&lt;/p&gt;
</description></item><item><title>.NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7716154</link><pubDate>Fri, 15 Feb 2008 17:10:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7716154</guid><dc:creator>If broken it is, fix it you should</dc:creator><description>&lt;p&gt;TGIF, almost time for the weekend... but before you leave, here is lab 3. Todays debugging puzzle will&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7842475</link><pubDate>Fri, 22 Feb 2008 01:16:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7842475</guid><dc:creator>Ed F</dc:creator><description>&lt;p&gt;Thanks a lot for these labs, I'm learning a lot. The assembler stuff was really neat to learn.&lt;/p&gt;</description></item><item><title>.NET Debugging Demos</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#7917302</link><pubDate>Wed, 27 Feb 2008 14:47:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7917302</guid><dc:creator>Paul Mooney </dc:creator><description>&lt;p&gt;Lab 1: HangLab 2: CrashLab 3: MemoryLab 4: High CPU Hang&lt;/p&gt;
</description></item><item><title>.NET Debugging Demos Lab 7: Memory Leak - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8353631</link><pubDate>Thu, 03 Apr 2008 15:33:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8353631</guid><dc:creator>If broken it is, fix it you should</dc:creator><description>&lt;p&gt;We have reached the end of the .NET Debugging Demos series. And we are going to end it with a review&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8360537</link><pubDate>Sat, 05 Apr 2008 15:58:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8360537</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;Note: if you throw an exception (.net or other) you have a chance to handle it in a try/catch block. &amp;nbsp;The first time it is thrown it becomes a 1st chance exception and is non-fatal. &amp;nbsp;If you don't handle the exception it will become a 2nd chance exception (unhandled exception) and any 2nd chance exceptions will terminate the process.&lt;/p&gt;
&lt;p&gt;what is it mean? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;does the &amp;nbsp;1st exception can become the 2nd exception?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8364688</link><pubDate>Mon, 07 Apr 2008 11:04:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8364688</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;an exception is considered first chance when it is first thrown, at that point you can catch it in an exception handler. &amp;nbsp;If you don't handle it it becomes a 2nd chance exception (unhandled) &amp;nbsp;see my post on questions about exceptions&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/tess/archive/2008/04/01/questions-about-net-exceptions.aspx"&gt;http://blogs.msdn.com/tess/archive/2008/04/01/questions-about-net-exceptions.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8364816</link><pubDate>Mon, 07 Apr 2008 12:20:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8364816</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;public void Page_load(......)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; UserName1 = Request.Cookies[&amp;quot;UserName1&amp;quot;].Value; &amp;nbsp; &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; UserName2 = Request.Cookies[&amp;quot;UserName2&amp;quot;].Value; &amp;nbsp; &lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;if an Exception hannpen in the Page_Load, Yellow Screen &amp;nbsp;appeard. &amp;nbsp;the exception is first chance, how it become 2nd ?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8578240</link><pubDate>Fri, 06 Jun 2008 18:45:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8578240</guid><dc:creator>lindsay</dc:creator><description>&lt;p&gt;These labs are very interesting, cant wait to learn more!&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8691630</link><pubDate>Sat, 05 Jul 2008 01:42:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8691630</guid><dc:creator>J.W.</dc:creator><description>&lt;p&gt;I have q question about this&amp;quot; any 2nd chance exceptions will terminate the process.&amp;quot;&lt;/p&gt;
&lt;p&gt;If the global.asax has Application_Error , then any unhandled error will be handled there. I just feel if the process is terminated, all the people on the site will lost the session ( inproc session mode), it will be too bad.&lt;/p&gt;</description></item><item><title>.NET 调试实例 - 信息和安装说明 (原创翻译)</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8703090</link><pubDate>Mon, 07 Jul 2008 20:42:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8703090</guid><dc:creator>Justin</dc:creator><description>&lt;p&gt;.NET调试实例&lt;/p&gt;
&lt;p&gt;这是一个系列的调式实例，目的是为了帮助你在调式.NET应用程序中最常见的挂起(Hang)、性能(performance)、内存(memory)和系统崩溃(crash)方面获得一些...&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8831965</link><pubDate>Mon, 04 Aug 2008 22:33:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8831965</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;J.W. &amp;nbsp;a 2nd chance exception is basically an unhandled exception. &amp;nbsp;If it is handled by the application_error it does not get to the 2nd chance stage, so it is still a handled exception (i.e. 1st chance).&lt;/p&gt;
&lt;p&gt;Any exceptions that occurr during requests will get handled by the application_error if they are not handled before that... however if you have an exception happening on the finalizer or on any other non-request thread, like a timer thread or similar, it will not be handled and thus be 2nd chance and crash the process... &lt;/p&gt;
&lt;p&gt;hope that makes sense, just think of it as in 1st chance exception = exception that can still be trapped and handled, &amp;nbsp;2nd chance exception = unhandled exception&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8987855</link><pubDate>Wed, 08 Oct 2008 00:44:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8987855</guid><dc:creator>James</dc:creator><description>&lt;p&gt;Hey Tess,&lt;/p&gt;
&lt;p&gt;I have a web app that has a, thus far, undiagnosed crash. &amp;nbsp;I was hoping to use the steps in this lab to debug it, but it doesn't seem to work.&lt;/p&gt;
&lt;p&gt;Firstly, there was only one dump file created named: PID-2148__W3WP.EXE_-OneStopCC-__1st_chance_Process_Shut_Down__full_0f20_2008-10-07_16-05-52-828_0864.dmp&lt;/p&gt;
&lt;p&gt;(AppPool name is OneStopCC)&lt;/p&gt;
&lt;p&gt;What does it mean when there is a crash that only creates the 1st chance/shut down dump and why does it not seem to have an exception in it (like in the lab)?&lt;/p&gt;
&lt;p&gt;!pe returns &amp;quot;The current thread is unmanaged&amp;quot;&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#8991035</link><pubDate>Wed, 08 Oct 2008 11:32:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8991035</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;You will get a 1st chance process shutdown when the process goes down for whatever reason, i.e. it could be that the process preemptively recycled (make sure to uncheck all recycling options), or that someone called iisreset, or that a fatal exception occurred that caused it to shutdown.&lt;/p&gt;
&lt;p&gt;The problem is that when the process is shutting down, the reason for the shutdown may already be gone... and in a shutdown dump you will typically just see the last thread that happened to finish in the dump, it is not neccessarily the faulting one.&lt;/p&gt;
&lt;p&gt;Check the eventlogs to make sure that it wasnt just caught due to a recycle or iisreset, and if it wasnt, then check the log that adplus outputs and follow Lab 5 to see how you can get dumps on the actual exception that came before the crash. &amp;nbsp; &lt;/p&gt;
&lt;p&gt;By default, adplus will only capture dumps on a few things like 2nd chance exceptions (unhandled exceptions), access violations, invalid handle etc. &amp;nbsp; so some things, like stackoverflow exceptions aren't caught by default, but lab 5 will show you how to catch those.&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 2: Crash</title><link>http://blogs.msdn.com/tess/archive/2008/02/08/net-debugging-demos-lab-2-crash.aspx#9212789</link><pubDate>Sun, 14 Dec 2008 07:17:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9212789</guid><dc:creator>John</dc:creator><description>&lt;p&gt;Thanks for the lab- starting to understand some of this&lt;/p&gt;</description></item></channel></rss>