successful write with If-Match can return stale values
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Gary Poster | ||
lazr.restful |
Fix Released
|
Critical
|
Gary Poster |
Bug Description
If you include an If-Match header when writing, such as with a PATCH, the cache can be populated with values that are not correctly cleared when changed.
This is because the FieldUnmarshall
I have a fix locally that passes a Launchpad integration test where I discovered the problem. I will add a lazr.restful test and see if the tests pass with my change.
Related branches
- Graham Binns (community): Approve (code)
-
Diff: 158 lines (+62/-10)5 files modifiedsrc/lazr/restful/NEWS.txt (+6/-0)
src/lazr/restful/_resource.py (+14/-7)
src/lazr/restful/tests/test_etag.py (+1/-1)
src/lazr/restful/tests/test_webservice.py (+40/-1)
src/lazr/restful/version.txt (+1/-1)
- Graham Binns (community): Approve (code)
-
Diff: 12 lines (+1/-1)1 file modifiedversions.cfg (+1/-1)
Changed in lazr.restful: | |
status: | Triaged → In Progress |
Changed in lazr.restful: | |
status: | In Progress → Fix Released |
Changed in launchpad: | |
status: | New → Triaged |
importance: | Undecided → Critical |
assignee: | nobody → Gary Poster (gary) |
status: | Triaged → In Progress |
Changed in launchpad: | |
status: | In Progress → Fix Committed |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Lines 368-382 of http:// bazaar. launchpad. net/~launchpad- pqm/launchpad/ stable/ view/12450/ lib/canonical/ launchpad/ windmill/ jstests/ launchpad_ ajax.js show that this is a regression, at least for a user's display_name. It was working when this Windmill test was part of Launchpad's suite. (I am in the process of rewriting these tests with our new YUI integration test machinery: see bug 724609.)