diff options
Diffstat (limited to 'meta-openstack/recipes-devtools/python/python-keystoneclient')
-rw-r--r-- | meta-openstack/recipes-devtools/python/python-keystoneclient/fix_keystoneclient_memory_leak.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-keystoneclient/fix_keystoneclient_memory_leak.patch b/meta-openstack/recipes-devtools/python/python-keystoneclient/fix_keystoneclient_memory_leak.patch new file mode 100644 index 0000000..05a1d23 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-keystoneclient/fix_keystoneclient_memory_leak.patch | |||
@@ -0,0 +1,37 @@ | |||
1 | --- | ||
2 | keystoneclient/openstack/common/apiclient/client.py | 10 ++++++++++ | ||
3 | 1 file changed, 10 insertions(+) | ||
4 | |||
5 | --- a/keystoneclient/openstack/common/apiclient/client.py | ||
6 | +++ b/keystoneclient/openstack/common/apiclient/client.py | ||
7 | @@ -90,6 +90,7 @@ | ||
8 | self.user_agent = user_agent or self.user_agent | ||
9 | |||
10 | self.times = [] # [("item", starttime, endtime), ...] | ||
11 | + self.times_max_len = 200 | ||
12 | self.timings = timings | ||
13 | |||
14 | # requests within the same session can reuse TCP connections from pool | ||
15 | @@ -142,6 +143,12 @@ | ||
16 | def reset_timings(self): | ||
17 | self.times = [] | ||
18 | |||
19 | + def get_timings_max_len(self): | ||
20 | + return self.times_max_len | ||
21 | + | ||
22 | + def set_timings_max_len(self, new_len): | ||
23 | + self.times_max_len = new_len | ||
24 | + | ||
25 | def request(self, method, url, **kwargs): | ||
26 | """Send an http request with the specified characteristics. | ||
27 | |||
28 | @@ -173,6 +180,9 @@ | ||
29 | if self.timings: | ||
30 | self.times.append(("%s %s" % (method, url), | ||
31 | start_time, time.time())) | ||
32 | + # remove oldest items until we maintain max length | ||
33 | + while len(self.times) > self.times_max_len: | ||
34 | + del self.times[0] | ||
35 | self._http_log_resp(resp) | ||
36 | |||
37 | if resp.status_code >= 400: | ||