Lists of strings result in inconsistent ETags between Python 2 and 3
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Colin Watson | ||
lazr.restful |
Fix Released
|
Critical
|
Colin Watson |
Bug Description
We have had a major increase in PreconditionFailed errors from a regular process run. While this is idempotent against them the number of these errors has gone from 0 on an average day to one in nearly every 5m-ly run.
It is suspected we are getting different ETags for the same representation leading to these errors:
--- 1 2021-05-14 15:07:55.295802689 +0100
+++ 2 2021-05-14 15:07:46.863724112 +0100
@@ -12,7 +12,7 @@
"duplicate_
"duplicates_
"heat": 12,
- "http_etag": "\"492a964f1cf2
+ "http_etag": "\"492a964f1cf2
"id": 1927621,
"information
"latest_
Related branches
- Cristian Gonzalez (community): Approve
-
Diff: 72 lines (+20/-14)3 files modifiedNEWS.rst (+3/-0)
src/lazr/restful/_resource.py (+1/-14)
src/lazr/restful/tests/test_etag.py (+16/-0)
- Thiago F. Pappacena (community): Approve
-
Diff: 239 lines (+93/-86)3 files modifiedlib/lp/registry/stories/webservice/xx-distribution-source-package.txt (+21/-17)
lib/lp/registry/stories/webservice/xx-project-registry.txt (+71/-68)
requirements/launchpad.txt (+1/-1)
Changed in lazr.restful: | |
status: | In Progress → Fix Committed |
Changed in launchpad: | |
status: | Triaged → In Progress |
assignee: | nobody → Colin Watson (cjwatson) |
Changed in launchpad: | |
status: | In Progress → Fix Released |
I think this is a Python 3 dict ordering bug.