Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- From: "Willy Van den Driessche" <alfredothepistolero@xxxxxxxxxxx>
- Date: Fri, 16 Nov 2007 09:15:06 +0100
I have attached a debugger to the crashing apps, setting up symbol server and pdb stuff.
The crash is never twice on the same code location.
From what we know now, it appears to have something to do with us notclosing our database connections to sql express explicitly. I have walked the code and made sure all connections where closed when done and the problem disappeared.
We must have had 500+ "open" (in quotes because we don't know when gc will hit) connections. Then the crash appeared.
What bothers me is of course the bug in our code but even more so the fact that there was no exception being thrown when we opened too many connections.
I suspected stdole because sometimes, the attached debugger reported this error : http://dotnetjunkies.com/WebLog/wicwil/archive/2006/04/28/137513.aspx
which is clearly related to COM.
I'm still not convinced our bug is completely solved but practice tells me for the moment it is.
Thanks for your reply Johannes,
Willy.
"Johannes Passing" <jpassing_at_hotmail_com@xxxxxxxxxx> wrote in message news:uY0WKIrJIHA.4584@xxxxxxxxxxxxxxxxxxxxxxx
If the crash occurs repeatedly on certain machines, you should be able to attach a debugger or grab a crash dump. Have you tried so? If yes, is the ExecutionEngineException always thrown at the same code location? If so, can you post a stacktrace, please? Finally, why do you suspect stdole.dll?.
--Johannes
Willy Van den Driessche wrote:We are porting a huge VB6 application to dotnet 2.0. The full application
has 800KLOC of VB6 code. The old application was basically as small shell
application that loaded optional plugins (nearly 100 of them for a complete
installation). Because it is impossible to rewrite all existing code at
once, we have rewritten the shell (as well as new functionality) in dotnet
(also reaching for 200 KLOC of code). The old modules are loaded like they
where loaded in VB6. The main shell show them via an (interop) active control.
Sometimes, the application halts with a ExecutionEngineException exception. But there is really no pattern in this.
Does anybody know how to pinpoint such problems ?
Some background : The old app has a core of 8 VB6 DLLs, which in turn use 4
purchased components (FlexGrid, Janus Grid and buttonbar, ActiveReports 1.6,
DAO 3.5 (yes !)). I have created interop assemblies for these using
TLBIMP.EXE and AXIMP.EXE, making sure they reference one another correctly.
Afterwards I have merged all of these use ILMERGE.EXE to reduce the number
of assemblies. The error *never* occurs on our development machines but on
some testing machines we have the problem (the application is deployed via
ClickOnce but all prerequisites are installed with the same installers that
have been working for 8 years now). The VB6 code use classes written in
..NET (they implement interfaces defined in the VB6 interop assembly)
My little voice tells me it could have something to with stdole.dll. *any*
advice is *very* welcome.
- Follow-Ups:
- Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- From: Johannes Passing
- Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- References:
- Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- From: Johannes Passing
- Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- Prev by Date: Re: How can I translate a DWORD to a .NET object?
- Next by Date: Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- Previous by thread: Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- Next by thread: Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code
- Index(es):
Relevant Pages
|