Metadata caching is fundamentally broken
Bug #1549814 reported by
Sven Anderson
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Opinion
|
High
|
Unassigned |
Bug Description
The caching backend for memcached/dogpile stores whole Python objects by creating a deep copy. Metadata is cached by storing the metadata Python object, and therefore the whole object tree underneath, including the "instance" attribute. Whenever the metadata is fetched, it also fetches the old version of instance with it, and works on it. This has several implications, like for example lazy fetched fields of the "instance" object are never cached, if they are not pre-fetched before caching. Also it might implicate security issues.
It would be probably a better approach to actually cache the DB query results only, and not the whole populated "living" object.
description: | updated |
Changed in nova: | |
assignee: | Sven Anderson (ansiwen) → Dan Smith (danms) |
tags: | removed: mitaka-rc-potential |
Changed in nova: | |
assignee: | Dan Smith (danms) → Diana Clarke (diana-clarke) |
Changed in nova: | |
assignee: | Diana Clarke (diana-clarke) → nobody |
Changed in nova: | |
status: | In Progress → New |
To post a comment you must log in.
Related fix proposed to branch: master /review. openstack. org/285530
Review: https:/