]> granicus.if.org Git - python/commit
Merged revisions 88528 via svnmerge from
authorLars Gustäbel <lars@gustaebel.de>
Wed, 23 Feb 2011 11:52:31 +0000 (11:52 +0000)
committerLars Gustäbel <lars@gustaebel.de>
Wed, 23 Feb 2011 11:52:31 +0000 (11:52 +0000)
commit9f6cbe09cc88be914600306b34ac3d0025738465
tree1a3d0213901d0c3d7d453661831f151e0b64be56
parentdcb29c93d23112eef7f37b284a04db5f4b223787
Merged revisions 88528 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88528 | lars.gustaebel | 2011-02-23 12:42:22 +0100 (Wed, 23 Feb 2011) | 16 lines

  Issue #11224: Improved sparse file read support (r85916) introduced a
  regression in _FileInFile which is used in file-like objects returned
  by TarFile.extractfile(). The inefficient design of the
  _FileInFile.read() method causes various dramatic side-effects and
  errors:

    - The data segment of a file member is read completely into memory
      every(!) time a small block is accessed. This is not only slow
      but may cause unexpected MemoryErrors with very large files.
    - Reading members from compressed tar archives is even slower
      because of the excessive backwards seeking which is done when the
      same data segment is read over and over again.
    - As a backwards seek on a TarFile opened in stream mode is not
      possible, using extractfile() fails with a StreamError.
........
Lib/tarfile.py
Lib/test/test_tarfile.py
Misc/NEWS