[Python-3000] Move to a "py3k" branch *DONE*

Guido van Rossum guido at python.org
Fri Aug 10 20:18:35 CEST 2007


Status update:

The following still leak (regrtest.py -R4:3:)

test_array leaked [11, 11, 11] references, sum=33
test_multibytecodec leaked [72, 72, 72] references, sum=216
test_parser leaked [5, 5, 5] references, sum=15
test_zipimport leaked [29, 29, 29] references, sum=87

I can't reproduce the test_shelve failure.

I *do* see the test_structmember failure, will investigate.

I see a failure but no segfault in test_datetime; will investigate.

Regarding test_univnewlines, this is virgin territory. I've never met
anyone who used the newlines attribute on file objects. I'll make a
separate post to call it out.

--Guido

On 8/10/07, Neal Norwitz <nnorwitz at gmail.com> wrote:
> Bah, who needs sleep anyways.  This list of problems should be fairly
> complete when running with -R.  (it skips the fatal error from
> test_datetime though)
>
> Code to trigger a leak:   b'\xff'.decode("utf8", "ignore")
>
> Leaks:
> test_array leaked [11, 11, 11] references, sum=33
> test_bytes leaked [4, 4, 4] references, sum=12
> test_codeccallbacks leaked [21, 21, 21] references, sum=63
> test_codecs leaked [260, 260, 260] references, sum=780
> test_ctypes leaked [-22, 43, 10] references, sum=31
> test_multibytecodec leaked [72, 72, 72] references, sum=216
> test_parser leaked [5, 5, 5] references, sum=15
> test_unicode leaked [4, 4, 4] references, sum=12
> test_xml_etree leaked [128, 128, 128] references, sum=384
> test_xml_etree_c leaked [128, 128, 128] references, sum=384
> test_zipimport leaked [29, 29, 29] references, sum=87
>
> Failures with -R:
>
> test test_collections failed -- errors occurred; run in verbose mode for details
>
> test test_gzip failed -- Traceback (most recent call last):
>  File "/home/neal/python/dev/py3k/Lib/test/test_gzip.py", line 77, in
> test_many_append
>    ztxt = zgfile.read(8192)
>  File "/home/neal/python/dev/py3k/Lib/gzip.py", line 236, in read
>    self._read(readsize)
>  File "/home/neal/python/dev/py3k/Lib/gzip.py", line 301, in _read
>    self._read_eof()
>  File "/home/neal/python/dev/py3k/Lib/gzip.py", line 317, in _read_eof
>    crc32 = read32(self.fileobj)
>  File "/home/neal/python/dev/py3k/Lib/gzip.py", line 40, in read32
>    return struct.unpack("<l", input.read(4))[0]
>  File "/home/neal/python/dev/py3k/Lib/struct.py", line 97, in unpack
>    return o.unpack(s)
> struct.error: unpack requires a string argument of length 4
>
> test test_runpy failed -- Traceback (most recent call last):
>  File "/home/neal/python/dev/py3k/Lib/test/test_runpy.py", line 230,
> in test_run_module
>    self._check_module(depth)
>  File "/home/neal/python/dev/py3k/Lib/test/test_runpy.py", line 168,
> in _check_module
>    d2 = run_module(mod_name) # Read from bytecode
>  File "/home/neal/python/dev/py3k/Lib/runpy.py", line 72, in run_module
>    raise ImportError("No module named %s" % mod_name)
> ImportError: No module named runpy_test
>
> test test_shelve failed -- errors occurred; run in verbose mode for details
>
> test test_structmembers failed -- errors occurred; run in verbose mode
> for details
>
> test_univnewlines skipped -- This Python does not have universal newline support
>
> Traceback (most recent call last):
>   File "/home/neal/python/dev/py3k/Lib/SocketServer.py", line 222, in
> handle_request
>     self.process_request(request, client_address)
>   File "/home/neal/python/dev/py3k/Lib/SocketServer.py", line 241, in
> process_request
>     self.finish_request(request, client_address)
>   File "/home/neal/python/dev/py3k/Lib/SocketServer.py", line 254, in
> finish_request
>     self.RequestHandlerClass(request, client_address, self)
>   File "/home/neal/python/dev/py3k/Lib/SocketServer.py", line 522, in __init__
>     self.handle()
>   File "/home/neal/python/dev/py3k/Lib/BaseHTTPServer.py", line 316, in handle
>     self.handle_one_request()
>   File "/home/neal/python/dev/py3k/Lib/BaseHTTPServer.py", line 303,
> in handle_one_request
>     if not self.parse_request(): # An error code has been sent, just exit
>   File "/home/neal/python/dev/py3k/Lib/BaseHTTPServer.py", line 281,
> in parse_request
>     self.headers = self.MessageClass(self.rfile, 0)
>   File "/home/neal/python/dev/py3k/Lib/mimetools.py", line 16, in __init__
>     rfc822.Message.__init__(self, fp, seekable)
>   File "/home/neal/python/dev/py3k/Lib/rfc822.py", line 104, in __init__
>     self.readheaders()
>   File "/home/neal/python/dev/py3k/Lib/rfc822.py", line 172, in readheaders
>     headerseen = self.isheader(line)
>   File "/home/neal/python/dev/py3k/Lib/rfc822.py", line 202, in isheader
>     return line[:i].lower()
> AttributeError: 'bytes' object has no attribute 'lower'
>
> On 8/9/07, Neal Norwitz <nnorwitz at gmail.com> wrote:
> > I wonder if a lot of the refleaks may have the same cause as this one:
> >
> >   b'\xff'.decode("utf8", "ignore")
> >
> > No leaks jumped out at me.  Here is the rest of the leaks that have
> > been reported so far.  I don't know how many have the same cause.
> >
> > test_multibytecodec leaked [72, 72, 72] references, sum=216
> > test_parser leaked [5, 5, 5] references, sum=15
> >
> > The other failures that occurred with -R:
> >
> > test test_collections failed -- errors occurred; run in verbose mode for details
> >
> > test test_gzip failed -- Traceback (most recent call last):
> >   File "/home/neal/python/dev/py3k/Lib/test/test_gzip.py", line 77, in
> > test_many_append
> >     ztxt = zgfile.read(8192)
> >   File "/home/neal/python/dev/py3k/Lib/gzip.py", line 236, in read
> >     self._read(readsize)
> >   File "/home/neal/python/dev/py3k/Lib/gzip.py", line 301, in _read
> >     self._read_eof()
> >   File "/home/neal/python/dev/py3k/Lib/gzip.py", line 317, in _read_eof
> >     crc32 = read32(self.fileobj)
> >   File "/home/neal/python/dev/py3k/Lib/gzip.py", line 40, in read32
> >     return struct.unpack("<l", input.read(4))[0]
> >   File "/home/neal/python/dev/py3k/Lib/struct.py", line 97, in unpack
> >     return o.unpack(s)
> > struct.error: unpack requires a string argument of length 4
> >
> > test test_runpy failed -- Traceback (most recent call last):
> >   File "/home/neal/python/dev/py3k/Lib/test/test_runpy.py", line 230,
> > in test_run_module
> >     self._check_module(depth)
> >   File "/home/neal/python/dev/py3k/Lib/test/test_runpy.py", line 168,
> > in _check_module
> >     d2 = run_module(mod_name) # Read from bytecode
> >   File "/home/neal/python/dev/py3k/Lib/runpy.py", line 72, in run_module
> >     raise ImportError("No module named %s" % mod_name)
> > ImportError: No module named runpy_test
> >
> > test_textwrap was the last test to complete.  test_thread was still running.
> >
> > n
> > --
> > On 8/9/07, Neal Norwitz <nnorwitz at gmail.com> wrote:
> > > On 8/9/07, Guido van Rossum <guido at python.org> wrote:
> > > > This is done. The new py3k branch is ready for business.
> > > >
> > > > Left to do:
> > > >
> > > > - switch the buildbot and the doc builder to use the new branch (Neal)
> > >
> > > I've updated to use the new branch.  I got the docs building, but
> > > there are many more problems.  I won't re-enable the cronjob until
> > > more things are working.
> > >
> > > > There are currently about 7 failing unit tests left:
> > > >
> > > > test_bsddb
> > > > test_bsddb3
> > > > test_email
> > > > test_email_codecs
> > > > test_email_renamed
> > > > test_sqlite
> > > > test_urllib2_localnet
> > >
> > > Ok, I disabled these, so if only they fail, mail shouldn't be sent
> > > (when I enable the script).
> > >
> > > There are other problems:
> > >  * had to kill test_poplib due to taking all cpu without progress
> > >  * bunch of tests leak (./python ./Lib/test/regrtest.py -R 4:3:
> > > test_foo test_bar ...)
> > >  * at least one test fails with a fatal error
> > >  * make install fails
> > >
> > > Here are the details (probably best to update the wiki with status
> > > before people start working on these):
> > >
> > > I'm not sure what was happening with test_poplib.  I had to kill
> > > test_poplib due to taking all cpu without progress.  When I ran it by
> > > itself, it was fine.  So there was some bad interaction with another
> > > test.
> > >
> > > Ref leaks and fatal error (see
> > > http://docs.python.org/dev/3.0/results/make-test-refleak.out):
> > > test_array leaked [11, 11, 11] references, sum=33
> > > test_bytes leaked [4, 4, 4] references, sum=12
> > > test_codeccallbacks leaked [21, 21, 21] references, sum=63
> > > test_codecs leaked [260, 260, 260] references, sum=780
> > > test_ctypes leaked [10, 10, 10] references, sum=30
> > > Fatal Python error:
> > > /home/neal/python/py3k/Modules/datetimemodule.c:1175 object at
> > > 0xb60b19c8 has negative ref count -4
> > >
> > > There are probably more, but I haven't had a chance to run more after
> > > test_datetime.
> > >
> > > This failure occurred while running with -R:
> > >
> > > test test_coding failed -- Traceback (most recent call last):
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/test/test_coding.py",
> > > line 12, in test_bad_coding2
> > >     self.verify_bad_module(module_name)
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/test/test_coding.py",
> > > line 20, in verify_bad_module
> > >     text = fp.read()
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/io.py", line 1148, in read
> > >     res += decoder.decode(self.buffer.read(), True)
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/encodings/ascii.py",
> > > line 26, in decode
> > >     return codecs.ascii_decode(input, self.errors)[0]
> > > UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position
> > > 0: ordinal not in range(128)
> > >
> > >
> > > See http://docs.python.org/dev/3.0/results/make-install.out for this failure:
> > >
> > > Compiling /tmp/python-test-3.0/local/lib/python3.0/test/test_pep263.py ...
> > > Traceback (most recent call last):
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/compileall.py", line
> > > 162, in <module>
> > >     exit_status = int(not main())
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/compileall.py", line
> > > 152, in main
> > >     force, rx, quiet):
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/compileall.py", line
> > > 89, in compile_dir
> > >     if not compile_dir(fullname, maxlevels - 1, dfile, force, rx, quiet):
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/compileall.py", line
> > > 65, in compile_dir
> > >     ok = py_compile.compile(fullname, None, dfile, True)
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/py_compile.py", line
> > > 144, in compile
> > >     py_exc = PyCompileError(err.__class__,err.args,dfile or file)
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/py_compile.py", line
> > > 49, in __init__
> > >     tbtext = ''.join(traceback.format_exception_only(exc_type, exc_value))
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/traceback.py", line
> > > 179, in format_exception_only
> > >     filename = value.filename or "<string>"
> > > AttributeError: 'tuple' object has no attribute 'filename'
> > >
> > > I'm guessing this came from the change in exception args handling?
> > >
> > >   File "/tmp/python-test-3.0/local/lib/python3.0/py_compile.py", line
> > > 144, in compile
> > >     py_exc = PyCompileError(err.__class__,err.args,dfile or file)
> > >
> > > n
> > >
> >
>


-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list