yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #02469
[Bug 1020127] Re: proxy-server Error: Second simultaneous read or write detected
** Changed in: python-keystoneclient
Status: New => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1020127
Title:
proxy-server Error: Second simultaneous read or write detected
Status in OpenStack Identity (Keystone):
In Progress
Status in Python client library for Keystone:
Fix Released
Bug description:
Hello,
The configuration for caching auth tokens in Swift described at
https://lists.launchpad.net/openstack/msg08639.html
where
memcache_servers = cachedev1:11211
is added to the [filter:authtoken] section of /etc/swift/proxy-server.conf was applied to 2 Swift proxy servers. After this a Swift reliability test consisting of 50 threads performing repeated PUT and GET requests started to intermittently receive 500 Internal Server Error responses and the Swift log on the proxy servers reported the following messages, each one corresponding to each 500 response. The messages continue to occur intermittently, sometimes for read and sometimes for write.
Taking this configuration out again and restarting the proxy servers
prevents the problem.
The Swift version is 1.4.8 (Essex).
The Swift reliability test is as described in
https://answers.launchpad.net/swift/+question/201627
but currently rate limited to 1,050 HTTP requests/min.
Jul 2 10:19:38 swiftproxydev2 <131>proxy-server Error: Second
simultaneous write on fileno 15 detected. Unless you really know what
you're doing, make sure that only one greenthread can write any
particular socket. Consider using a pools.Pool. If you do know what
you're doing and want to disable this error, call
eventlet.debug.hub_multiple_reader_prevention(False): #012Traceback
(most recent call last):#012 File "/usr/lib/python2.6/site-
packages/swift/common/middleware/catch_errors.py", line 47, in
__call__#012 return self.app(env, my_start_response)#012 File
"/usr/lib/python2.6/site-
packages/swift/common/middleware/healthcheck.py", line 38, in
__call__#012 return self.app(env, start_response)#012 File
"/usr/lib/python2.6/site-
packages/swift/common/middleware/memcache.py", line 47, in
__call__#012 return self.app(env, start_response)#012 File
"/usr/lib/python2.6/site-packages/keystone/middleware/auth_token.py",
line 173, in __call__#012 token_info =
self._validate_user_token(user_token)#012 File "/usr/lib/python2.6
/site-packages/keystone/middleware/auth_token.py", line 343, in
_validate_user_token#012 cached = self._cache_get(user_token)#012
File "/usr/lib/python2.6/site-
packages/keystone/middleware/auth_token.py", line 477, in
_cache_get#012 cached = self._cache.get(key)#012 File
"/usr/lib/python2.6/site-packages/memcache.py", line 661, in get#012
server.send_cmd("get %s" % key)#012 File "/usr/lib/python2.6/site-
packages/memcache.py", line 873, in send_cmd#012
self.socket.sendall(cmd + '\r\n')#012 File "/usr/lib/python2.6/site-
packages/eventlet/greenio.py", line 283, in sendall#012 tail =
self.send(data, flags)#012 File "/usr/lib/python2.6/site-
packages/eventlet/greenio.py", line 278, in send#012
timeout_exc=socket.timeout("timed out"))#012 File "/usr/lib/python2.6
/site-packages/eventlet/hubs/__init__.py", line 119, in trampoline#012
listener = hub.add(hub.WRITE, fileno, current.switch)#012 File
"/usr/lib/python2.6/site-packages/eventlet/hubs/poll.py", line 27, in
add#012 listener = super(
Jul 2 10:24:15 swiftproxydev2 <131>proxy-server Error: Second
simultaneous read on fileno 15 detected. Unless you really know what
you're doing, make sure that only one greenthread can read any
particular socket. Consider using a pools.Pool. If you do know what
you're doing and want to disable this error, call
eventlet.debug.hub_multiple_reader_prevention(False): #012Traceback
(most recent call last):#012 File "/usr/lib/python2.6/site-
packages/swift/common/middleware/catch_errors.py", line 47, in
__call__#012 return self.app(env, my_start_response)#012 File
"/usr/lib/python2.6/site-
packages/swift/common/middleware/healthcheck.py", line 38, in
__call__#012 return self.app(env, start_response)#012 File
"/usr/lib/python2.6/site-
packages/swift/common/middleware/memcache.py", line 47, in
__call__#012 return self.app(env, start_response)#012 File
"/usr/lib/python2.6/site-packages/keystone/middleware/auth_token.py",
line 173, in __call__#012 token_info =
self._validate_user_token(user_token)#012 File "/usr/lib/python2.6
/site-packages/keystone/middleware/auth_token.py", line 343, in
_validate_user_token#012 cached = self._cache_get(user_token)#012
File "/usr/lib/python2.6/site-
packages/keystone/middleware/auth_token.py", line 477, in
_cache_get#012 cached = self._cache.get(key)#012 File
"/usr/lib/python2.6/site-packages/memcache.py", line 662, in get#012
rkey, flags, rlen, = self._expectvalue(server)#012 File
"/usr/lib/python2.6/site-packages/memcache.py", line 747, in
_expectvalue#012 line = server.readline()#012 File
"/usr/lib/python2.6/site-packages/memcache.py", line 886, in
readline#012 data = recv(4096)#012 File "/usr/lib/python2.6/site-
packages/eventlet/greenio.py", line 238, in recv#012
timeout_exc=socket.timeout("timed out"))#012 File "/usr/lib/python2.6
/site-packages/eventlet/hubs/__init__.py", line 117, in trampoline#012
listener = hub.add(hub.READ, fileno, current.switch)#012 File
"/usr/lib/python2.6/site-packages/eventlet/hubs/poll.py", line 27, in
add#012 listener = super(Hub, self).a
A problem producing a similar error in Keystone is discussed at
https://bugs.launchpad.net/keystone/+bug/1012381
but I don't know if this issue is related.
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1020127/+subscriptions