Skip to content

Log port on failed bind? #471

Description

@jvanasco

It would be useful, at least to me, if waitress had some logging info here:

def bind(self, addr):
self.addr = addr
return self.socket.bind(addr)

A failed bind looks like this:

  File "/home/jvanasco/peter_sslers-virtualenv-3.10/lib/python3.10/site-packages/waitress/server.py", line 243, in __init__
    self.bind_server_socket()
  File "/home/jvanasco/peter_sslers-virtualenv-3.10/lib/python3.10/site-packages/waitress/server.py", line 364, in bind_server_socket
    self.bind(sockaddr)
  File "/home/jvanasco/peter_sslers-virtualenv-3.10/lib/python3.10/site-packages/waitress/wasyncore.py", line 374, in bind
    return self.socket.bind(addr)
OSError: [Errno 98] Address already in use

When dealing with deployments and testing, the port is likely buried in a config file. It would just be nice to have more info on that error flash in my face.

perhaps one of:

    def bind(self, addr):
        self.logger.log(logging.DEBUG, "Attempting to bind to %s" % addr)
        self.addr = addr
        return self.socket.bind(addr)
        
    def bind(self, addr):
        self.addr = addr
        try:
            return self.socket.bind(addr)
        except:
            self.logger.log(logging.CRITICAL, "Failed bind to %s" % addr)
            raise

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions