This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: tarfile doesn't detect disk full error on extraction
Type: behavior Stage:
Components: Library (Lib) Versions: Python 2.6
process
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: lars.gustaebel Nosy List: eliv, lars.gustaebel
Priority: normal Keywords:

Created on 2009-11-19 15:21 by eliv, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (4)
msg95481 - (view) Author: Eli Venter (eliv) Date: 2009-11-19 15:21
tarfile doesn't seem to return any error or raise any exception when an
extraction fills up the disk, making it hard to use safely. Both
extractall and extract suffer from this problem. I'm using CentOS 5.2
and python 2.6.2.
msg95489 - (view) Author: Lars Gustäbel (lars.gustaebel) * (Python committer) Date: 2009-11-19 16:27
The TarFile constructor (as well as tarfile.open) takes an errorlevel
keyword argument. See
http://docs.python.org/dev/library/tarfile.html#tarfile-objects

I quote: "If errorlevel is 0, all errors are ignored when using
TarFile.extract(). Nevertheless, they appear as error messages in the
debug output, when debugging is enabled. If 1, all fatal errors are
raised as OSError or IOError exceptions. If 2, all non-fatal errors are
raised as TarError exceptions as well."

Hope that helps.
msg95550 - (view) Author: Eli Venter (eliv) Date: 2009-11-20 14:45
Yes, thanks errorlevel works as expected, and errors are correctly
generated. It's quite unintuitive to ignore fatal errors by default
however.
msg96330 - (view) Author: Lars Gustäbel (lars.gustaebel) * (Python committer) Date: 2009-12-13 11:50
I changed the default value for the errorlevel argument, so that fatal
errors are now raised as regular exceptions by default (trunk: r76780,
py3k: r76782). Thank you very much for bringing up this issue.
History
Date User Action Args
2022-04-11 14:56:54adminsetgithub: 51606
2009-12-13 11:50:06lars.gustaebelsetstatus: open -> closed
type: behavior
resolution: accepted
messages: + msg96330
2009-11-20 14:45:32elivsetmessages: + msg95550
2009-11-19 16:27:09lars.gustaebelsetassignee: lars.gustaebel

messages: + msg95489
nosy: + lars.gustaebel
2009-11-19 15:21:20elivcreate