[Python-bugs-list] [ python-Bugs-488730 ] os.popen() seg faults on FreeBSD 5
noreply@sourceforge.net
noreply@sourceforge.net
Tue, 11 Dec 2001 14:28:16 -0800
Bugs item #488730, was opened at 2001-12-03 21:14
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=488730&group_id=5470
Category: Extension Modules
Group: Platform-specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Marc Culler (marcculler)
Assigned to: Nobody/Anonymous (nobody)
Summary: os.popen() seg faults on FreeBSD 5
Initial Comment:
Here is the crash with Python 2.1.1 on my FreeBSD
5.0-current system:
[ace:culler]$ python
Python 2.1.1 (#5, Aug 18 2001, 17:41:43)
[GCC 2.95.3 20010315 (release)] on freebsd5
Type "copyright", "credits" or "license" for more
information.
>>> import os
>>> mypipe = os.popen('ls /')
Segmentation fault (core dumped)
No problem occurs when I do the same thing in
Python 2.0, which was compiled under FreeBSD 4,
but is running here under FreeBSD 5:
[ace:culler]$ python2.0
Python 2.0 (#2, Nov 16 2000, 22:22:48)
[GCC 2.95.2 19991024 (release)] on freebsd4
Type "copyright", "credits" or "license" for more
information.
>>> import os
>>> mypipe = os.popen('ls /')
>>> mypipe.readlines()
['COPYRIGHT\012', 'bin\012', 'boot\012', 'cdrom\012',
'compat\012', 'dev\012', 'dist\012', 'entropy\012',
'etc\012', 'home\012', 'kernel\012',
'kernel.GENERIC\012', 'kernel.old\012',
'kernel.prev\012', 'mnt\012', 'modules\012',
'modules.old\012', 'proc\012', 'root\012', 'sbin\012',
'shared\012', 'stand\012', 'sys\012', 'tmp\012',
'usr\012', 'var\012']
>>>
----------------------------------------------------------------------
>Comment By: Guido van Rossum (gvanrossum)
Date: 2001-12-11 14:28
Message:
Logged In: YES
user_id=6380
Marc, the Python popen code (if you can see through the
#ifdefs for non-Unix platforms :-) is a pretty
straightforward call of the C library popen(). The crash you
receive suggests that it has nothing to do with Python. Can
you try a C program containing the same call? Something like
#include <stdio.h>
main()
{
popen("ls -l", "r");
}
Does this crash in the same way? If so, you may close this
bug report and report it to the FreeBSD folks instead...
----------------------------------------------------------------------
Comment By: Marc Culler (marcculler)
Date: 2001-12-11 14:14
Message:
Logged In: YES
user_id=392704
All I know so far is that, according to the stack trace, the
crash seems to occur in _fcntl in libc_r.so:
(gdb) run
Starting program: /usr/local/src/Python211/python
Python 2.1.1 (#14, Dec 11 2001, 15:55:41)
[GCC 2.95.3 20010315 (release)] on freebsd5
Type "copyright", "credits" or "license" for more
information.
>>> import os
>>> x = os.popen('ls /')
Program received signal SIGSEGV, Segmentation fault.
0x280e32ee in _fcntl () from /usr/lib/libc_r.so.5
(gdb) backtrace
#0 0x280e32ee in _fcntl () from /usr/lib/libc_r.so.5
#1 0x28391c99 in fdopen () from /usr/lib/libc.so.5
#2 0x2834bf30 in popen () from /usr/lib/libc.so.5
#3 0x80735b1 in posix_popen (self=0x0, args=0x80f488c)
at ./Modules/posixmodule.c:2936
#4 0x805921e in call_cfunction (func=0x80d0820,
arg=0x80f488c, kw=0x0)
at Python/ceval.c:2845
#5 0x8057cb1 in eval_code2 (co=0x8159ac0,
globals=0x80e0ccc, locals=0x80e0ccc,
args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0,
defcount=0, closure=0x0)
at Python/ceval.c:1948
#6 0x8055171 in PyEval_EvalCode (co=0x8159ac0,
globals=0x80e0ccc,
locals=0x80e0ccc) at Python/ceval.c:341
#7 0x806ca8f in run_node (n=0x8158280, filename=0x80a202d
"<stdin>",
globals=0x80e0ccc, locals=0x80e0ccc, flags=0xbfbff70c)
at Python/pythonrun.c:1045
#8 0x806bc86 in PyRun_InteractiveOneFlags (fp=0x80c93a0,
filename=0x80a202d "<stdin>", flags=0xbfbff70c) at
Python/pythonrun.c:570
#9 0x806bae6 in PyRun_InteractiveLoopFlags (fp=0x80c93a0,
filename=0x80a202d "<stdin>", flags=0xbfbff70c) at
Python/pythonrun.c:510
#10 0x806b9db in PyRun_AnyFileExFlags (fp=0x80c93a0,
filename=0x80a202d "<stdin>", closeit=0,
flags=0xbfbff70c)
at Python/pythonrun.c:473
#11 0x805222c in Py_Main (argc=0, argv=0xbfbff784) at
Modules/main.c:320
#12 0x8051d04 in main (argc=1, argv=0xbfbff784) at
Modules/python.c:10
#13 0x8051c35 in _start ()
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2001-12-11 12:58
Message:
Logged In: YES
user_id=21627
Can't reproduce this on FreeBSD 4.4, either, using the
current CVS.
----------------------------------------------------------------------
Comment By: Guido van Rossum (gvanrossum)
Date: 2001-12-08 09:18
Message:
Logged In: YES
user_id=6380
I can't reproduce this, and I don't have access to a FreeBSD
5 machine. Can you debug this yourself? We'd welcome a
patch.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=488730&group_id=5470