Commit Graph

64 Commits

Author SHA1 Message Date
Miss Islington (bot) 9080824513
bpo-35017, socketserver: don't accept request after shutdown (GH-9952)
Prior to this revision, after the shutdown of a `BaseServer`,
the server accepted a last single request
if it was sent between the server socket polling
and the polling timeout.

This can be problematic for instance for a server restart
for which you do not want to interrupt the service,
by not closing the listening socket during the restart.
One request failed because of this behavior.

Note that only one request failed,
following requests were not accepted, as expected.
(cherry picked from commit 10cb3760e8)

Co-authored-by: Denis Ledoux <be.ledoux.denis@gmail.com>
2018-10-26 07:06:39 -07:00
Victor Stinner 29ae9dc7c3
bpo-33540: Fix socketserver.ThreadingMixIn if block_on_close=False (GH-7309)
socketserver.ThreadingMixIn no longer tracks active threads if
block_on_close is false.
2018-06-01 14:07:50 +02:00
Miss Islington (bot) fa286edbde
bpo-33540: Add block_on_close attr to socketserver (GH-6911)
Add a new block_on_close class attribute to ForkingMixIn and
ThreadingMixIn classes of socketserver to opt-in for pre-3.7 behaviour.
(cherry picked from commit 453bd0bc65)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
2018-05-23 18:34:43 -07:00
Victor Stinner b8f4163da3 bpo-31233: socketserver.ThreadingMixIn.server_close() (#3523)
socketserver.ThreadingMixIn now keeps a list of non-daemonic threads
to wait until all these threads complete in server_close().

Reenable test_logging skipped tests.

Fix SocketHandlerTest.tearDown(): close the socket handler before
stopping the server, so the server can join threads.
2017-09-13 01:47:22 -07:00
Antoine Pitrou a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Victor Stinner aa8ec34ad5 bpo-31151: Add socketserver.ForkingMixIn.server_close() (#3057)
* Add socketserver.ForkingMixIn.server_close()

bpo-31151: socketserver.ForkingMixIn.server_close() now waits until
all child processes completed to prevent leaking zombie processes.

* Fix test on Windows which doesn't have ForkingMixIn
2017-08-10 15:28:16 +02:00
Serhiy Storchaka 70d28a184c Remove unused imports. 2016-12-16 20:00:15 +02:00
Martin Panter 34eeed4290 Issue #26721: Change StreamRequestHandler.wfile to BufferedIOBase 2016-06-29 10:12:22 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) 1bb8109fe3 Reindent properly. 2016-06-03 00:16:02 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) cef1f83c71 Issue #25931: Don't defining socketserver.Forking* names on platforms such
as Windows that do not support os.fork().
2016-06-03 00:13:36 +00:00
Serhiy Storchaka b6a9c9761c Issue #26778: Fixed "a/an/and" typos in code comment, documentation and error
messages.
2016-04-17 09:39:28 +03:00
Serhiy Storchaka 6a7b3a77b4 Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
Martin Panter 0cab9c1eba Issue #26404: Add context manager to socketserver, by Aviv Palivoda 2016-04-13 00:36:52 +00:00
Martin Panter 510addf63f Issue #5824: Merge socketserver tests from 3.5 2016-02-24 06:14:15 +00:00
Martin Panter 1827eff030 Issue #5824: Fix DatagramRequestHandler tests by binding the client socket 2016-02-24 05:12:59 +00:00
Martin Panter d9108d1253 Issue #23430: Stop socketserver from catching SystemExit etc from handlers
Also make handle_error() consistently output to stderr, and fix the
documentation.
2016-02-21 08:49:56 +00:00
Martin Panter c12fef9aa3 Issue #26309: Shut down socketserver request if verify_request() is false
Patch by Aviv Palivoda.
2016-02-18 10:43:55 +00:00
Martin Panter 96a4f07107 Issues #26310, #26311: Fix typos in the documentation and code comments 2016-02-10 01:17:51 +00:00
Charles-François Natali 6e6c59b508 Issue #23285: PEP 475 -- Retry system calls failing with EINTR. 2015-02-07 13:27:50 +00:00
Berker Peksag 50457403f2 Issue #23358: Add missing BaseServer entry to socketserver.__all__.
Patch by Martin Panter.
2015-02-03 11:55:32 +02:00
Berker Peksag 3265344a85 Issue #23358: Add missing BaseServer entry to socketserver.__all__.
Patch by Martin Panter.
2015-02-03 11:55:09 +02:00
Berker Peksag 1ed2e69a4a Issue #22186: Fix typos in Lib/.
Patch by Févry Thibault.
2014-10-19 18:07:05 +03:00
Charles-François Natali acbf5235b8 Issue #22435: Fix a file descriptor leak when SocketServer bind fails. 2014-10-13 19:28:50 +01:00
Charles-François Natali 0f4f048fa5 Issue #22435: Fix a file descriptor leak when SocketServer bind fails. 2014-10-13 19:19:26 +01:00
Victor Stinner ae58649721 Issue #22043: time.monotonic() is now always available
threading.Lock.acquire(), threading.RLock.acquire() and socket operations now
use a monotonic clock, instead of the system clock, when a timeout is used.
2014-09-02 23:18:25 +02:00
Charles-François Natali af4db37f2a Issue #21491: socketserver: Fix a race condition in child processes reaping. 2014-06-20 22:49:26 +01:00
Charles-François Natali 504f5c36ef Issue #21491: socketserver: Fix a race condition in child processes reaping. 2014-06-20 22:37:35 +01:00
Charles-François Natali 1d29cc5b6c Issue #21040: socketserver: Use the selectors module. 2014-03-24 22:25:39 +00:00
Victor Stinner 7fa767e517 Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
Brett Cannon cd171c8e92 Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
Brett Cannon 0a140668fa Issue #18200: Update the stdlib (except tests) to use
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Kristján Valur Jónsson cacb400345 Merge with 3.3
Issue #14574: Ignore socket errors raised when flushing a connection on close.
2012-12-26 15:15:17 +00:00
Kristján Valur Jónsson c8e7e2bb76 Merge with 3.2 :
Issue #14574: Ignore socket errors raised when flushing a connection on close.
2012-12-26 15:13:29 +00:00
Kristján Valur Jónsson 36852b7844 Issue #14574: Ignore socket errors raised when flushing a connection on close. 2012-12-25 22:46:32 +00:00
Andrew Svetlov 0832af6628 Issue #16717: get rid of socket.error, replace with OSError 2012-12-18 23:10:48 +02:00
Andrew Svetlov ad28c7f9da Issue #16706: get rid of os.error 2012-12-18 22:02:39 +02:00
R David Murray 258fabefde #11109: clean up docs, add whatsnew entry, and fix Justin's last name. 2012-10-01 21:43:46 -04:00
Antoine Pitrou c0aa9eeb90 Fix the patch for issue #7978: select() raises select.error before 3.3, not OSError. 2012-04-09 01:37:19 +02:00
Antoine Pitrou c9e8e3c4dd Issue #7978: socketserver now restarts the select() call when EINTR is returned.
This avoids crashing the server loop when a signal is received.
Patch by Jerzy Kozera.
2012-04-09 00:49:17 +02:00
Antoine Pitrou b0a9c66a49 Issue #7978: socketserver now restarts the select() call when EINTR is returned.
This avoids crashing the server loop when a signal is received.
Patch by Jerzy Kozera.
2012-04-09 00:47:24 +02:00
Florent Xicluna 495dcbd5c1 Merge 3.2: issue #13140 2011-11-04 10:22:57 +01:00
Florent Xicluna 12b66b5217 Closes #13140: Fix the daemon_threads attribute of ThreadingMixIn. 2011-11-04 10:16:28 +01:00
Ezio Melotti f78869e47e #13289: fix typo. 2011-10-29 10:41:51 +03:00
Ezio Melotti 39be383406 #13289: merge with 3.2. 2011-10-29 10:44:59 +03:00
Senthil Kumaran 5e826e8a1b Fix closes issue #11109 - socketserver.ForkingMixIn leaves zombies, also fails to reap all zombies in one pass.
A new method called service_action is made available in BaseServer, called by
serve_forever loop. This useful in cases where Mixins can use it for cleanup
action. ForkingMixin class uses service_action to collect the zombie child
processes. Initial Patch by Justin Wark.
2011-05-26 00:22:59 +08:00
Benjamin Peterson e6a06217d2 merge 3.1 2011-05-24 12:51:24 -05:00
Benjamin Peterson f847393308 backout 8b384de4e780, so a proper fix can be considered (#5715) 2011-05-24 12:50:34 -05:00
Benjamin Peterson 48e21fc46f merge 3.1 2011-05-24 12:09:26 -05:00
Benjamin Peterson a7cdb0f218 generally, sockets should be closed after they're used 2011-05-24 12:06:31 -05:00
Charles-François Natali cf057597e6 Issue #5715: In socketserver, close the server socket in the child process. 2011-05-24 18:27:25 +02:00