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

Proposed by Jorge Niedbalski
Status: Needs review
Proposed branch: ~niedbalski/ubuntu/+source/keystone:fix-1649616-newton
Merge into: ~ubuntu-server-dev/ubuntu/+source/keystone:stable/newton
Diff against target: 71 lines (+49/-0)
3 files modified
debian/changelog (+7/-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+324873@code.launchpad.net

Description of the change

    Cherry-picked fix for LP: #1649616.

To post a comment you must log in.

Unmerged commits

4612462... 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 9932ffa..4a9849c 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,10 @@
6+keystone (2:10.0.1-0ubuntu2) yakkety; urgency=medium
7+
8+ * d/patches/0001-Make-flushing-tokens-more-robust.patch: Fixes
9+ LP: #1649616.
10+
11+ -- Jorge Niedbalski <jorge.niedbalski@canonical.com> Wed, 31 May 2017 11:18:26 -0400
12+
13 keystone (2:10.0.1-0ubuntu1) yakkety; urgency=medium
14
15 * New upstream stable release for OpenStack Newton. (LP: #1664306)
16diff --git a/debian/patches/0001-Make-flushing-tokens-more-robust.patch b/debian/patches/0001-Make-flushing-tokens-more-robust.patch
17new file mode 100644
18index 0000000..83ae557
19--- /dev/null
20+++ b/debian/patches/0001-Make-flushing-tokens-more-robust.patch
21@@ -0,0 +1,41 @@
22+From 8181d92702b3c6763380a7bbfaccbac0bbeb2005 Mon Sep 17 00:00:00 2001
23+From: Peter Sabaini <peter.sabaini@canonical.com>
24+Date: Thu, 6 Apr 2017 23:06:29 +0200
25+Subject: [PATCH] Make flushing tokens more robust
26+
27+Commit token flushes between batches in order to lower resource
28+consumption and make flushing more robust for replication
29+
30+Change-Id: I9be37e420353a336a8acd820eadd47d4bcf7324f
31+Closes-Bug: #1649616
32+---
33+ keystone/token/persistence/backends/sql.py | 6 ++++++
34+ 1 file changed, 6 insertions(+)
35+
36+diff --git a/keystone/token/persistence/backends/sql.py b/keystone/token/persistence/backends/sql.py
37+index f749269..b244d0b 100644
38+--- a/keystone/token/persistence/backends/sql.py
39++++ b/keystone/token/persistence/backends/sql.py
40+@@ -270,6 +270,8 @@ class Token(token.persistence.TokenDriverV8):
41+
42+ def flush_expired_tokens(self):
43+ with sql.session_for_write() as session:
44++ # Turn off autocommit, as it doesn't work well with batch delete
45++ session.autocommit = False
46+ dialect = session.bind.dialect.name
47+ expiry_range_func = self._expiry_range_strategy(dialect)
48+ query = session.query(TokenModel.expires)
49+@@ -279,6 +281,10 @@ class Token(token.persistence.TokenDriverV8):
50+ delete_query = query.filter(TokenModel.expires <=
51+ expiry_time)
52+ row_count = delete_query.delete(synchronize_session=False)
53++ # Explicitly commit each batch so as to free up
54++ # resources early. We do not actually need
55++ # transactional semantics here.
56++ session.commit()
57+ total_removed += row_count
58+ LOG.debug('Removed %d total expired tokens', total_removed)
59+
60+--
61+2.7.4
62+
63diff --git a/debian/patches/series b/debian/patches/series
64index 38af99a..b3fc4fa 100644
65--- a/debian/patches/series
66+++ b/debian/patches/series
67@@ -1,3 +1,4 @@
68+0001-Make-flushing-tokens-more-robust.patch
69 sql_connection.patch
70 ubuntu-test-overrides.patch
71 default-log-dir.patch

Subscribers

People subscribed via source and target branches