← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1380670] [NEW] python-memcached misses working backend

 

Public bug reported:

In multi-backend case there is always a chance for client to miss a
working backend among not responding.

Assuming memcached is up and running on localhost:11211:

import memcache
import random
cl = memcache.Client(['localhost:11211', 'localhost:11212', 'localhost:11213', 'localhost:11214'])
while cl.set(str(random.random()), 1): pass

'while' must be an infinite loop since cl.set() returns True on success
but it exits in milliseconds instead.

Bug may be fixed by changing backend selection logic, patch attached.

** Affects: keystone
     Importance: Undecided
         Status: New

** Patch added: "MIRA0001-get_server_fix.patch"
   https://bugs.launchpad.net/bugs/1380670/+attachment/4234454/+files/MIRA0001-get_server_fix.patch

** Description changed:

- In multi-backend case there always a chance for client to miss a working
- backend among not responding.
+ In multi-backend case there is always a chance for client to miss a
+ working backend among not responding.
  
  Assuming memcached is up and running on localhost:11211:
  
  import memcache
  import random
  cl = memcache.Client(['localhost:11211', 'localhost:11212', 'localhost:11213', 'localhost:11214'])
  while cl.set(str(random.random()), 1): pass
  
  'while' must be an infinite loop since cl.set() returns True on success
  but it exits in milliseconds instead.
  
  Bug may be fixed by changing backend selection logic, patch attached.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1380670

Title:
  python-memcached misses working backend

Status in OpenStack Identity (Keystone):
  New

Bug description:
  In multi-backend case there is always a chance for client to miss a
  working backend among not responding.

  Assuming memcached is up and running on localhost:11211:

  import memcache
  import random
  cl = memcache.Client(['localhost:11211', 'localhost:11212', 'localhost:11213', 'localhost:11214'])
  while cl.set(str(random.random()), 1): pass

  'while' must be an infinite loop since cl.set() returns True on
  success but it exits in milliseconds instead.

  Bug may be fixed by changing backend selection logic, patch attached.

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1380670/+subscriptions


Follow ups

References