[IronPython] IronPython kills CLR
Szymon Kobalczyk
s.kobalczyk at softwaremind.pl
Tue Jan 10 21:36:39 CET 2006
I finally found why my NUnit suite doesnt work anymore. It occurs that
its caused by following test case:
string script = @"
class Rectangle1(object):
def __init__(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
area = property(getArea, None, None, None)
r = Rectangle1(10, 100)
print r.area";
PythonEngine engine = new PythonEngine();
object code = engine.Compile(script);
engine.Execute(code);
Executing this in NUnit just kills the process with no error. When I
execute it with debugger I get following exception:
> IronPython.dll!IronPython.Runtime.Frame.TryGetLocal(string name =
"property", out object ret = null) Line 65 + 0x12 bytes C#
IronPython.dll!IronPython.Runtime.Frame.GetGlobal(string name =
"property") Line 90 + 0xe bytes C#
snippets.dll!moduleHolder_0.Rectangle1$maker0() + 0x158 bytes
snippets.dll!moduleHolder_0.input() + 0xb6 bytes
IronPython.dll!IronPython.Runtime.FrameCode.Run(IronPython.Runtime.Frame
frame = {IronPython.Runtime.Frame}) Line 165 + 0xd bytes C#
...
FatalExecutionEngineError was detected
Message: The runtime has encountered a fatal error. The address of the
error was at 0x79e7bd7e, on thread 0xc04. The error code is 0xc0000005.
This error may be a bug in the CLR or in the unsafe or non-verifiable
portions of user code. Common sources of this bug include user
marshaling errors for COM-interop or PInvoke, which may corrupt the stack.
If I execute the same script using IronPythonConsole it works fine.
Please confirm if this issue would occur only when we use python
properties (hopefully we don't have any yet in production code) or there
are other cases to avoid.
Szymon Kobalczyk.
More information about the Ironpython-users
mailing list