[Cython] Cython bugfix release
Yaroslav Halchenko
lists at onerussian.com
Tue Jul 22 20:59:39 CEST 2014
apparently relates back to
"Failing cygdb tests on master and 0.19.x"
https://groups.google.com/forum/#!topic/cython-users/SRKdbfftjMM
and https://github.com/cython/cython/pull/264
blind attempt to run with python-dbg build doesn't provide a relief (gdb is
7.7.1-2)
# PYTHONPATH=$PWD/build/lib.linux-x86_64-2.7-pydebug python2.7-dbg runtests.py --no-refnanny -v -v --exclude="parallel" --work-dir=build/work-dir TestLibCython
Python 2.7.8 (default, Jul 4 2014, 13:12:00)
[GCC 4.9.0]
Running tests against Cython 0.20.2
Backends: c,cpp
test_all (Cython.Debugger.Tests.TestLibCython.TestAll) ...
****************************** v INSIDE GDB v ******************************
warning: .cygdbinit: No such file or directory
EF...Function "__pyx_pw_8codefile_5outer_1inner" not defined.
Python Exception <type 'exceptions.KeyError'> (u'a',):
EFTraceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'a' is not defined
F...Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'a' is not defined
FTraceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'some_random_var' is not defined
FE.EEE.E.FFF
======================================================================
ERROR: test_cyset (Cython.Debugger.Tests.test_libcython_in_gdb.CySet)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 38, in wrapper
return func(self, *args, **kwargs)
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 387, in test_cyset
gdb.execute('cy set a = $cy_eval("{None: []}")')
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/libpython.py", line 1860, in execute
_execute(command, from_tty)
error: Selected frame does not correspond with a Cython function we know about.
======================================================================
ERROR: test_inner (Cython.Debugger.Tests.test_libcython_in_gdb.TestClosure)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 38, in wrapper
return func(self, *args, **kwargs)
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 420, in test_inner
self.assertEqual(str(self.read_var('a')), "'an object'")
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 38, in wrapper
return func(self, *args, **kwargs)
File "/tmp/buildd/cython-0.20.2/build/lib.linux-x86_64-2.7-pydebug/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 72, in read_var
result = gdb.parse_and_eval('$cy_cvalue("%s")' % varname)
error: Error occurred in Python convenience function: (u'a',)
...
On Tue, 22 Jul 2014, Yaroslav Halchenko wrote:
> On Mon, 21 Jul 2014, Julian Taylor wrote:
> > I haven't tried it but its possibly related to the C locale the debian
> > builders use. Try with LC_ALL=C
> that is the one set
> > @Yaroslav if this the the case, the workaround would be building with
> > LC_ALL=C.UTF-8
> good hint, although would not serve us as a workaround but rather possibly
> reveals the actual problem if ran in interactive mode (if I pipe the output --
> the same error)...
> the original error happens in the code which reacts to unsuccessful execution
> of GdbDebuggerTestCaseand apparently has a problem with that unicode string
> (although it was decoded from UTF-8 without errors). To say the truth, unicode
> handling philosophical understanding is not my strongest skill, BUT it seems to
> spit out the actual error without failing if I explicitly encode that errmsg
> back into UTF-8 and write that. Alternative more generic implementation there
> could be get a custom writer for stderr:
> class TestAll(GdbDebuggerTestCase):
> def test_all(self):
> if not test_gdb():
> return
> out, err = self.p.communicate()
> err = err.decode('UTF-8')
> exit_status = self.p.returncode
> import codecs
> stderr = codecs.getwriter('utf8')(sys.stderr)
> if exit_status == 1:
> stderr.write(err)
> elif exit_status >= 2:
> border = u'*' * 30
> start = u'%s v INSIDE GDB v %s' % (border, border)
> end = u'%s ^ INSIDE GDB ^ %s' % (border, border)
> errmsg = u'\n%s\n%s%s' % (start, err, end)
> stderr.write(errmsg)
> With such code it spits out errmsg reliably:
> python runtests.py --no-refnanny -v -v --exclude="parallel" --work-dir=build/work-dir TestLibCython
> Python 2.7.8 (default, Jul 4 2014, 13:08:34)
> [GCC 4.9.0]
> Running tests against Cython 0.20.2
> Backends: c,cpp
> test_all (Cython.Debugger.Tests.TestLibCython.TestAll) ...
> ****************************** v INSIDE GDB v ******************************
> warning: .cygdbinit: No such file or directory
> EE...Function "__pyx_pw_8codefile_5outer_1inner" not defined.
> Python Exception <type 'exceptions.KeyError'> (u'a',):
> EFSystemError: ../Objects/moduleobject.c:50: bad argument to internal function
> E...SystemError: ../Objects/moduleobject.c:50: bad argument to internal function
> Python Exception <class 'gdb.error'> The program being debugged was signaled while in a function called from GDB.
> GDB remains in the frame where the signal was received.
> To change this behavior use "set unwindonsignal on".
> Evaluation of the expression containing the function
> (PyModule_GetDict) will be abandoned.
> When the function is done executing, GDB will silently stop.:
> ESystemError: ../Objects/moduleobject.c:50: bad argument to internal function
> Python Exception <class 'gdb.error'> The program being debugged was signaled while in a function called from GDB.
> GDB remains in the frame where the signal was received.
> To change this behavior use "set unwindonsignal on".
> Evaluation of the expression containing the function
> (PyModule_GetDict) will be abandoned.
> When the function is done executing, GDB will silently stop.:
> EE.EEE.E.FFF
> ======================================================================
> ERROR: test_cyset (Cython.Debugger.Tests.test_libcython_in_gdb.CySet)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 38, in wrapper
> return func(self, *args, **kwargs)
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 387, in test_cyset
> gdb.execute('cy set a = $cy_eval("{None: []}")')
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/libpython.py", line 1860, in execute
> _execute(command, from_tty)
> error: Selected frame does not correspond with a Cython function we know about.
> ======================================================================
> ERROR: test_backtrace (Cython.Debugger.Tests.test_libcython_in_gdb.TestBacktrace)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 38, in wrapper
> return func(self, *args, **kwargs)
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/Tests/test_libcython_in_gdb.py", line 292, in test_backtrace
> result = gdb.execute('cy bt', to_string=True)
> File "/tmp/buildd/cython-0.20.2/Cython/Debugger/libpython.py", line 1857, in execute
> _execute(command, from_tty)
> error: Error occurred in Python command: 'FakeRepr' object has no attribute '__getitem__'
> .... MORE ....
> > On 21.07.2014 19:46, Robert Bradshaw wrote:
> > > I wasn't able to reproduce this myself, which is why I haven't done
> > > anything about it yet...
> > > On Sat, Jul 19, 2014 at 9:39 PM, Yaroslav Halchenko
> > > <lists at onerussian.com <mailto:lists at onerussian.com>> wrote:
> > > that was quite an underwhelming response, now it is "official"
> > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755340
> > > and I haven't had yet a chance to recheck master... anyone has a clue
> > > before I start digging?
> > > On Thu, 19 Jun 2014, Yaroslav Halchenko wrote:
> > > > and the same issue in current(ish) master:
> > > > ======================================================================
> > > > ERROR: test_all (Cython.Debugger.Tests.TestLibCython.TestAll)
> > > > ----------------------------------------------------------------------
> > > > Traceback (most recent call last):
> > > > File
> > > "/tmp/buildd/cython-0.20.2+git216-ga96882e/Cython/Debugger/Tests/TestLibCython.py",
> > > line 280, in test_all
> > > > sys.stderr.write(errmsg)
> > > > UnicodeEncodeError: 'ascii' codec can't encode characters in
> > > position 21001-21004: ordinal not in range(128)
> > > > ----------------------------------------------------------------------
> > > > Ran 8348 tests in 2674.102s
> > > > On Wed, 18 Jun 2014, Yaroslav Halchenko wrote:
> > > > > FWIW -- 0.20.2 was just uploaded to Debian sid, thus should be
> > > available
> > > > > to Debian folks soon too
> > > > > while trying 0.20.1 across debian/ubuntus I ran into this failure
> > > ======================================================================
> > > > > ERROR: test_all (Cython.Debugger.Tests.TestLibCython.TestAll)
> > > ----------------------------------------------------------------------
> > > > > Traceback (most recent call last):
> > > > > File
> > > "/tmp/buildd/cython-0.20.2/Cython/Debugger/Tests/TestLibCython.py",
> > > line 281, in test_all
> > > > > sys.stderr.write(errmsg)
> > > > > UnicodeEncodeError: 'ascii' codec can't encode characters in
> > > position 18851-18854: ordinal not in range(128)
> > > > > on debian wheezy i386. it didn't happen on amd64 and on both
> > > architectures
> > > > > under debian jessie (testing) and it seemed to happen while
> > > testing with
> > > > > python2.6
> > > > > On Mon, 16 Jun 2014, Robert Bradshaw wrote:
> > > > > > I just pushed another bugfix release for the 0.20.x line,
> > > available on
> > > > > > github, cython.org <http://cython.org>, or and pypi.
> > > > > > == Features added ==
> > > > > > * Some optimisations for set/frozenset instantiation.
> > > > > > * Support for C++ unordered_set and unordered_map.
> > > > > > == Bugs fixed ==
> > > > > > * Access to attributes of optimised builtin methods (e.g.
> > > > > > [].append.__name__) could fail to compile.
> > > > > > * Memory leak when extension subtypes add a memory view as
> > > attribute
> > > > > > to those of the parent type without having Python object
> > > attributes or
> > > > > > a user provided dealloc method.
> > > > > > * Compiler crash on readonly properties in "binding" mode.
> > > > > > * Auto-encoding with c_string_encoding=ascii failed in Py3.3.
> > > > > > * Crash when subtyping freelist enabled Cython extension types
> > > with
> > > > > > Python classes that use __slots__.
> > > > > > * Freelist usage is restricted to CPython to avoid problems
> > > with other
> > > > > > Python implementations.
> > > > > > * Memory leak in memory views when copying overlapping,
> > > contiguous slices.
> > > > > > * Format checking when requesting non-contiguous buffers from
> > > > > > cython.array objects was disabled in Py3.
> > > > > > * C++ destructor calls in extension types could fail to
> > > compile in clang.
> > > > > > * Buffer format validation failed for sequences of strings in
> > > structs.
> > > > > > * Docstrings on extension type attributes in .pxd files were
> > > rejected.
> > > > > > == Contributors ==
> > > > > > Andreas van Cranenburgh
> > > > > > Ian Bell
> > > > > > Lars Buitinck
> > > > > > Martin Quarda
> > > > > > Mikhail Korobov
> > > > > > Robert Bradshaw
> > > > > > Stefan Behnel
> > > > > > _______________________________________________
> > > > > > cython-devel mailing list
> > > > > > cython-devel at python.org <mailto:cython-devel at python.org>
> > > > > > https://mail.python.org/mailman/listinfo/cython-devel
> > > --
> > > Yaroslav O. Halchenko, Ph.D.
> > > http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org
> > > Research Scientist, Psychological and Brain Sciences Dept.
> > > Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
> > > Phone: +1 (603) 646-9834 <tel:%2B1%20%28603%29%20646-9834>
> > > Fax: +1 (603) 646-1419 <tel:%2B1%20%28603%29%20646-1419>
> > > WWW: http://www.linkedin.com/in/yarik
> > > _______________________________________________
> > > cython-devel mailing list
> > > cython-devel at python.org <mailto:cython-devel at python.org>
> > > https://mail.python.org/mailman/listinfo/cython-devel
> > > _______________________________________________
> > > cython-devel mailing list
> > > cython-devel at python.org
> > > https://mail.python.org/mailman/listinfo/cython-devel
> > _______________________________________________
> > cython-devel mailing list
> > cython-devel at python.org
> > https://mail.python.org/mailman/listinfo/cython-devel
--
Yaroslav O. Halchenko, Ph.D.
http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org
Research Scientist, Psychological and Brain Sciences Dept.
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik
More information about the cython-devel
mailing list