Skip to content

Commit

Permalink
Merge pull request #399 from Pylons/bugfix/move-socket-options-settin…
Browse files Browse the repository at this point in the history
…g-into-try-except

Setting socket options may fail if remote has already disappeared
  • Loading branch information
digitalresistor committed Jan 23, 2023
2 parents 1b36401 + 5903d58 commit c00713b
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/waitress/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,15 +305,19 @@ def handle_accept(self):
if v is None:
return
conn, addr = v
self.set_socket_options(conn)
except OSError:
# Linux: On rare occasions we get a bogus socket back from
# accept. socketmodule.c:makesockaddr complains that the
# address family is unknown. We don't want the whole server
# to shut down because of this.
# macOS: On occasions when the remote has already closed the socket
# before we got around to accepting it, when we try to set the
# socket options it will fail. So instead just we log the error and
# continue
if self.adj.log_socket_errors:
self.logger.warning("server accept() threw an exception", exc_info=True)
return
self.set_socket_options(conn)
addr = self.fix_addr(addr)
self.channel_class(self, conn, addr, self.adj, map=self._map)

Expand Down

0 comments on commit c00713b

Please # to comment.