[ python-Bugs-1464056 ] curses library in python 2.4.3 broken
SourceForge.net
noreply at sourceforge.net
Thu Aug 3 08:03:33 CEST 2006
Bugs item #1464056, was opened at 2006-04-04 01:47
Message generated for change (Comment added) made by nnorwitz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1464056&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.4
Status: Open
>Resolution: Accepted
Priority: 5
Submitted By: nomind (vnainar)
Assigned to: A.M. Kuchling (akuchling)
Summary: curses library in python 2.4.3 broken
Initial Comment:
My python programs using curses library do not work
with version 2.4.3.Even the 'ncurses.py ' demo program
in the Demo/curses directory does not work correctly.
The problem seems to be in the 'panels' library
----------------------------------------------------------------------
>Comment By: Neal Norwitz (nnorwitz)
Date: 2006-08-02 23:03
Message:
Logged In: YES
user_id=33168
Andrew, could you apply this after the freeze is over?
----------------------------------------------------------------------
Comment By: Paul Smedley (psmedley)
Date: 2006-05-21 07:38
Message:
Logged In: YES
user_id=1359962
I have a similar problem on OS/2. When running any script
that uses curses I get:
[U:\dev\Python-2.4.3\PC\os2emx]python test_curses.py
Traceback (most recent call last):
File "test_curses.py", line 242, in ?
curses.wrapper(main)
File "U:/DEV/PYTHON-2.4.3/Lib/curses/wrapper.py", line 49,
in wrapper
curses.nocbreak()
_curses.error: nocbreak() returned ERR
If I remove the reference to nocbreak() from wrapper.py, I
get the same error but in endwin(), removing endwin() from
wrapper.py, I get an error in cbreak(), removing cbreak()
then some scripts work.
For example, from the demo folder, all work exceptlife.py &
xmas.py, which both return an error "_curses.error:
nocbreak() returned ERR" on various line numbers.
Seems certain curses functions are working correctly, others
aren't.
The patch in this bug does NOT make any difference here.
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-17 11:50
Message:
Logged In: YES
user_id=1497957
/me confirms
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-15 08:30
Message:
Logged In: YES
user_id=21627
Good spotting! Can everybody please confirm that the
attached patch fixes the problem?
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-15 07:48
Message:
Logged In: YES
user_id=1497957
Half day of debugging and it seems that I found an answer...
just by accident ;).
When curses module is linked against ncursesw it seems that
it also should be linked against panelw not plain panel.
After changing this in setup.py, ncurses.py demo finally
runs fine.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-15 00:05
Message:
Logged In: YES
user_id=21627
I couldn't reproduce the problem on a Linux console
(although my console had a different size); so it remains
unreproducable for me.
----------------------------------------------------------------------
Comment By: nomind (vnainar)
Date: 2006-04-13 04:00
Message:
Logged In: YES
user_id=1493752
Well , it is the linux console (in VGA mode ).
The local is en_US.The size of the console is
100X37.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-10 22:32
Message:
Logged In: YES
user_id=21627
Ah, ok. vnainar, atler_: What terminal had you been using to
make it crash? What is your locale? Any other conditions
that might be relevant (e.g. dimension of the terminal)?
----------------------------------------------------------------------
Comment By: nomind (vnainar)
Date: 2006-04-10 22:13
Message:
Logged In: YES
user_id=1493752
Removing 'ncursesw' (there are two references to it in
'setup.py') seems to solve the problem. I noticed one more
oddity. Even before the above recompilation , it ran fine
on an Xterm !
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-10 15:28
Message:
Logged In: YES
user_id=21627
That's hard to tell. Somebody would have to debug ncurses to
find out why it crashes. Notice that it crashes only on some
installations, so it is likely rather a problem with your
ncurses installation, than with Python (or even with ncurses
itself).
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-10 14:24
Message:
Logged In: YES
user_id=1497957
loewis: removing lines refering to ncursesw solves the
problem. ncurses.py runs fine as well as other programs.
What is actual problem then? Something with ncursesw or
with python?
Anyway, Thanks for your help.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-09 13:58
Message:
Logged In: YES
user_id=21627
atler_: around line 427, you find
if self.compiler.find_library_file(lib_dirs,
'ncursesw'):
readline_libs.append('ncursesw')
elif self.compiler.find_library_file(lib_dirs,
'ncurses'):
Replace that with
if self.compiler.find_library_file(lib_dirs,
'ncurses'):
(i.e. dropping the ncursesw part), and rebuild.
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-09 06:48
Message:
Logged In: YES
user_id=1497957
More complete backtrace, I hope it will help:
http://pastebin.com/649445
----------------------------------------------------------------------
Comment By: Anthony Baxter (anthonybaxter)
Date: 2006-04-09 05:14
Message:
Logged In: YES
user_id=29957
The buildbot boxes don't show this problem.
You might need to rebuild a Python with -g and unstripped to
get a useful backtrace.
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-09 03:51
Message:
Logged In: YES
user_id=1497957
$ ldd /usr/lib/python2.4/lib-dynload/_curses.so
libncursesw.so.5 => /usr/lib/libncursesw.so.5
(0x7004c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x70080000)
libc.so.6 => /lib/libc.so.6 (0x700e4000)
libdl.so.2 => /lib/libdl.so.2 (0x70228000)
libtinfow.so.5 => /usr/lib/libtinfow.so.5 (0x7023c000)
/lib/ld-linux.so.2 (0x70000000)
...
Program received signal SIGSEGV, Segmentation fault.
0x7063947c in hide_panel () from /usr/lib/libpanel.so.5
gdb) bt
#0 0x7063947c in hide_panel () from /usr/lib/libpanel.so.5
#1 0x706254b8 in ?? () from
/usr/lib/python2.4/lib-dynload/_curses_panel.so
#2 0x706254b8 in ?? () from
/usr/lib/python2.4/lib-dynload/_curses_panel.so
Previous frame identical to this frame (corrupt stack?)
It seems that only programs using panel library cause
segfaults (all other demos run fine except ncurses.py),
sorry for a mistake in a last post.
loewis: I'm not sure I understand second point. What excatly
should be changed in setup.py?
----------------------------------------------------------------------
Comment By: Matt Fleming (splitscreen)
Date: 2006-04-09 03:46
Message:
Logged In: YES
user_id=1126061
Cannot reproduce on Gentoo. All the files in the Demo/curses
directory run fine.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-09 03:29
Message:
Logged In: YES
user_id=21627
I can't reproduce any of this on Debian;
Demo/curses/ncurses.py runs fine. Can you please
1. run ldd on _curses.so, and report the output, and
2. edit setup.py, removing the lines that deal with ncursesw,
3. atler_: produce a gdb backtrace on the time of the crash,
4: vnainar: please report what you mean by "does not work".
Does it erase your hard disk? turn off the machine? Paint
things blue instead of red?
----------------------------------------------------------------------
Comment By: Jan Palus (atler_)
Date: 2006-04-09 03:06
Message:
Logged In: YES
user_id=1497957
I confirm the problem. Every program using curses library
segfaults and there's only one error before it happens:
...
import curses # directory /usr/share/python2.4/curses
import curses # precompiled from
/usr/share/python2.4/curses/__init__.pyc
dlopen("/usr/lib/python2.4/lib-dynload/_curses.so", 2);
import _curses # dynamically loaded from
/usr/lib/python2.4/lib-dynload/_curses.so
import curses.wrapper # precompiled from
/usr/share/python2.4/curses/wrapper.pyc
import curses.panel # precompiled from
/usr/share/python2.4/curses/panel.pyc
dlopen("/usr/lib/python2.4/lib-dynload/_curses_panel.so", 2);
import _curses_panel # dynamically loaded from
/usr/lib/python2.4/lib-dynload/_curses_panel.so
Traceback (most recent call last):
File "ncurses.py", line 273, in ?
curses.wrapper(demo_panels)
File "/usr/share/python2.4/curses/wrapper.py", line 49, in
wrapper
_curses.error: nocbreak() returned ERR
I'm running Linux (PLD) with Python 2.4.3 and ncurses 5.5.
With Python 2.4.2 everything worked fine.
----------------------------------------------------------------------
Comment By: nomind (vnainar)
Date: 2006-04-05 22:38
Message:
Logged In: YES
user_id=1493752
Sorry my original post was incomplete. I am running
slackware 10.2 (linux kernel 2.6).The python library was
tested with ncurses 5.4 and ncurses 5.5( the latest
release). All programs run OK with 2.4.1.As I said ,the
curses demo that comes with the Python distributions runs OK
with 2.4.1 but
not with 2.4.3 - I have both on my machine
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2006-04-04 15:16
Message:
Logged In: YES
user_id=21627
What do you mean by "do not work"? What operating system and
what curses implementation are you using?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1464056&group_id=5470
More information about the Python-bugs-list
mailing list