Merge ~niedbalski/ubuntu/+source/keystone:fix-1649616 into ~ubuntu-server-dev/ubuntu/+source/keystone:master

Proposed by Jorge Niedbalski
Status: Needs review
Proposed branch: ~niedbalski/ubuntu/+source/keystone:fix-1649616
Merge into: ~ubuntu-server-dev/ubuntu/+source/keystone:master
Diff against target: 74 lines (+47/-0)
3 files modified
debian/changelog (+5/-0)
debian/patches/0001-Make-flushing-tokens-more-robust.patch (+41/-0)
debian/patches/series (+1/-0)
Reviewer Review Type Date Requested Status
Corey Bryant Pending
James Page Pending
Review via email: mp+324870@code.launchpad.net

Description of the change

Cherry-picked fix for LP: #1649616.

To post a comment you must log in.

Unmerged commits

dfba751... by Jorge Niedbalski

Cherry-picked fix for LP: #1649616.

Signed-off-by: Jorge Niedbalski <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 39d8e11..8a35a4c 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,9 +1,14 @@
6 keystone (2:12.0.0~b1-0ubuntu3) UNRELEASED; urgency=medium
7
8+ [ James Page ]
9 * d/control: Bump minimum migration version to 0.11.0.
10 * d/rules,control,keystone.conf.dist: Refactor defaults management
11 to use crudini.
12
13+ [ Jorge Niedbalski ]
14+ * d/patches/0001-Make-flushing-tokens-more-robust.patch: Fixes
15+ LP: #1649616.
16+
17 -- James Page <james.page@ubuntu.com> Thu, 25 May 2017 10:00:20 +0100
18
19 keystone (2:12.0.0~b1-0ubuntu2) artful; urgency=medium
20diff --git a/debian/patches/0001-Make-flushing-tokens-more-robust.patch b/debian/patches/0001-Make-flushing-tokens-more-robust.patch
21new file mode 100644
22index 0000000..3a12b9f
23--- /dev/null
24+++ b/debian/patches/0001-Make-flushing-tokens-more-robust.patch
25@@ -0,0 +1,41 @@
26+From f56d5f7cda6dccb1890b1c00c582477e90b6f2d4 Mon Sep 17 00:00:00 2001
27+From: Peter Sabaini <peter.sabaini@canonical.com>
28+Date: Thu, 6 Apr 2017 23:06:29 +0200
29+Subject: [PATCH] Make flushing tokens more robust
30+
31+Commit token flushes between batches in order to lower resource
32+consumption and make flushing more robust for replication
33+
34+Change-Id: I9be37e420353a336a8acd820eadd47d4bcf7324f
35+Closes-Bug: #1649616
36+---
37+ keystone/token/persistence/backends/sql.py | 6 ++++++
38+ 1 file changed, 6 insertions(+)
39+
40+diff --git a/keystone/token/persistence/backends/sql.py b/keystone/token/persistence/backends/sql.py
41+index 0900aca..0d1acc5 100644
42+--- a/keystone/token/persistence/backends/sql.py
43++++ b/keystone/token/persistence/backends/sql.py
44+@@ -276,6 +276,8 @@ class Token(token.persistence.TokenDriverBase):
45+
46+ def flush_expired_tokens(self):
47+ with sql.session_for_write() as session:
48++ # Turn off autocommit, as it doesn't work well with batch delete
49++ session.autocommit = False
50+ dialect = session.bind.dialect.name
51+ expiry_range_func = self._expiry_range_strategy(dialect)
52+ query = session.query(TokenModel.expires)
53+@@ -285,6 +287,10 @@ class Token(token.persistence.TokenDriverBase):
54+ delete_query = query.filter(TokenModel.expires <=
55+ expiry_time)
56+ row_count = delete_query.delete(synchronize_session=False)
57++ # Explicitly commit each batch so as to free up
58++ # resources early. We do not actually need
59++ # transactional semantics here.
60++ session.commit()
61+ total_removed += row_count
62+ LOG.debug('Removed %d total expired tokens', total_removed)
63+
64+--
65+2.7.4
66+
67diff --git a/debian/patches/series b/debian/patches/series
68index 79f267c..4c7f04b 100644
69--- a/debian/patches/series
70+++ b/debian/patches/series
71@@ -1,2 +1,3 @@
72+0001-Make-flushing-tokens-more-robust.patch
73 add-version-info.patch
74 add-missing-manifest.patch

Subscribers

People subscribed via source and target branches