diff options
author | Lars Gustäbel <lars@gustaebel.de> | 2011-02-23 11:42:22 +0000 |
---|---|---|
committer | Lars Gustäbel <lars@gustaebel.de> | 2011-02-23 11:42:22 +0000 |
commit | dd071045e776e1c3e8cf6750a2fd1d0958bf19b3 (patch) | |
tree | 3afb00727522ffb897602ec1ae5d2a9ccfd3dce4 /Python | |
parent | 3eeee833915b96a15c60eafc317bb6822af2084c (diff) | |
download | cpython-git-dd071045e776e1c3e8cf6750a2fd1d0958bf19b3.tar.gz |
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.
Diffstat (limited to 'Python')
0 files changed, 0 insertions, 0 deletions