[Bug 1929156] [NEW] can't use dogpile.cache.dbm cache in keystone

Shengjing Zhu 1929156 at bugs.launchpad.net
Fri May 21 04:00:56 UTC 2021


Public bug reported:

There's regression in dogpile.cache 1.1, that dogpile.cache.dbm can't be
used with ProxyBackend, which is used in keystone.

Please see https://github.com/sqlalchemy/dogpile.cache/issues/202

```
2021-05-21 03:59:58.538 348 ERROR keystone Traceback (most recent call last):
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/bin/keystone-manage", line 10, in <module>
2021-05-21 03:59:58.538 348 ERROR keystone     sys.exit(main())
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/manage.py", line 41, in main
2021-05-21 03:59:58.538 348 ERROR keystone     cli.main(argv=sys.argv, developer_config_file=developer_config)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 1376, in main
2021-05-21 03:59:58.538 348 ERROR keystone     CONF.command.cmd_class.main()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 195, in main
2021-05-21 03:59:58.538 348 ERROR keystone     klass.do_bootstrap()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 186, in do_bootstrap
2021-05-21 03:59:58.538 348 ERROR keystone     self.bootstrapper.bootstrap()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/bootstrap.py", line 64, in bootstrap
2021-05-21 03:59:58.538 348 ERROR keystone     self._bootstrap_project()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/bootstrap.py", line 103, in _bootstrap_project
2021-05-21 03:59:58.538 348 ERROR keystone     PROVIDERS.resource_api.create_project(project_id, project)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
2021-05-21 03:59:58.538 348 ERROR keystone     __ret_val = __f(*args, **kwargs)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 209, in create_project
2021-05-21 03:59:58.538 348 ERROR keystone     self._enforce_project_constraints(project)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 150, in _enforce_project_constraints
2021-05-21 03:59:58.538 348 ERROR keystone     self._assert_regular_project_constraints(project_ref)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 123, in _assert_regular_project_constraints
2021-05-21 03:59:58.538 348 ERROR keystone     domain = self.get_domain(project_ref['domain_id'])
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
2021-05-21 03:59:58.538 348 ERROR keystone     __ret_val = __f(*args, **kwargs)
2021-05-21 03:59:58.538 348 ERROR keystone   File "<decorator-gen-42>", line 2, in get_domain
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1577, in get_or_create_for_user_func
2021-05-21 03:59:58.538 348 ERROR keystone     return self.get_or_create(
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 974, in get_or_create
2021-05-21 03:59:58.538 348 ERROR keystone     key = self.key_mangler(key)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/core.py", line 86, in key_mangler
2021-05-21 03:59:58.538 348 ERROR keystone     key = '%s:%s' % (key, invalidation_manager.region_id)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/core.py", line 43, in region_id
2021-05-21 03:59:58.538 348 ERROR keystone     return self._invalidation_region.get_or_create(
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1042, in get_or_create
2021-05-21 03:59:58.538 348 ERROR keystone     with Lock(
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/lock.py", line 185, in __enter__
2021-05-21 03:59:58.538 348 ERROR keystone     return self._enter()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/lock.py", line 87, in _enter
2021-05-21 03:59:58.538 348 ERROR keystone     value = value_fn()
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 977, in get_value
2021-05-21 03:59:58.538 348 ERROR keystone     value = self._get_from_backend(key)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1265, in _get_from_backend
2021-05-21 03:59:58.538 348 ERROR keystone     self.backend.get_serialized(key)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/api.py", line 288, in get_serialized
2021-05-21 03:59:58.538 348 ERROR keystone     return cast(SerializedReturnType, self.get(key))
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/_context_cache.py", line 74, in get
2021-05-21 03:59:58.538 348 ERROR keystone     value = self.proxied.get(key)
2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/api.py", line 245, in get
2021-05-21 03:59:58.538 348 ERROR keystone     raise NotImplementedError()
2021-05-21 03:59:58.538 348 ERROR keystone NotImplementedError
2021-05-21 03:59:58.538 348 ERROR keystone 
```

My keystone.conf file

```
[auth]
methods = password,token,openid
[cache]
enabled = true
backend = dogpile.cache.dbm
backend_argument = filename:/var/lib/keystone/dogpile.cache
[database]
connection = mysql+pymysql://keystone:keystone@mysql/keystone
[oslo_policy]
enforce_scope = true
[openid]
remote_id_attribute = HTTP_OIDC_ISS
[security_compliance]
password_regex = ""
password_regex_description = ""
[token]
provider = fernet
expiration = "604800"
```

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: python3-dogpile.cache 1.1.2-1~cloud0 [origin: Canonical]
Uname: Linux 5.10.0-6-amd64 x86_64
ApportVersion: 2.20.11-0ubuntu27.17
Architecture: amd64
CasperMD5CheckResult: skip
CrashDB:
 {
                "impl": "launchpad",
                "project": "cloud-archive",
                "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml",
             }
Date: Fri May 21 03:38:51 2021
PackageArchitecture: all
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
SourcePackage: python-dogpile.cache
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: cloud-archive
     Importance: Undecided
         Status: New

** Affects: python-dogpile.cache (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug focal third-party-packages

** Also affects: python-dogpile.cache (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1929156

Title:
  can't use dogpile.cache.dbm cache in keystone

Status in Ubuntu Cloud Archive:
  New
Status in python-dogpile.cache package in Ubuntu:
  New

Bug description:
  There's regression in dogpile.cache 1.1, that dogpile.cache.dbm can't
  be used with ProxyBackend, which is used in keystone.

  Please see https://github.com/sqlalchemy/dogpile.cache/issues/202

  ```
  2021-05-21 03:59:58.538 348 ERROR keystone Traceback (most recent call last):
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/bin/keystone-manage", line 10, in <module>
  2021-05-21 03:59:58.538 348 ERROR keystone     sys.exit(main())
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/manage.py", line 41, in main
  2021-05-21 03:59:58.538 348 ERROR keystone     cli.main(argv=sys.argv, developer_config_file=developer_config)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 1376, in main
  2021-05-21 03:59:58.538 348 ERROR keystone     CONF.command.cmd_class.main()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 195, in main
  2021-05-21 03:59:58.538 348 ERROR keystone     klass.do_bootstrap()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/cli.py", line 186, in do_bootstrap
  2021-05-21 03:59:58.538 348 ERROR keystone     self.bootstrapper.bootstrap()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/bootstrap.py", line 64, in bootstrap
  2021-05-21 03:59:58.538 348 ERROR keystone     self._bootstrap_project()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/cmd/bootstrap.py", line 103, in _bootstrap_project
  2021-05-21 03:59:58.538 348 ERROR keystone     PROVIDERS.resource_api.create_project(project_id, project)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
  2021-05-21 03:59:58.538 348 ERROR keystone     __ret_val = __f(*args, **kwargs)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 209, in create_project
  2021-05-21 03:59:58.538 348 ERROR keystone     self._enforce_project_constraints(project)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 150, in _enforce_project_constraints
  2021-05-21 03:59:58.538 348 ERROR keystone     self._assert_regular_project_constraints(project_ref)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/resource/core.py", line 123, in _assert_regular_project_constraints
  2021-05-21 03:59:58.538 348 ERROR keystone     domain = self.get_domain(project_ref['domain_id'])
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/manager.py", line 115, in wrapped
  2021-05-21 03:59:58.538 348 ERROR keystone     __ret_val = __f(*args, **kwargs)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "<decorator-gen-42>", line 2, in get_domain
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1577, in get_or_create_for_user_func
  2021-05-21 03:59:58.538 348 ERROR keystone     return self.get_or_create(
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 974, in get_or_create
  2021-05-21 03:59:58.538 348 ERROR keystone     key = self.key_mangler(key)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/core.py", line 86, in key_mangler
  2021-05-21 03:59:58.538 348 ERROR keystone     key = '%s:%s' % (key, invalidation_manager.region_id)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/core.py", line 43, in region_id
  2021-05-21 03:59:58.538 348 ERROR keystone     return self._invalidation_region.get_or_create(
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1042, in get_or_create
  2021-05-21 03:59:58.538 348 ERROR keystone     with Lock(
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/lock.py", line 185, in __enter__
  2021-05-21 03:59:58.538 348 ERROR keystone     return self._enter()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/lock.py", line 87, in _enter
  2021-05-21 03:59:58.538 348 ERROR keystone     value = value_fn()
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 977, in get_value
  2021-05-21 03:59:58.538 348 ERROR keystone     value = self._get_from_backend(key)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/region.py", line 1265, in _get_from_backend
  2021-05-21 03:59:58.538 348 ERROR keystone     self.backend.get_serialized(key)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/api.py", line 288, in get_serialized
  2021-05-21 03:59:58.538 348 ERROR keystone     return cast(SerializedReturnType, self.get(key))
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/keystone/common/cache/_context_cache.py", line 74, in get
  2021-05-21 03:59:58.538 348 ERROR keystone     value = self.proxied.get(key)
  2021-05-21 03:59:58.538 348 ERROR keystone   File "/usr/lib/python3/dist-packages/dogpile/cache/api.py", line 245, in get
  2021-05-21 03:59:58.538 348 ERROR keystone     raise NotImplementedError()
  2021-05-21 03:59:58.538 348 ERROR keystone NotImplementedError
  2021-05-21 03:59:58.538 348 ERROR keystone 
  ```

  My keystone.conf file

  ```
  [auth]
  methods = password,token,openid
  [cache]
  enabled = true
  backend = dogpile.cache.dbm
  backend_argument = filename:/var/lib/keystone/dogpile.cache
  [database]
  connection = mysql+pymysql://keystone:keystone@mysql/keystone
  [oslo_policy]
  enforce_scope = true
  [openid]
  remote_id_attribute = HTTP_OIDC_ISS
  [security_compliance]
  password_regex = ""
  password_regex_description = ""
  [token]
  provider = fernet
  expiration = "604800"
  ```

  ProblemType: Bug
  DistroRelease: Ubuntu 20.04
  Package: python3-dogpile.cache 1.1.2-1~cloud0 [origin: Canonical]
  Uname: Linux 5.10.0-6-amd64 x86_64
  ApportVersion: 2.20.11-0ubuntu27.17
  Architecture: amd64
  CasperMD5CheckResult: skip
  CrashDB:
   {
                  "impl": "launchpad",
                  "project": "cloud-archive",
                  "bug_pattern_url": "http://people.canonical.com/~ubuntu-archive/bugpatterns/bugpatterns.xml",
               }
  Date: Fri May 21 03:38:51 2021
  PackageArchitecture: all
  ProcEnviron:
   TERM=xterm
   PATH=(custom, no user)
  SourcePackage: python-dogpile.cache
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1929156/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list