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: CGIHTTPServer poisons os.environ
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: orsenthil Nosy List: eric.smith, georg.brandl, orsenthil, r.david.murray, techtonik
Priority: normal Keywords: patch

Created on 2010-07-16 08:49 by techtonik, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
9272.CGIHTTPServer-poisons-os.environ.patch techtonik, 2010-07-16 08:54
9272.CGIHTTPServer-poisons-os.environ.patch techtonik, 2010-07-21 07:16 with test
Messages (12)
msg110418 - (view) Author: anatoly techtonik (techtonik) Date: 2010-07-16 08:49
When CGIHTTPServer prepares to start child CGI program it modifies global os.environ. This implicitly changes parents application state if it also relies on some of CGI environment variables.
msg110439 - (view) Author: anatoly techtonik (techtonik) Date: 2010-07-16 13:49
Patch queue with other minor fixes you may consider useful http://bitbucket.org/techtonik/http.server-patches/qseries
msg110450 - (view) Author: Eric V. Smith (eric.smith) * (Python committer) Date: 2010-07-16 14:59
The change looks reasonable to me. It needs a test.
msg110545 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-07-17 09:10
I don't think a deepcopy of the environment is necessary here.  environ.copy() is just fine.  Other than that, I agree with Eric.
msg111012 - (view) Author: anatoly techtonik (techtonik) Date: 2010-07-21 06:51
The test is hard to write. The server is launched in a separate thread. Any ideas how to check os.environ there?
msg111016 - (view) Author: anatoly techtonik (techtonik) Date: 2010-07-21 07:16
Ok. os.environ seems to be shared between threads. Here is updated patch.
msg111019 - (view) Author: Senthil Kumaran (orsenthil) * (Python committer) Date: 2010-07-21 08:23
The patch and the tests look good. I could verify it too. I shall commit it.
msg116974 - (view) Author: anatoly techtonik (techtonik) Date: 2010-09-20 21:19
So..
msg117209 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-09-23 17:27
Anatoly, last we heard you did not wish to sign the contributor agreement and so were not submitting patches.  We are respecting your wishes by not applying this.  Have you changed your mind?
msg117215 - (view) Author: anatoly techtonik (techtonik) Date: 2010-09-23 18:27
I still haven't received answers on the licensing questions in developer's mailing list. After the amount of negative feedback received I decided not to continue. But I am still interested in constructive discussion to get satisfying and full answers to the questions I've asked. You should understand that I can not sign agreements which terms are not clear to me, or if I think that other party fails to fulfill the conditions.

I see the contributor's agreement text is changed again, but there is no history of changes, and no electronic signature, and looking through the text I still can't find it to be clear.

As for this patch - I hereby release it into public domain, or if copyright law in your country doesn't allow that - I hereby grant you the right to use it on the terms of ISC license or WTFP license.

If you still can't use the patch and can't explain me why the paragraph above is not enough, it is still possible to resolve the situation if you have some contacts at Google. I can submit my patch to Google and they'll send it to you. This will work, because I've signed http://code.google.com/legal/individual-cla-v1.0.html But this won't work if they didn't sign your form, of course.


P.S. I want to see Python more open for contributions as well as you, but with more attention to details.
msg117217 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-09-23 18:46
ISTM that the attached patch is trivial enough not to require any contributor agreement or copyright assignment, at least if we change "Ma Test CGI Server v1.0" to something neutral.
msg117921 - (view) Author: Senthil Kumaran (orsenthil) * (Python committer) Date: 2010-10-03 18:19
Fix committed in revision 85202 (py3k), r85203 (release31-maint), r85204(release27-maint). I had change the patch to use copy.deepcopy instead of os.environ.copy() because for the purposes of test os.environ was masked with EnvironmentGuard which does not have copy method.

Thanks for the patch.
History
Date User Action Args
2022-04-11 14:57:03adminsetgithub: 53518
2010-10-03 18:19:02orsenthilsetstatus: open -> closed
resolution: accepted -> fixed
messages: + msg117921

stage: patch review -> resolved
2010-09-23 18:46:46georg.brandlsetmessages: + msg117217
2010-09-23 18:27:51techtoniksetmessages: + msg117215
2010-09-23 17:27:42r.david.murraysetmessages: + msg117209
2010-09-20 21:19:45techtoniksetmessages: + msg116974
2010-09-20 21:02:45eric.araujosetstage: test needed -> patch review
versions: - Python 2.6
2010-07-31 19:10:34georg.brandllinkissue1711605 superseder
2010-07-21 08:23:26orsenthilsetassignee: orsenthil
resolution: accepted
messages: + msg111019
2010-07-21 07:16:35techtoniksetfiles: + 9272.CGIHTTPServer-poisons-os.environ.patch

messages: + msg111016
2010-07-21 06:51:05techtoniksetmessages: + msg111012
2010-07-17 09:10:55georg.brandlsetnosy: + georg.brandl
messages: + msg110545
2010-07-16 14:59:04eric.smithsetnosy: + eric.smith

messages: + msg110450
stage: test needed
2010-07-16 13:49:06techtoniksetmessages: + msg110439
2010-07-16 13:34:16r.david.murraysetnosy: + r.david.murray, orsenthil

type: behavior
components: + Library (Lib)
versions: + Python 3.1
2010-07-16 08:54:59techtoniksetfiles: + 9272.CGIHTTPServer-poisons-os.environ.patch
keywords: + patch
2010-07-16 08:49:47techtonikcreate