[IronPython] os.popen() + Mono == segfault
Dino Viehland
dinov at exchange.microsoft.com
Wed Dec 6 22:01:20 CET 2006
I would expect this to be a Mono bug as IronPython is entirely managed code.
There's always the possibility we are generating invalid IL but we're not aware of any places where we currently do that (as we validate all the IL we generate w/ peverify during our test runs, which include importing the CPython os module).
-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Anthony Baxter
Sent: Wednesday, December 06, 2006 8:51 AM
To: Discussion of IronPython
Subject: [IronPython] os.popen() + Mono == segfault
On both IronPython 1.0.1 and IPCE release 4, os.popen() segfaults
under Mono 1.17.1 (on Ubuntu edgy).
To reproduce:
ipy.exe -c "import os; print os.popen('/bin/ls', 'r').read()"
Stacktrace follows, for whatever value it is... I can't tell
immediately whether it's an IronPython or Mono problem, although it
_appears_ to be in Mono. If other people agree, I'll log a Mono bug
tomorrow.
It looks like most of the os module to do with spawning commands is
missing, apart from os.spawnl(), which _appears_ to work. It should be
possible to re implement the stdlib's popen2 module on top of that.
Whether it will work is another matter entirely, of course :-)
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Stacktrace
at (wrapper managed-to-native)
System.Diagnostics.Process.CreateProcess_internal
(System.Diagnostics.ProcessStartInfo,intptr,intptr,intptr,System.Diagnostics.Process/ProcInfo&)
<0x00004>
at (wrapper managed-to-native)
System.Diagnostics.Process.CreateProcess_internal
(System.Diagnostics.ProcessStartInfo,intptr,intptr,intptr,System.Diagnostics.Process/ProcInfo&)
<0xffffffff>
at System.Diagnostics.Process.Start_noshell
(System.Diagnostics.ProcessStartInfo,System.Diagnostics.Process)
<0x00547>
at System.Diagnostics.Process.Start_common
(System.Diagnostics.ProcessStartInfo,System.Diagnostics.Process)
<0x0007c>
at System.Diagnostics.Process.Start
(System.Diagnostics.ProcessStartInfo) <0x00032>
at IronPython.Modules.PythonNT.OpenPipedCommand
(IronPython.Runtime.Calls.ICallerContext,string,string,int) <0x000ae>
at IronPython.Modules.PythonNT.OpenPipedCommand
(IronPython.Runtime.Calls.ICallerContext,string,string) <0x00015>
at (wrapper dynamic-method) System.Object.OpenPipedCommand##49
(IronPython.Runtime.Calls.ICallerContext,object,object) <0xffffffff>
at (wrapper delegate-invoke)
System.MulticastDelegate.invoke_object_ICallerContext_object_object
(IronPython.Runtime.Calls.ICallerContext,object,object) <0xffffffff>
at IronPython.Runtime.Calls.FastCallableWithContextAny.Call
(IronPython.Runtime.Calls.ICallerContext,object,object) <0x00023>
at IronPython.Runtime.Calls.BuiltinFunction.Call
(IronPython.Runtime.Calls.ICallerContext,object,object) <0x00023>
at IronPython.Runtime.Operations.Ops.CallWithContext
(IronPython.Runtime.Calls.ICallerContext,object,object,object)
<0x00042>
at (wrapper dynamic-method) System.Object.<stdin>##47
(IronPython.Runtime.ModuleScope) <0xffffffff>
at (wrapper delegate-invoke)
System.MulticastDelegate.invoke_object_ModuleScope
(IronPython.Runtime.ModuleScope) <0xffffffff>
at IronPython.Hosting.CompiledCode.Run
(IronPython.Runtime.ModuleScope) <0x00048>
at IronPython.Hosting.PythonEngine.ExecuteToConsole
(string,IronPython.Hosting.EngineModule,System.Collections.Generic.IDictionary`2)
<0x00180>
at IronPython.Hosting.PythonEngine.ExecuteToConsole (string) <0x00015>
at IronPythonConsole.PythonCommandLine.RunString
(IronPython.Hosting.PythonEngine,string) <0x000bc>
at IronPythonConsole.PythonCommandLine.Run
(IronPython.Hosting.PythonEngine,string) <0x0002b>
at IronPythonConsole.PythonCommandLine.Main (string[]) <0x002bf>
at (wrapper runtime-invoke)
System.Object.runtime_invoke_int_string[]
(object,intptr,intptr,intptr) <0xffffffff>
Native stacktrace:
/usr/bin/mono(mono_handle_native_sigsegv+0xde) [0x815644e]
/usr/bin/mono [0x8122c88]
[0xffffe440]
/usr/bin/mono(mono_unicode_to_external+0x3f) [0x811309f]
/usr/bin/mono [0x8103947]
/usr/bin/mono [0x80d6b57]
[0xb6e5d3fa]
[0xb6e5c880]
[0xb6e5c275]
[0xb6e5c0cb]
[0xb6e5ba5f]
[0xb6e5b996]
[0xb6e5b90a]
[0xb6e6b45c]
[0xb6e6b3d4]
[0xb6e5acfc]
[0xb6e5ac73]
[0xb6e5b6b3]
[0xb6e5378a]
[0xb6e53711]
[0xb6e5af89]
[0xb6e5adee]
[0xb706d4fd]
[0xb706d34c]
[0xb79725a0]
[0xb7971a84]
/usr/bin/mono(mono_runtime_exec_main+0x9f) [0x80996ef]
/usr/bin/mono(mono_runtime_run_main+0x1b9) [0x8099999]
/usr/bin/mono(mono_main+0xe47) [0x805d477]
/usr/bin/mono [0x805c122]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0xb7d058cc]
/usr/bin/mono [0x805c071]
_______________________________________________
users mailing list
users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
More information about the Ironpython-users
mailing list