DotCom’s Blog Space

Engineers Corner

System.StackOverflowException with IronPython 2.6.0 and 2.6.1

by DotCom on May.21, 2010, under Engineers Corner

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. (continue reading…)

2 Comments :, , , , , more...

32 Bit vs 64 Bit Memory Allocation / Garbage Collection

by DotCom on Apr.14, 2010, under Engineers Corner

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.
(continue reading…)

7 Comments :, , , , more...

SQL Server Errors out with 80071736 “The cluster Resource ‘Sql Server’ cannot be brought online” Problem

by DotCom on Jan.22, 2009, under Engineers Corner

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’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.

 

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.

 

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’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’s.

Another Error we ran into was when we “Add a SQL Node” on the secondary nodes was “INVALID SKU” 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. 

 

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.

Leave a Comment :, , , , more...

SQL Error codes…..!

by DotCom on Apr.07, 2008, under Engineers Corner

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’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.

-3: ZeroBytes
-2: Timeout
-1: Unknown
1: InsufficientMemory
2: AccessDenied
3: ConnectionBusy
4: ConnectionBroken
5: ConnectionLimit
6: ServerNotFound
7: NetworkNotFound
8: InsufficientResources
9: NetworkBusy
10: NetworkAccessDenied
11: GeneralError
12: IncorrectMode
13: NameNotFound
14: InvalidConnection
15: ReadWriteError
16: TooManyHandles
17: ServerError
18: SSLError
19: EncryptionError
20: EncryptionNotSupported

Leave a Comment :, , , , , more...

Rolling File TraceListener

by DotCom on Apr.04, 2008, under Engineers Corner

Ever been in a situation you needed to use the logging mechanisms of .Net’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: IsFileSizeReached(string filename) 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: GetSupportedAttributes()

I have attached the class file for anyone who wishes to have a sample or play around with it.

Another thing to note is that this class still allows you to pass custom stream or textwriters for those that use those.

RollingTextWriterTraceListener.txt

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...