← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1390484] [NEW] Missing "s" in keystone configuration document.

 

Public bug reported:


The keystone doc
http://docs.openstack.org/developer/keystone/configuration.html#token-
persistence-driver, in "Token Persistence Driver", has a mistype in the
red warning box:

```
keystone.token.persistence.backend.memcache_pool.Token
keystone.token.persistence.backend.memcache.Token
```

They should have been

```
keystone.token.persistence.backends.memcache_pool.Token
keystone.token.persistence.backends.memcache.Token
```

It is the missing "s". You can ctrl+f in this document, with or without
"s". You will find the mismatch.

------------------------

If you fill /etc/keystone.conf with the missing "s"
keystone.token.persistence.backend.memcache_pool.Token (as I did)

```
...
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backend.memcache_pool.Token
...
```

The command below will causes keystone to raise "No module named
backend.memcache_pool" error (token is faked)

```
$ keystone --debug --os-token 135abcdef --os-endpoint http://127.0.0.1:35357/v2.0/ user-list
DEBUG:keystoneclient.session:REQ: curl -i -X GET http://127.0.0.1:35357/v2.0/users -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: {SHA1}ce791127cf84307aa59d7a8ba8829f00d5d91570"
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 127.0.0.1
DEBUG:requests.packages.urllib3.connectionpool:"GET /v2.0/users HTTP/1.1" 500 143
DEBUG:keystoneclient.session:RESP:
DEBUG:keystoneclient.session:Request returned failure status: 500
An unexpected error prevented the server from fulfilling your request. (HTTP 500)
```

The error raised from keystone service

```
$ keystone-all
...
2014-11-07 13:41:06.676 20275 ERROR keystone.common.wsgi [-] No module named backend.memcache_pool
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi Traceback (most recent call last):
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/wsgi.py", line 430, in __call__
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     response = self.process_request(request)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/middleware/core.py", line 279, in process_request
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     auth_context = self._build_auth_context(request)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/middleware/core.py", line 259, in _build_auth_context
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token_data=self.token_provider_api.validate_token(token_id))
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 225, in validate_token
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token = self._validate_token(unique_id)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 1013, in decorate
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     should_cache_fn)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 640, in get_or_create
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     async_creator) as value:
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, in __enter__
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return self._enter()
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 98, in _enter
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     generated = self._enter_create(createdtime)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 149, in _enter_create
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     created = self.creator()
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 612, in gen_value
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     created_value = creator()
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 1009, in creator
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return fn(*arg, **kw)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 318, in _validate_token
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token_ref = self._persistence.get_token(token_id)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 191, in _persistence
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self._persistence_manager = persistence.PersistenceManager()
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/dependency.py", line 172, in wrapper
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self.__wrapped_init__(*args, **kwargs)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/persistence/core.py", line 53, in __init__
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     super(PersistenceManager, self).__init__(CONF.token.driver)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/manager.py", line 70, in __init__
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self.driver = importutils.import_object(driver_name)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/openstack/common/importutils.py", line 38, in import_object
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return import_class(import_str)(*args, **kwargs)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/openstack/common/importutils.py", line 27, in import_class
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     __import__(mod_str)
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi ImportError: No module named backend.memcache_pool
2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi
```

-----------------------

So after all the keystone doc
http://docs.openstack.org/developer/keystone/configuration.html#token-
persistence-driver is missing an "s". But troubleshoot takes hours.

** Affects: keystone
     Importance: Undecided
         Status: New

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

Title:
  Missing "s" in keystone configuration document.

Status in OpenStack Identity (Keystone):
  New

Bug description:

  The keystone doc
  http://docs.openstack.org/developer/keystone/configuration.html#token-
  persistence-driver, in "Token Persistence Driver", has a mistype in
  the red warning box:

  ```
  keystone.token.persistence.backend.memcache_pool.Token
  keystone.token.persistence.backend.memcache.Token
  ```

  They should have been

  ```
  keystone.token.persistence.backends.memcache_pool.Token
  keystone.token.persistence.backends.memcache.Token
  ```

  It is the missing "s". You can ctrl+f in this document, with or
  without "s". You will find the mismatch.

  ------------------------

  If you fill /etc/keystone.conf with the missing "s"
  keystone.token.persistence.backend.memcache_pool.Token (as I did)

  ```
  ...
  [token]
  provider = keystone.token.providers.uuid.Provider
  driver = keystone.token.persistence.backend.memcache_pool.Token
  ...
  ```

  The command below will causes keystone to raise "No module named
  backend.memcache_pool" error (token is faked)

  ```
  $ keystone --debug --os-token 135abcdef --os-endpoint http://127.0.0.1:35357/v2.0/ user-list
  DEBUG:keystoneclient.session:REQ: curl -i -X GET http://127.0.0.1:35357/v2.0/users -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: {SHA1}ce791127cf84307aa59d7a8ba8829f00d5d91570"
  INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 127.0.0.1
  DEBUG:requests.packages.urllib3.connectionpool:"GET /v2.0/users HTTP/1.1" 500 143
  DEBUG:keystoneclient.session:RESP:
  DEBUG:keystoneclient.session:Request returned failure status: 500
  An unexpected error prevented the server from fulfilling your request. (HTTP 500)
  ```

  The error raised from keystone service

  ```
  $ keystone-all
  ...
  2014-11-07 13:41:06.676 20275 ERROR keystone.common.wsgi [-] No module named backend.memcache_pool
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi Traceback (most recent call last):
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/wsgi.py", line 430, in __call__
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     response = self.process_request(request)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/middleware/core.py", line 279, in process_request
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     auth_context = self._build_auth_context(request)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/middleware/core.py", line 259, in _build_auth_context
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token_data=self.token_provider_api.validate_token(token_id))
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 225, in validate_token
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token = self._validate_token(unique_id)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 1013, in decorate
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     should_cache_fn)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 640, in get_or_create
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     async_creator) as value:
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, in __enter__
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return self._enter()
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 98, in _enter
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     generated = self._enter_create(createdtime)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 149, in _enter_create
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     created = self.creator()
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 612, in gen_value
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     created_value = creator()
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/dogpile/cache/region.py", line 1009, in creator
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return fn(*arg, **kw)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 318, in _validate_token
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     token_ref = self._persistence.get_token(token_id)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/provider.py", line 191, in _persistence
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self._persistence_manager = persistence.PersistenceManager()
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/dependency.py", line 172, in wrapper
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self.__wrapped_init__(*args, **kwargs)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/token/persistence/core.py", line 53, in __init__
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     super(PersistenceManager, self).__init__(CONF.token.driver)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/common/manager.py", line 70, in __init__
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     self.driver = importutils.import_object(driver_name)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/openstack/common/importutils.py", line 38, in import_object
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     return import_class(import_str)(*args, **kwargs)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi   File "/usr/lib/python2.7/site-packages/keystone/openstack/common/importutils.py", line 27, in import_class
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi     __import__(mod_str)
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi ImportError: No module named backend.memcache_pool
  2014-11-07 13:41:06.676 20275 TRACE keystone.common.wsgi
  ```

  -----------------------

  So after all the keystone doc
  http://docs.openstack.org/developer/keystone/configuration.html#token-
  persistence-driver is missing an "s". But troubleshoot takes hours.

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


Follow ups

References