We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Upgrading to 19.7.0 means can't bind anymore
Upgraded to latest gunicorn and could not bind ip address anymore (simple wsgi app, ipv4 or ipv6 same story).

```
foo@xxx:~$ cd current
foo@xxx:~/current$ . env/bin/activate
foo@xxx:~/current$ gunicorn my.wsgi.package
[2017-03-10 18:50:46 +0000] [9242] [INFO] Starting gunicorn 19.7.0
[2017-03-10 18:50:46 +0000] [9242] [ERROR] Retrying in 1 second.
[2017-03-10 18:50:47 +0000] [9242] [ERROR] Retrying in 1 second.
[2017-03-10 18:50:48 +0000] [9242] [ERROR] Retrying in 1 second.
[2017-03-10 18:50:49 +0000] [9242] [ERROR] Retrying in 1 second.
[2017-03-10 18:50:50 +0000] [9242] [ERROR] Retrying in 1 second.
[2017-03-10 18:50:51 +0000] [9242] [ERROR] Can't connect to ('127.0.0.1', 8000)
```

Reverting to 19.6.0 fixes the problem.

System version : Linux xxx 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux

Let me know if I can provide more info, 19.6.0 is acceptable solution for me but I guess that's a regression you wanna at least understand ?

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `gunicorn/sock.py`
Content:
```
1 # -*- coding: utf-8 -
2 #
3 # This file is part of gunicorn released under the MIT license.
4 # See the NOTICE for more information.
5 
6 import errno
7 import os
8 import socket
9 import stat
10 import sys
11 import time
12 
13 from gunicorn import util
14 from gunicorn.six import string_types
15 
16 
17 class BaseSocket(object):
18 
19     def __init__(self, address, conf, log, fd=None):
20         self.log = log
21         self.conf = conf
22 
23         self.cfg_addr = address
24         if fd is None:
25             sock = socket.socket(self.FAMILY, socket.SOCK_STREAM)
26             bound = False
27         else:
28             sock = socket.fromfd(fd, self.FAMILY, socket.SOCK_STREAM)
29             os.close(fd)
30             bound = True
31 
32         self.sock = self.set_options(sock, bound=bound)
33 
34     def __str__(self, name):
35         return "<socket %d>" % self.sock.fileno()
36 
37     def __getattr__(self, name):
38         return getattr(self.sock, name)
39 
40     def set_options(self, sock, bound=False):
41         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
42         if hasattr(socket, 'SO_REUSEPORT'):
43             sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
44         if not bound:
45             self.bind(sock)
46         sock.setblocking(0)
47 
48         # make sure that the socket can be inherited
49         if hasattr(sock, "set_inheritable"):
50             sock.set_inheritable(True)
51 
52         sock.listen(self.conf.backlog)
53         return sock
54 
55     def bind(self, sock):
56         sock.bind(self.cfg_addr)
57 
58     def close(self):
59         if self.sock is None:
60             return
61 
62         try:
63             self.sock.close()
64         except socket.error as e:
65             self.log.info("Error while closing socket %s", str(e))
66 
67         self.sock = None
68 
69 
70 class TCPSocket(BaseSocket):
71 
72     FAMILY = socket.AF_INET
73 
74     def __str__(self):
75         if self.conf.is_ssl:
76             scheme = "https"
77         else:
78             scheme = "http"
79 
80         addr = self.sock.getsockname()
81         return "%s://%s:%d" % (scheme, addr[0], addr[1])
82 
83     def set_options(self, sock, bound=False):
84         sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
85         return super(TCPSocket, self).set_options(sock, bound=bound)
86 
87 
88 class TCP6Socket(TCPSocket):
89 
90     FAMILY = socket.AF_INET6
91 
92     def __str__(self):
93         (host, port, fl, sc) = self.sock.getsockname()
94         return "http://[%s]:%d" % (host, port)
95 
96 
97 class UnixSocket(BaseSocket):
98 
99     FAMILY = socket.AF_UNIX
100 
101     def __init__(self, addr, conf, log, fd=None):
102         if fd is None:
103             try:
104                 st = os.stat(addr)
105             except OSError as e:
106                 if e.args[0] != errno.ENOENT:
107                     raise
108             else:
109                 if stat.S_ISSOCK(st.st_mode):
110                     os.remove(addr)
111                 else:
112                     raise ValueError("%r is not a socket" % addr)
113         super(UnixSocket, self).__init__(addr, conf, log, fd=fd)
114 
115     def __str__(self):
116         return "unix:%s" % self.cfg_addr
117 
118     def bind(self, sock):
119         old_umask = os.umask(self.conf.umask)
120         sock.bind(self.cfg_addr)
121         util.chown(self.cfg_addr, self.conf.uid, self.conf.gid)
122         os.umask(old_umask)
123 
124 
125 def _sock_type(addr):
126     if isinstance(addr, tuple):
127         if util.is_ipv6(addr[0]):
128             sock_type = TCP6Socket
129         else:
130             sock_type = TCPSocket
131     elif isinstance(addr, string_types):
132         sock_type = UnixSocket
133     else:
134         raise TypeError("Unable to create socket from: %r" % addr)
135     return sock_type
136 
137 
138 def create_sockets(conf, log, fds=None):
139     """
140     Create a new socket for the configured addresses or file descriptors.
141 
142     If a configured address is a tuple then a TCP socket is created.
143     If it is a string, a Unix socket is created. Otherwise, a TypeError is
144     raised.
145     """
146     listeners = []
147 
148     # get it only once
149     laddr = conf.address
150 
151     # check ssl config early to raise the error on startup
152     # only the certfile is needed since it can contains the keyfile
153     if conf.certfile and not os.path.exists(conf.certfile):
154         raise ValueError('certfile "%s" does not exist' % conf.certfile)
155 
156     if conf.keyfile and not os.path.exists(conf.keyfile):
157         raise ValueError('keyfile "%s" does not exist' % conf.keyfile)
158 
159     # sockets are already bound
160     if fds is not None:
161         for fd in fds:
162             sock = socket.fromfd(fd, socket.AF_UNIX, socket.SOCK_STREAM)
163             sock_name = sock.getsockname()
164             sock_type = _sock_type(sock_name)
165             listener = sock_type(sock_name, conf, log, fd=fd)
166             listeners.append(listener)
167 
168         return listeners
169 
170     # no sockets is bound, first initialization of gunicorn in this env.
171     for addr in laddr:
172         sock_type = _sock_type(addr)
173         sock = None
174         for i in range(5):
175             try:
176                 sock = sock_type(addr, conf, log)
177             except socket.error as e:
178                 if e.args[0] == errno.EADDRINUSE:
179                     log.error("Connection in use: %s", str(addr))
180                 if e.args[0] == errno.EADDRNOTAVAIL:
181                     log.error("Invalid address: %s", str(addr))
182                 if i < 5:
183                     msg = "connection to {addr} failed: {error}"
184                     log.debug(msg.format(addr=str(addr), error=str(e)))
185                     log.error("Retrying in 1 second.")
186                     time.sleep(1)
187             else:
188                 break
189 
190         if sock is None:
191             log.error("Can't connect to %s", str(addr))
192             sys.exit(1)
193 
194         listeners.append(sock)
195 
196     return listeners
197 
198 
199 def close_sockets(listeners, unlink=True):
200     for sock in listeners:
201         sock_name = sock.getsockname()
202         sock.close()
203         if unlink and _sock_type(sock_name) is UnixSocket:
204             os.unlink(sock_name)
205
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/gunicorn/sock.py b/gunicorn/sock.py
--- a/gunicorn/sock.py
+++ b/gunicorn/sock.py
@@ -39,8 +39,12 @@
 
     def set_options(self, sock, bound=False):
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
-        if hasattr(socket, 'SO_REUSEPORT'):
-            sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
+        if hasattr(socket, 'SO_REUSEPORT'):  # pragma: no cover
+            try:
+                sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
+            except socket.error as err:
+                if err[0] not in (errno.ENOPROTOOPT, errno.EINVAL):
+                    raise
         if not bound:
             self.bind(sock)
         sock.setblocking(0)

{"golden_diff": "diff --git a/gunicorn/sock.py b/gunicorn/sock.py\n--- a/gunicorn/sock.py\n+++ b/gunicorn/sock.py\n@@ -39,8 +39,12 @@\n \n     def set_options(self, sock, bound=False):\n         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n-        if hasattr(socket, 'SO_REUSEPORT'):\n-            sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)\n+        if hasattr(socket, 'SO_REUSEPORT'):  # pragma: no cover\n+            try:\n+                sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)\n+            except socket.error as err:\n+                if err[0] not in (errno.ENOPROTOOPT, errno.EINVAL):\n+                    raise\n         if not bound:\n             self.bind(sock)\n         sock.setblocking(0)\n", "issue": "Upgrading to 19.7.0 means can't bind anymore\nUpgraded to latest gunicorn and could not bind ip address anymore (simple wsgi app, ipv4 or ipv6 same story).\r\n\r\n```\r\nfoo@xxx:~$ cd current\r\nfoo@xxx:~/current$ . env/bin/activate\r\nfoo@xxx:~/current$ gunicorn my.wsgi.package\r\n[2017-03-10 18:50:46 +0000] [9242] [INFO] Starting gunicorn 19.7.0\r\n[2017-03-10 18:50:46 +0000] [9242] [ERROR] Retrying in 1 second.\r\n[2017-03-10 18:50:47 +0000] [9242] [ERROR] Retrying in 1 second.\r\n[2017-03-10 18:50:48 +0000] [9242] [ERROR] Retrying in 1 second.\r\n[2017-03-10 18:50:49 +0000] [9242] [ERROR] Retrying in 1 second.\r\n[2017-03-10 18:50:50 +0000] [9242] [ERROR] Retrying in 1 second.\r\n[2017-03-10 18:50:51 +0000] [9242] [ERROR] Can't connect to ('127.0.0.1', 8000)\r\n```\r\n\r\nReverting to 19.6.0 fixes the problem.\r\n\r\nSystem version : Linux xxx 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux\r\n\r\nLet me know if I can provide more info, 19.6.0 is acceptable solution for me but I guess that's a regression you wanna at least understand ?\n", "before_files": [{"content": "# -*- coding: utf-8 -\n#\n# This file is part of gunicorn released under the MIT license.\n# See the NOTICE for more information.\n\nimport errno\nimport os\nimport socket\nimport stat\nimport sys\nimport time\n\nfrom gunicorn import util\nfrom gunicorn.six import string_types\n\n\nclass BaseSocket(object):\n\n    def __init__(self, address, conf, log, fd=None):\n        self.log = log\n        self.conf = conf\n\n        self.cfg_addr = address\n        if fd is None:\n            sock = socket.socket(self.FAMILY, socket.SOCK_STREAM)\n            bound = False\n        else:\n            sock = socket.fromfd(fd, self.FAMILY, socket.SOCK_STREAM)\n            os.close(fd)\n            bound = True\n\n        self.sock = self.set_options(sock, bound=bound)\n\n    def __str__(self, name):\n        return \"<socket %d>\" % self.sock.fileno()\n\n    def __getattr__(self, name):\n        return getattr(self.sock, name)\n\n    def set_options(self, sock, bound=False):\n        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n        if hasattr(socket, 'SO_REUSEPORT'):\n            sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)\n        if not bound:\n            self.bind(sock)\n        sock.setblocking(0)\n\n        # make sure that the socket can be inherited\n        if hasattr(sock, \"set_inheritable\"):\n            sock.set_inheritable(True)\n\n        sock.listen(self.conf.backlog)\n        return sock\n\n    def bind(self, sock):\n        sock.bind(self.cfg_addr)\n\n    def close(self):\n        if self.sock is None:\n            return\n\n        try:\n            self.sock.close()\n        except socket.error as e:\n            self.log.info(\"Error while closing socket %s\", str(e))\n\n        self.sock = None\n\n\nclass TCPSocket(BaseSocket):\n\n    FAMILY = socket.AF_INET\n\n    def __str__(self):\n        if self.conf.is_ssl:\n            scheme = \"https\"\n        else:\n            scheme = \"http\"\n\n        addr = self.sock.getsockname()\n        return \"%s://%s:%d\" % (scheme, addr[0], addr[1])\n\n    def set_options(self, sock, bound=False):\n        sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)\n        return super(TCPSocket, self).set_options(sock, bound=bound)\n\n\nclass TCP6Socket(TCPSocket):\n\n    FAMILY = socket.AF_INET6\n\n    def __str__(self):\n        (host, port, fl, sc) = self.sock.getsockname()\n        return \"http://[%s]:%d\" % (host, port)\n\n\nclass UnixSocket(BaseSocket):\n\n    FAMILY = socket.AF_UNIX\n\n    def __init__(self, addr, conf, log, fd=None):\n        if fd is None:\n            try:\n                st = os.stat(addr)\n            except OSError as e:\n                if e.args[0] != errno.ENOENT:\n                    raise\n            else:\n                if stat.S_ISSOCK(st.st_mode):\n                    os.remove(addr)\n                else:\n                    raise ValueError(\"%r is not a socket\" % addr)\n        super(UnixSocket, self).__init__(addr, conf, log, fd=fd)\n\n    def __str__(self):\n        return \"unix:%s\" % self.cfg_addr\n\n    def bind(self, sock):\n        old_umask = os.umask(self.conf.umask)\n        sock.bind(self.cfg_addr)\n        util.chown(self.cfg_addr, self.conf.uid, self.conf.gid)\n        os.umask(old_umask)\n\n\ndef _sock_type(addr):\n    if isinstance(addr, tuple):\n        if util.is_ipv6(addr[0]):\n            sock_type = TCP6Socket\n        else:\n            sock_type = TCPSocket\n    elif isinstance(addr, string_types):\n        sock_type = UnixSocket\n    else:\n        raise TypeError(\"Unable to create socket from: %r\" % addr)\n    return sock_type\n\n\ndef create_sockets(conf, log, fds=None):\n    \"\"\"\n    Create a new socket for the configured addresses or file descriptors.\n\n    If a configured address is a tuple then a TCP socket is created.\n    If it is a string, a Unix socket is created. Otherwise, a TypeError is\n    raised.\n    \"\"\"\n    listeners = []\n\n    # get it only once\n    laddr = conf.address\n\n    # check ssl config early to raise the error on startup\n    # only the certfile is needed since it can contains the keyfile\n    if conf.certfile and not os.path.exists(conf.certfile):\n        raise ValueError('certfile \"%s\" does not exist' % conf.certfile)\n\n    if conf.keyfile and not os.path.exists(conf.keyfile):\n        raise ValueError('keyfile \"%s\" does not exist' % conf.keyfile)\n\n    # sockets are already bound\n    if fds is not None:\n        for fd in fds:\n            sock = socket.fromfd(fd, socket.AF_UNIX, socket.SOCK_STREAM)\n            sock_name = sock.getsockname()\n            sock_type = _sock_type(sock_name)\n            listener = sock_type(sock_name, conf, log, fd=fd)\n            listeners.append(listener)\n\n        return listeners\n\n    # no sockets is bound, first initialization of gunicorn in this env.\n    for addr in laddr:\n        sock_type = _sock_type(addr)\n        sock = None\n        for i in range(5):\n            try:\n                sock = sock_type(addr, conf, log)\n            except socket.error as e:\n                if e.args[0] == errno.EADDRINUSE:\n                    log.error(\"Connection in use: %s\", str(addr))\n                if e.args[0] == errno.EADDRNOTAVAIL:\n                    log.error(\"Invalid address: %s\", str(addr))\n                if i < 5:\n                    msg = \"connection to {addr} failed: {error}\"\n                    log.debug(msg.format(addr=str(addr), error=str(e)))\n                    log.error(\"Retrying in 1 second.\")\n                    time.sleep(1)\n            else:\n                break\n\n        if sock is None:\n            log.error(\"Can't connect to %s\", str(addr))\n            sys.exit(1)\n\n        listeners.append(sock)\n\n    return listeners\n\n\ndef close_sockets(listeners, unlink=True):\n    for sock in listeners:\n        sock_name = sock.getsockname()\n        sock.close()\n        if unlink and _sock_type(sock_name) is UnixSocket:\n            os.unlink(sock_name)\n", "path": "gunicorn/sock.py"}], "after_files": [{"content": "# -*- coding: utf-8 -\n#\n# This file is part of gunicorn released under the MIT license.\n# See the NOTICE for more information.\n\nimport errno\nimport os\nimport socket\nimport stat\nimport sys\nimport time\n\nfrom gunicorn import util\nfrom gunicorn.six import string_types\n\n\nclass BaseSocket(object):\n\n    def __init__(self, address, conf, log, fd=None):\n        self.log = log\n        self.conf = conf\n\n        self.cfg_addr = address\n        if fd is None:\n            sock = socket.socket(self.FAMILY, socket.SOCK_STREAM)\n            bound = False\n        else:\n            sock = socket.fromfd(fd, self.FAMILY, socket.SOCK_STREAM)\n            os.close(fd)\n            bound = True\n\n        self.sock = self.set_options(sock, bound=bound)\n\n    def __str__(self, name):\n        return \"<socket %d>\" % self.sock.fileno()\n\n    def __getattr__(self, name):\n        return getattr(self.sock, name)\n\n    def set_options(self, sock, bound=False):\n        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n        if hasattr(socket, 'SO_REUSEPORT'):  # pragma: no cover\n            try:\n                sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)\n            except socket.error as err:\n                if err[0] not in (errno.ENOPROTOOPT, errno.EINVAL):\n                    raise\n        if not bound:\n            self.bind(sock)\n        sock.setblocking(0)\n\n        # make sure that the socket can be inherited\n        if hasattr(sock, \"set_inheritable\"):\n            sock.set_inheritable(True)\n\n        sock.listen(self.conf.backlog)\n        return sock\n\n    def bind(self, sock):\n        sock.bind(self.cfg_addr)\n\n    def close(self):\n        if self.sock is None:\n            return\n\n        try:\n            self.sock.close()\n        except socket.error as e:\n            self.log.info(\"Error while closing socket %s\", str(e))\n\n        self.sock = None\n\n\nclass TCPSocket(BaseSocket):\n\n    FAMILY = socket.AF_INET\n\n    def __str__(self):\n        if self.conf.is_ssl:\n            scheme = \"https\"\n        else:\n            scheme = \"http\"\n\n        addr = self.sock.getsockname()\n        return \"%s://%s:%d\" % (scheme, addr[0], addr[1])\n\n    def set_options(self, sock, bound=False):\n        sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)\n        return super(TCPSocket, self).set_options(sock, bound=bound)\n\n\nclass TCP6Socket(TCPSocket):\n\n    FAMILY = socket.AF_INET6\n\n    def __str__(self):\n        (host, port, fl, sc) = self.sock.getsockname()\n        return \"http://[%s]:%d\" % (host, port)\n\n\nclass UnixSocket(BaseSocket):\n\n    FAMILY = socket.AF_UNIX\n\n    def __init__(self, addr, conf, log, fd=None):\n        if fd is None:\n            try:\n                st = os.stat(addr)\n            except OSError as e:\n                if e.args[0] != errno.ENOENT:\n                    raise\n            else:\n                if stat.S_ISSOCK(st.st_mode):\n                    os.remove(addr)\n                else:\n                    raise ValueError(\"%r is not a socket\" % addr)\n        super(UnixSocket, self).__init__(addr, conf, log, fd=fd)\n\n    def __str__(self):\n        return \"unix:%s\" % self.cfg_addr\n\n    def bind(self, sock):\n        old_umask = os.umask(self.conf.umask)\n        sock.bind(self.cfg_addr)\n        util.chown(self.cfg_addr, self.conf.uid, self.conf.gid)\n        os.umask(old_umask)\n\n\ndef _sock_type(addr):\n    if isinstance(addr, tuple):\n        if util.is_ipv6(addr[0]):\n            sock_type = TCP6Socket\n        else:\n            sock_type = TCPSocket\n    elif isinstance(addr, string_types):\n        sock_type = UnixSocket\n    else:\n        raise TypeError(\"Unable to create socket from: %r\" % addr)\n    return sock_type\n\n\ndef create_sockets(conf, log, fds=None):\n    \"\"\"\n    Create a new socket for the configured addresses or file descriptors.\n\n    If a configured address is a tuple then a TCP socket is created.\n    If it is a string, a Unix socket is created. Otherwise, a TypeError is\n    raised.\n    \"\"\"\n    listeners = []\n\n    # get it only once\n    laddr = conf.address\n\n    # check ssl config early to raise the error on startup\n    # only the certfile is needed since it can contains the keyfile\n    if conf.certfile and not os.path.exists(conf.certfile):\n        raise ValueError('certfile \"%s\" does not exist' % conf.certfile)\n\n    if conf.keyfile and not os.path.exists(conf.keyfile):\n        raise ValueError('keyfile \"%s\" does not exist' % conf.keyfile)\n\n    # sockets are already bound\n    if fds is not None:\n        for fd in fds:\n            sock = socket.fromfd(fd, socket.AF_UNIX, socket.SOCK_STREAM)\n            sock_name = sock.getsockname()\n            sock_type = _sock_type(sock_name)\n            listener = sock_type(sock_name, conf, log, fd=fd)\n            listeners.append(listener)\n\n        return listeners\n\n    # no sockets is bound, first initialization of gunicorn in this env.\n    for addr in laddr:\n        sock_type = _sock_type(addr)\n        sock = None\n        for i in range(5):\n            try:\n                sock = sock_type(addr, conf, log)\n            except socket.error as e:\n                if e.args[0] == errno.EADDRINUSE:\n                    log.error(\"Connection in use: %s\", str(addr))\n                if e.args[0] == errno.EADDRNOTAVAIL:\n                    log.error(\"Invalid address: %s\", str(addr))\n                if i < 5:\n                    msg = \"connection to {addr} failed: {error}\"\n                    log.debug(msg.format(addr=str(addr), error=str(e)))\n                    log.error(\"Retrying in 1 second.\")\n                    time.sleep(1)\n            else:\n                break\n\n        if sock is None:\n            log.error(\"Can't connect to %s\", str(addr))\n            sys.exit(1)\n\n        listeners.append(sock)\n\n    return listeners\n\n\ndef close_sockets(listeners, unlink=True):\n    for sock in listeners:\n        sock_name = sock.getsockname()\n        sock.close()\n        if unlink and _sock_type(sock_name) is UnixSocket:\n            os.unlink(sock_name)\n", "path": "gunicorn/sock.py"}]}