msg256896 - (view) |
Author: Sam Lobel (Sam Lobel) |
Date: 2015-12-23 03:10 |
I ran into this bug while using multiprocessing in Flask, which deep down uses the SocketServer.py module. There's a call to os.fork() in the windows version , which obviously doesn't work. So SocketServer.py can't be used on windows. Maybe replace it with something from the multiprocessing module? |
|
|
msg256898 - (view) |
Author: Eryk Sun (eryksun) *  |
Date: 2015-12-23 03:40 |
Starting a Windows process is expensive. Who not use threading, e.g. SocketServer.ThreadingTCPServer? It seems to me that it's a bug to even define ForkingMixIn, ForkingTCPServer, and ForkingUDPServer on Windows. Those should be conditionally defined depending on the existence of os.fork. |
|
|
msg266845 - (view) |
Author: R. David Murray (r.david.murray) *  |
Date: 2016-06-01 23:44 |
They aren't currently defined conditionally, though, and haven't ever been, so I'm not sure it is worth chaning that. However, we should probably add an 'availability' line, since they aren't (effectively) available on Windows. |
|
|
msg266999 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2016-06-03 00:16 |
New changeset d772400a1211 by Gregory P. Smith in branch 'default': Issue #25931: Don't defining socketserver.Forking* names on platforms such https://hg.python.org/cpython/rev/d772400a1211 |
|
|
msg267001 - (view) |
Author: Gregory P. Smith (gregory.p.smith) *  |
Date: 2016-06-03 00:19 |
I made the change to not export the Forking names on Windows or other non-os.fork() supporting platforms in 3.6 only as it is arguably an API change, even though the names it removes would effectively be unusable on those platforms anyways. the docs still need updating. |
|
|
msg267005 - (view) |
Author: R. David Murray (r.david.murray) *  |
Date: 2016-06-03 00:23 |
Your news entry says "don't defining". The doc note can say that the classes are only defined if the platform supports fork. |
|
|
msg267006 - (view) |
Author: R. David Murray (r.david.murray) *  |
Date: 2016-06-03 00:24 |
Well, defined for 3.6, and "functional" for 2.7 and 3.5 docs. |
|
|
msg267029 - (view) |
Author: Martin Panter (martin.panter) *  |
Date: 2016-06-03 03:03 |
This broke test_socketserver: http://buildbot.python.org/all/builders/AMD64%20Windows7%20SP1%203.x/builds/7709/steps/test/logs/stdio 0:08:57 [193/400/1] test_socketserver failed test test_socketserver crashed -- Traceback (most recent call last): File "C:\buildbot.python.org\3.x.kloth-win64\build\lib\test\test_socketserver.py", line 371, in class ForkingErrorTestServer(socketserver.ForkingMixIn, BaseErrorTestServer): AttributeError: module 'socketserver' has no attribute 'ForkingMixIn' I am with David that it may not be worthwhile churning the API like this. Just document the existing (in 3.5) status that even though the classes exist, they need a working os.fork(). Otherwise, everyone that references ForkingMixIn but doesn’t use it (like test_socketserver) will have to update their code for 3.6. |
|
|
msg267042 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2016-06-03 05:26 |
New changeset 3145242bc81f by Gregory P. Smith in branch 'default': Issue25931: fix tests broken by the conditional define of socketserver.Forking* https://hg.python.org/cpython/rev/3145242bc81f |
|
|
msg267045 - (view) |
Author: Gregory P. Smith (gregory.p.smith) *  |
Date: 2016-06-03 05:37 |
It may be worth rolling back the above two commits. I'm not sure. I'd like to see if anything else falls out of this during the beta phases. There is a chance that some library has code similar to that found in test_socketserver.py that defines classes that inherit from the Forking type(s) but which are conditionally never used on Windows. The above commit would break that. I'm not sure how common that'll be. |
|
|
msg267048 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2016-06-03 05:45 |
New changeset 015b86646d8e by Gregory P. Smith in branch 'default': : document that socketserver.Forking* are unavailable on platforms https://hg.python.org/cpython/rev/015b86646d8e |
|
|
msg267049 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2016-06-03 05:48 |
New changeset a4c0208b10df by Gregory P. Smith in branch '2.7': : document that socketserver.Forking* are unavailable on platforms https://hg.python.org/cpython/rev/a4c0208b10df |
|
|