The process suddenly crashes without errors

I have a somewhat large server process written in .net-3.5, i.e. running on VMVare vCenter Server, which continues to crash without error messages. This process is created by the Windows service on 32-bit Windows Server 2003 and is designed for long-term operation (several days). This is a collaboration process that accepts connections through Tcp sockets from several clients running on other Windows XP machines and allows them to exchange data. In addition, this process also includes about 8 WCF services that expose the Tcp and Http endpoints. Usually this process consumes about 500 MB of memory and from 30 to 50% of the processor. There is also an instance of SQL Server 2005 on the same virtual machine that hosts 6 databases and consumes about 1-1.2 GB of memory. The entire system was distributed over 8 GB of RAM and consumes up to 7 GB during normal operation. I assume that PAE allowed the system to address 8 GB of memory, but did not confirm this.

The problem is that at seemingly random moments, the process suddenly crashes without error messages, including in the event log. I tried connecting debuggers to the process, and they also did not fall into the trap. First I tried WinDbg in the release build with the loaded symbols, and then replaced all the release DLLs with the debug builds and loaded their symbols. The crashes still occurred, and the debugger did not catch them. Then I installed Visual Studio on a system with the .Net Reflector add-in and attached it. It also did not cause a failure.

Before giving a lecture on why we run so many things on one virtual machine, we know that I did not design the system and did not implement it that way. Our client dictated it for certain reasons, and I was asked to come and make it work. I am only interested in environmental criticism, if you can point out concrete evidence that will help explain the sudden failures. Our client may wish to change the environment if we can show such evidence. Any additional debugging methods that will allow me to get more information about the crash will also be appreciated.

+4
source share
3 answers

It turns out that one of the service plugins was looking for and referencing the Java library. When the user logged out, the plugin disconnected the service due to the termination of the JVM. We were able to start everything again by following the suggestions in this post (starting the JVM with the "-Xrs" parameter): http://www.velocityreviews.com/forums/t128371-java-app-dies-on-logoff.html

0
source

Failing without output suggests a call to _exit() (or even exit() ). I saw several corners of the Visual Studio runtime library, although they usually get a secret message to stderr . Is stderr captured?

Looks like a suspicion of running out of memory. If .net has a heapspace() -like function to describe how much memory is used by the heap, periodically register it, possibly together with the total memory used (code + stack + data). I am not familiar with .net, but there must be functions to get these values.

0
source

All Articles