)]}'
{"id":"openstack%2Fpython-swiftclient~674320","triplet_id":"openstack%2Fpython-swiftclient~master~I200ad0cdc8b7999c3f5521b9a822122bd18714bf","project":"openstack/python-swiftclient","branch":"master","topic":"bug/1838775","hashtags":[],"change_id":"I200ad0cdc8b7999c3f5521b9a822122bd18714bf","subject":"Cleanup session on delete","status":"MERGED","created":"2019-08-02 14:22:49.000000000","updated":"2019-12-09 23:41:22.000000000","submitted":"2019-12-09 23:39:57.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"674320-1575934797640-9875c5dd","meta_rev_id":"b58d7e5b861662fc9615532a2ded476b4dfcd6f3","_number":674320,"virtual_id_number":674320,"owner":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-12-09 23:39:57.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":0,"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2019-12-09 20:59:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":1,"date":"2019-12-09 14:55:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},{"value":2,"date":"2019-12-09 20:44:05.000000000","_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2019-12-09 20:59:31.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"value":0,"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},{"value":0,"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-12-09 20:44:05.000000000","updated_by":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"reviewer":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"state":"REVIEWER"},{"updated":"2019-12-09 20:59:31.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2019-12-09 23:39:57.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"92f08f869c0eb381960c50c103c28848ea0a5559","author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"date":"2019-08-02 14:22:49.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"08ab95c3efd21a50fe1519609657dae4555bfaa1","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 17:55:11.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://logs.opendev.org/20/674320/1/check/tempest-full/f8ee102/ : SUCCESS in 1h 32m 33s\n- openstack-tox-lower-constraints https://logs.opendev.org/20/674320/1/check/openstack-tox-lower-constraints/4001763/ : SUCCESS in 4m 18s\n- openstack-tox-pypy https://logs.opendev.org/20/674320/1/check/openstack-tox-pypy/48b9792/ : SUCCESS in 4m 13s (non-voting)\n- openstack-tox-pep8 https://logs.opendev.org/20/674320/1/check/openstack-tox-pep8/6becb90/ : SUCCESS in 3m 03s\n- openstack-tox-py27 https://logs.opendev.org/20/674320/1/check/openstack-tox-py27/73a0a48/ : SUCCESS in 3m 30s\n- openstack-tox-py35 https://logs.opendev.org/20/674320/1/check/openstack-tox-py35/3b683f9/ : SUCCESS in 4m 46s\n- openstack-tox-py36 https://logs.opendev.org/20/674320/1/check/openstack-tox-py36/1de6cdb/ : SUCCESS in 3m 39s\n- openstack-tox-py37 https://logs.opendev.org/20/674320/1/check/openstack-tox-py37/ba0581b/ : SUCCESS in 3m 10s\n- openstack-tox-docs https://logs.opendev.org/20/674320/1/check/openstack-tox-docs/fdd11f7/html/ : SUCCESS in 2m 44s\n- swiftclient-swift-functional https://logs.opendev.org/20/674320/1/check/swiftclient-swift-functional/a9ce91b/ : SUCCESS in 27m 41s\n- swiftclient-functional https://logs.opendev.org/20/674320/1/check/swiftclient-functional/4f6b950/ : SUCCESS in 24m 06s\n- swiftclient-functional-py2 https://logs.opendev.org/20/674320/1/check/swiftclient-functional-py2/2fcb5c2/ : SUCCESS in 23m 06s","accounts_in_message":[],"_revision_number":1},{"id":"46452410ee36d2e13f2d05b44783fd821e9cffe9","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-08-07 22:35:57.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nGood bug, and thanks for writing up a patch! One thought on tactics though...","accounts_in_message":[],"_revision_number":1},{"id":"399290a52b0196dc0cb9c0fbca2d87e0605bb2bf","author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"date":"2019-08-12 14:44:51.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"59a403f7cb32126548fa329a2734b74a0459ede7","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-05 21:36:58.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nMy Beazley ed.4 claims that __del__ is a wrong place to clean up file descriptors for a couple of reasons. First, it can throw spurious NameError, and second, it may not be called at all, in case of a circular reference. If that happens, we\u0027re back to where we started wrt. the warnings about leaking sockets. Beazley\u0027s suggestion is the same as Tim\u0027s - track ownership, invoke explicit close() methods.\n\nOne other thing: we had some issues with closing descriptors on the server side. So yes, close() basically imports the issues of free() from C, only with the complication of Python\u0027s exceptions. But it seems like the lesser evil to me.\n\nI may be persuaded otherwise if we at least get \"except Exception\" killed.","accounts_in_message":[],"_revision_number":1},{"id":"7b12354e75c2417151aabd9ed5e3ad100461ef69","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-05 21:38:18.000000000","message":"Patch Set 1:\n\nsee also https://review.opendev.org/674133","accounts_in_message":[],"_revision_number":1},{"id":"3ca4069119c1c5675c797ac9440302942d11cfa9","author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"date":"2019-12-05 21:55:28.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"660cf0bc183fc2c1ad2c56cb81791086398928b1","author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"date":"2019-12-05 22:08:26.000000000","message":"Patch Set 1:\n\nI personally don\u0027t have a preference and just want the warnings to stop. When I looked into this previously, it only affected some of the clients because you\u0027re handling the session automagically rather than requiring one be passed in.  Most consumers of the clients aren\u0027t going to call some cleanup so __del__ is all I could find that would trigger at the end.  Opening and closing a session for each request has a bunch of perf overhead so TBH i think there are other issues that could be addressed rather than arguing over something like this.","accounts_in_message":[],"_revision_number":1},{"id":"07276916466c7d703b1b2e1bffc7b278fc5ce1c4","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-07 19:02:49.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"96be854da5fdd6edfabc46112fb30644972e85fe","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-09 02:11:20.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e9941fe6ea43f6ad33621967f0d54b377738e7d9","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-09 02:17:29.000000000","message":"Patch Set 2:\n\nAllright. I refreshed myself about the issues with __del__. I am convinced that in this case we\u0027re not going to trip them (for the lack of backlinks that create circular references). The use of this hook is fraught with peril in general, but this seems simple enough.\n\nHowever, I still hate  except Exception  it that definitely needed to go. I think I understand the logic: I deduce that Alex tried to avoid adding new exceptions in case session.close() throws. However, I do not agree. The cure is worse than disease. We certainly want to know if something goes wrong unexpectedly.\n\nI ran a few functional tests and found that double-close does not throw anything at all.\n\nTherefore, I\u0027m uploading a version with __del__ but without except Exception. Alex, is that acceptable to you? Give me +1 or -1, please.","accounts_in_message":[],"_revision_number":2},{"id":"078ff6a0902fb0fbfa043e5f99a2f3ccb3297f06","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-09 03:33:15.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/a4b8951d0be74ba39a507ad6f2940c7e : SUCCESS in 1h 21m 19s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2254d664009941aa99c2101e9ce864de : SUCCESS in 3m 18s\n- openstack-tox-pypy https://zuul.opendev.org/t/openstack/build/58b23a3b96294e1fa20bc3c50cb82e3e : FAILURE in 2m 56s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fafefac336bb49ce88b657bbb3b6ffea : SUCCESS in 2m 45s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/069ab04140304cacbe798cedaca9d894 : SUCCESS in 2m 29s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/93283d392de7469783feeeea791e0974 : SUCCESS in 2m 46s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/97b1d11009b24946bea8e1a372328be5 : SUCCESS in 3m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3bb7a8efc95e4da78b4e696252c95728 : SUCCESS in 4m 25s\n- swiftclient-swift-functional https://zuul.opendev.org/t/openstack/build/645dbbbd90a249108c49f5031a5dc3af : SUCCESS in 26m 53s\n- swiftclient-functional https://zuul.opendev.org/t/openstack/build/a5fab3ad0bc840638b80791b60490597 : SUCCESS in 16m 42s\n- swiftclient-functional-py2 https://zuul.opendev.org/t/openstack/build/5f59b5e241fa4faba59de05b540f6ca9 : SUCCESS in 18m 49s","accounts_in_message":[],"_revision_number":2},{"id":"0b6239fcf69f099659eb3376c465345d4964ca04","author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"date":"2019-12-09 14:55:18.000000000","message":"Patch Set 2: Code-Review+1\n\nsure","accounts_in_message":[],"_revision_number":2},{"id":"1c2fc3c555da30fc7dc7afe14caac73dee2f46b8","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2019-12-09 20:44:05.000000000","message":"Patch Set 2: Code-Review+2\n\nTim?","accounts_in_message":[],"_revision_number":2},{"id":"62c49757f2dd545626647cc6c2ce2a13764fe056","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2019-12-09 20:59:31.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\nWFM. I also tried doing it in the top-level functions at some point, but ran into trouble with get_object when we hand the caller a stream... this\u0027ll do.","accounts_in_message":[],"_revision_number":2},{"id":"c3e782b3b3ce3d54b2d9a7ad461c58c2387dd0ab","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-09 21:18:33.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"cac2cb5b30ec4b881760b556e7ade903b8a5c8a1","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-09 23:39:57.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":2},{"id":"173e4f66a9b1a9c10f48a86fc3765bbfabc9b82d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-09 23:39:57.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/4ff11648b7f84569a1a09353084f2c77 : SUCCESS in 1h 33m 05s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/794bca629bb54d489694ec04b5d8e8ee : SUCCESS in 5m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3126c6fe29dc4fe38153be5ea99c52df : SUCCESS in 4m 14s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/e82c5cfec6644fabb2dc9aa5ea7bec83 : SUCCESS in 7m 11s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e41c1f520ddb46ed8086fcdb8e958fe2 : SUCCESS in 3m 22s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/3fdd2e4015de4c3d82c91a64b3e7be7f : SUCCESS in 4m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/962e3899a36242a29bc6f2b0fad24429 : SUCCESS in 5m 27s\n- swiftclient-swift-functional https://zuul.opendev.org/t/openstack/build/d06adf79f89043bf80664685538c51de : SUCCESS in 28m 48s\n- swiftclient-functional https://zuul.opendev.org/t/openstack/build/8125b053f6ab40a5b663b689536baf9e : SUCCESS in 18m 29s\n- swiftclient-functional-py2 https://zuul.opendev.org/t/openstack/build/fbffe21081ec427f9e7b5f33a2ffc171 : SUCCESS in 18m 01s","accounts_in_message":[],"_revision_number":2},{"id":"bc8b935e60b65eccef31070cfe4e23d7e60d4983","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-12-09 23:41:22.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/924b843a7a4a41a28947bfbdb1314e50 : SUCCESS in 1m 04s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"1f26c5736949e1c3b57c024a315e33fc419f126e","revisions":{"4022084913f10db9752a55b16ec8075131c8ab4c":{"kind":"REWORK","_number":1,"created":"2019-08-02 14:22:49.000000000","uploader":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"ref":"refs/changes/20/674320/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/20/674320/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/1"}}},"commit":{"parents":[{"commit":"4f320bd0345e8790a634f5713b1ed77ae3271c54","subject":"Merge \"Fix up requests so we can send non-RFC-compliant headers on py3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4f320bd0345e8790a634f5713b1ed77ae3271c54"}]}],"author":{"name":"Alex Schultz","email":"aschultz@redhat.com","date":"2019-08-02 14:20:56.000000000","tz":-360},"committer":{"name":"Alex Schultz","email":"aschultz@redhat.com","date":"2019-08-02 14:22:48.000000000","tz":-360},"subject":"Cleanup session on delete","message":"Cleanup session on delete\n\nIf an external http connection was not passed into the client, we create\none with a requests.Session() on our own. Once this is used, it may still\nhave an open connection when the connection is closed. We need to\nhandle the closing of the requests.Session() ourselves if we created\none. If you do not close it, a ResourceWarning may be reported about the\nsocket that is left open.\n\nChange-Id: I200ad0cdc8b7999c3f5521b9a822122bd18714bf\nCloses-Bug: #1838775\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4022084913f10db9752a55b16ec8075131c8ab4c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4022084913f10db9752a55b16ec8075131c8ab4c"}]},"branch":"refs/heads/master"},"1f26c5736949e1c3b57c024a315e33fc419f126e":{"kind":"REWORK","_number":2,"created":"2019-12-09 02:11:20.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/20/674320/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-swiftclient","ref":"refs/changes/20/674320/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-swiftclient refs/changes/20/674320/2"}}},"commit":{"parents":[{"commit":"4f320bd0345e8790a634f5713b1ed77ae3271c54","subject":"Merge \"Fix up requests so we can send non-RFC-compliant headers on py3\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/4f320bd0345e8790a634f5713b1ed77ae3271c54"}]}],"author":{"name":"Alex Schultz","email":"aschultz@redhat.com","date":"2019-08-02 14:20:56.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2019-12-09 02:11:17.000000000","tz":-360},"subject":"Cleanup session on delete","message":"Cleanup session on delete\n\nIf an external http connection was not passed into the client, we\ncreate one with a requests.Session() on our own. Once this is used,\nit may still have an open socket when the connection is closed. We need\nto handle the closing of the requests.Session() ourselves if we created\none. If you do not close it, a ResourceWarning may be reported about the\nsocket that is left open.\n\nChange-Id: I200ad0cdc8b7999c3f5521b9a822122bd18714bf\nCloses-Bug: #1838775\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/1f26c5736949e1c3b57c024a315e33fc419f126e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-swiftclient/commit/1f26c5736949e1c3b57c024a315e33fc419f126e"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
