Bugs item #1464056, was opened at 2006-04-04 04:47
Message generated for change (Comment added) made by akuchling
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: Closed
Resolution: Accepted
Priority: 9
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: A.M. Kuchling (akuchling)
Date: 2006-08-06 20:39

Message:
Logged In: YES 
user_id=11375

Committed to 2.4 branch in rev.51136.


----------------------------------------------------------------------

Comment By: A.M. Kuchling (akuchling)
Date: 2006-08-06 18:12

Message:
Logged In: YES 
user_id=11375

Committed to the trunk in rev. 51134.

----------------------------------------------------------------------

Comment By: A.M. Kuchling (akuchling)
Date: 2006-08-03 08:53

Message:
Logged In: YES 
user_id=11375

Sure.  

----------------------------------------------------------------------

Comment By: Neal Norwitz (nnorwitz)
Date: 2006-08-03 02: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 10: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 14:50

Message:
Logged In: YES 
user_id=1497957

/me confirms

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2006-04-15 11: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 10: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 03: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 07: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-11 01: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-11 01: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 18: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 17: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 16: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 09: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 08: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 06: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 06: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 06: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 06: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-06 01: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 18: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
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to