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: wsgiref.util FileWrapper raises ValueError: I/O operation on closed file.
Type: Stage:
Components: Library (Lib) Versions: Python 3.6, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: pje, samwyse
Priority: normal Keywords:

Created on 2016-02-05 18:40 by samwyse, last changed 2022-04-11 14:58 by admin.

Files
File name Uploaded Description Edit
wsgitest.py samwyse, 2016-02-05 18:40 demonstrates the issue
Messages (1)
msg259685 - (view) Author: Samwyse (samwyse) * Date: 2016-02-05 18:40
While developing, I am using wsgiref.simple_server.  Using to serve static content isn't working.  The attached program demonstrates the issue.  Run it and connect to http://127.0.0.1:8000/.  You will see three buttons.  Clicking on 'wsgi.filewrapper' causes the FileWrapper class found in wsgiref.util to be used, while clicking on 'PEP 0333' uses code suggested in PEP 0333 (https://www.python.org/dev/peps/pep-0333/#id36).  Both of these fail.  Clicking on 'slurp' causes the entire file to loaded and returned in a list.  This works.

When an application returns an instance of environ['wsgi.file_wrapper'], or creates it's own iterator, an error is raised during the initial read of the file.  Reading the entire file and returning a single-element list (the 'slurp' technique) works, but is impractical for larger files.

I've tested this with both Python 2.7.9 and 3.4.3 under Windows 7 (my laptop) and 3.4.3 under Alpine Linux (a Docker instance).
History
Date User Action Args
2022-04-11 14:58:27adminsetgithub: 70487
2016-02-07 11:21:48SilentGhostsetnosy: + pje

versions: + Python 3.6, - Python 3.4
2016-02-05 18:40:05samwysecreate