From 92ae5ac0df07a68b9c7c8f58740e2d7b2e2959d0 Mon Sep 17 00:00:00 2001 From: Zhi Kun Liu Date: Fri, 5 Sep 2014 16:51:30 +0800 Subject: [PATCH] remove object in wsgi LOG.info Method __init__ in Server class records log for wsgi server name, host and port using its __dict__ which includes a socket object. i18n message will deep copy each item's value in __dict__. In python2.6, deep copy the socket object will raise "Exception RuntimeError" and can not be caught. This makes cinder-api run into a hang loop. This patch uses the related properties instead of __dict__ object to fix the problem. Closes-Bug: #1365901 Change-Id: Ia6ac51f4849d369c54ac88b1587741a2d2beb40b --- cinder/wsgi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cinder/wsgi.py b/cinder/wsgi.py index fb9a9b8a2..81533a6bb 100644 --- a/cinder/wsgi.py +++ b/cinder/wsgi.py @@ -174,8 +174,8 @@ class Server(object): {'host': host, 'port': port}) (self._host, self._port) = self._socket.getsockname()[0:2] - LOG.info(_("%(name)s listening on %(_host)s:%(_port)s") - % self.__dict__) + LOG.info(_("%(name)s listening on %(_host)s:%(_port)s") % + {'name': self.name, '_host': self._host, '_port': self._port}) def start(self): """Start serving a WSGI application. -- 2.45.2