Activity log for bug #1174660

Date Who What changed Old value New value Message
2013-04-30 08:30:24 Eohyung Lee bug added bug
2013-04-30 13:42:10 Eohyung Lee description When a client disconnect their GET object request, proxy server knows it and after 60sec(node_timeout) proxy server close their connections.(client, object-server) Before proxy server close object-servers connection, it get garbagging collection from object-server for preventing memory leak in object-server. (IMHO) One disconnected connection don't make problem, but if many disconnected connections in short time make heavy load in object-server. In swift/proxy/controllers/base.py source you can see in below function. I commented my opinion. def close_swift_conn(self, src): try: src.swift_conn.close() except Exception: pass src.swift_conn = None try: while src.read(self.app.object_chunk_size): # it cause heavy load in object-server pass except Exception: pass try: src.close() except Exception: pass You can test this like below reproduce: (for heavy load in object server) 1) make large object(500MB) and upload it in swift 2) download this file with many concurrent connections (100~1000 connections) 3) after start downloading, wait for object-servers open their files. 4) then disconnect all connections. 5) you can see object server`s load are increased. (see it like loadavg) And I tested without garbage collecting object-servers leak 4k in each connection. But it is not uncleared yet. I need more test. When a client disconnect their GET object request, proxy server knows it and after 60sec(client_timeout) proxy server close their connections.(client, object-server) Before proxy server close object-servers connection, it get garbagging collection from object-server for preventing memory leak in object-server. (IMHO) One disconnected connection don't make problem, but if many disconnected connections in short time make heavy load in object-server. In swift/proxy/controllers/base.py source you can see in below function. I commented my opinion.     def close_swift_conn(self, src):         try:             src.swift_conn.close()         except Exception:             pass         src.swift_conn = None         try:             while src.read(self.app.object_chunk_size): # it cause heavy load in object-server                 pass         except Exception:             pass         try:             src.close()         except Exception:             pass You can test this like below reproduce: (for heavy load in object server) 1) make large object(500MB) and upload it in swift 2) download this file with many concurrent connections (100~1000 connections) 3) after start downloading, wait for object-servers open their files. 4) then disconnect all connections. 5) you can see object server`s load are increased. (see it like loadavg) And I tested without garbage collecting object-servers leak 4k in each connection. But it is not uncleared yet. I need more test.
2013-07-24 11:31:14 Juan J. Martínez attachment added script to reproduce the problem https://bugs.launchpad.net/swift/+bug/1174660/+attachment/3747621/+files/test.py
2013-07-24 12:16:45 Juan J. Martínez attachment removed script to reproduce the problem https://bugs.launchpad.net/swift/+bug/1174660/+attachment/3747621/+files/test.py
2013-07-24 12:18:33 Juan J. Martínez attachment added script to reproduce the problem https://bugs.launchpad.net/swift/+bug/1174660/+attachment/3747662/+files/test.py
2013-07-24 12:57:23 Juan J. Martínez attachment added close-swift-conn.patch https://bugs.launchpad.net/swift/+bug/1174660/+attachment/3747697/+files/close-swift-conn.patch
2013-07-25 07:27:01 Juan J. Martínez bug added subscriber Juan J. Martínez
2013-07-25 08:16:18 OpenStack Infra swift: status New In Progress
2013-07-25 08:16:18 OpenStack Infra swift: assignee Juan J. Martínez (jjmartinez)
2013-07-25 10:27:06 Juan J. Martínez attachment removed close-swift-conn.patch https://bugs.launchpad.net/swift/+bug/1174660/+attachment/3747697/+files/close-swift-conn.patch
2013-09-24 00:59:16 John Dickinson swift: importance Undecided Critical
2013-09-24 00:59:47 John Dickinson nominated for series swift/havana
2013-09-24 00:59:47 John Dickinson bug task added swift/havana
2013-09-24 00:59:55 John Dickinson swift/havana: milestone 1.9.3
2013-09-26 23:31:46 OpenStack Infra swift: assignee Juan J. Martínez (jjmartinez) Samuel Merritt (torgomatic)
2013-10-07 22:30:16 OpenStack Infra swift: status In Progress Fix Committed
2013-10-09 08:47:48 Thierry Carrez swift: status Fix Committed Fix Released
2013-10-17 12:34:46 Thierry Carrez swift: milestone 1.10.0-rc1 1.10.0
2013-10-17 12:37:23 Thierry Carrez bug task deleted swift/havana
2013-11-20 01:14:57 Jeremy Stanley bug task added ossa
2013-11-20 01:15:05 Jeremy Stanley ossa: status New Incomplete
2014-01-11 20:09:02 Jeremy Stanley ossa: status Incomplete Invalid