)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"dd53b72cbcc70826cb5126cd586bb5d4b363ffa7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ca822c59_90e5e310","updated":"2023-11-08 16:43:35.000000000","message":"Leaving one question and minor comment. -1 because of the target we have to clean up.\n\nAlso, do you mind reporting a bug and create a release note, because the issue might affect multiple deployments ?","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"f5fa474b14697f2aa158ba21ea035378beb24d84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4337f2f8_174035c2","updated":"2023-11-09 23:40:05.000000000","message":"recheck","commit_id":"5c2118c9882eb81a3f8a7a7e875e865a77418960"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"26be67d2da815fcb8dec1331cdf167b3f40dfdd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"3ca0c706_d435f2d8","updated":"2024-01-11 16:33:15.000000000","message":"Looks good to merge.","commit_id":"bae5561d4d3ded0a7c22f4a3e90b2a8e535a5384"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"025efeab45ccc8b6c67a77522ca8d10add288061","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ead8bc41_0fda4ddc","updated":"2023-11-13 16:52:32.000000000","message":"The latest implementation comes from me so I\u0027ll avoid voting first +2.","commit_id":"bae5561d4d3ded0a7c22f4a3e90b2a8e535a5384"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5822a7fd9acb3c5b1765dd14189c80dee41a97e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a3d3f144_4188a22b","updated":"2023-12-22 14:19:28.000000000","message":"readding +1 since this still looks good to me","commit_id":"bae5561d4d3ded0a7c22f4a3e90b2a8e535a5384"}],"oslo_cache/_memcache_pool.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"dd53b72cbcc70826cb5126cd586bb5d4b363ffa7","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        self._acquired \u003d 0"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __del__(self):"},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            conn \u003d self.queue.pop().connection"},{"line_number":99,"context_line":"            self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"0f64ac0a_511fdf51","line":99,"range":{"start_line":97,"start_character":12,"end_line":99,"end_character":42},"updated":"2023-11-08 16:43:35.000000000","message":"this looks like you close only one connection in the pool when the pool instance is deleted. Shouldn\u0027t we loop over the all connections ?","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"262c65f00ce053c5cfc6ef6337a721be4ced080d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self._acquired \u003d 0"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __del__(self):"},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            conn \u003d self.queue.pop().connection"},{"line_number":99,"context_line":"            self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"954533b8_57352612","line":99,"range":{"start_line":97,"start_character":12,"end_line":99,"end_character":42},"in_reply_to":"0f64ac0a_511fdf51","updated":"2023-11-09 15:21:53.000000000","message":"Done","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"dd53b72cbcc70826cb5126cd586bb5d4b363ffa7","unresolved":true,"context_lines":[{"line_number":98,"context_line":"            conn \u003d self.queue.pop().connection"},{"line_number":99,"context_line":"            self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _create_connection(self):"},{"line_number":104,"context_line":"        \"\"\"Returns a connection instance."}],"source_content_type":"text/x-python","patch_set":4,"id":"aefdd254_6498da54","line":101,"range":{"start_line":101,"start_character":39,"end_line":101,"end_character":45},"updated":"2023-11-08 16:43:35.000000000","message":"`Unable` (capitilized) would be better for log message.","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fd8b9e7817a4b7473a15e24e4e30f11ed6f3df9c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            conn \u003d self.queue.pop().connection"},{"line_number":99,"context_line":"            self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _create_connection(self):"},{"line_number":104,"context_line":"        \"\"\"Returns a connection instance."}],"source_content_type":"text/x-python","patch_set":4,"id":"328efd4c_e8ef1fec","line":101,"range":{"start_line":101,"start_character":39,"end_line":101,"end_character":45},"in_reply_to":"4e800775_fc511b4d","updated":"2023-11-09 15:21:37.000000000","message":"Done","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"53aa0013a6b7f14f57a5cf092e5b09eac1f6bcca","unresolved":true,"context_lines":[{"line_number":98,"context_line":"            conn \u003d self.queue.pop().connection"},{"line_number":99,"context_line":"            self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _create_connection(self):"},{"line_number":104,"context_line":"        \"\"\"Returns a connection instance."}],"source_content_type":"text/x-python","patch_set":4,"id":"4e800775_fc511b4d","line":101,"range":{"start_line":101,"start_character":39,"end_line":101,"end_character":45},"in_reply_to":"aefdd254_6498da54","updated":"2023-11-09 15:17:58.000000000","message":"This is not addressed.","commit_id":"791f0a9a99fb0bc1cc19d1f0cdd4a58d63e397e7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"53aa0013a6b7f14f57a5cf092e5b09eac1f6bcca","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __del__(self):"},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            while conn :\u003d self.queue.pop().connection:"},{"line_number":99,"context_line":"                self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"}],"source_content_type":"text/x-python","patch_set":5,"id":"004c9dd3_48ece990","line":98,"range":{"start_line":98,"start_character":43,"end_line":98,"end_character":53},"updated":"2023-11-09 15:17:58.000000000","message":"I believe this does not work because queue.pop raises IndexError in case the queue is empty.","commit_id":"2ae2bfc9f110fd96f09515525bd76b775e8ea510"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fd8b9e7817a4b7473a15e24e4e30f11ed6f3df9c","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __del__(self):"},{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            while conn :\u003d self.queue.pop().connection:"},{"line_number":99,"context_line":"                self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"}],"source_content_type":"text/x-python","patch_set":5,"id":"115aaeeb_2cf5a463","line":98,"range":{"start_line":98,"start_character":43,"end_line":98,"end_character":53},"in_reply_to":"004c9dd3_48ece990","updated":"2023-11-09 15:21:37.000000000","message":"Done","commit_id":"2ae2bfc9f110fd96f09515525bd76b775e8ea510"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"53aa0013a6b7f14f57a5cf092e5b09eac1f6bcca","unresolved":true,"context_lines":[{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            while conn :\u003d self.queue.pop().connection:"},{"line_number":99,"context_line":"                self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _create_connection(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a18ac53b_daa5e7e1","line":100,"range":{"start_line":100,"start_character":15,"end_line":100,"end_character":24},"updated":"2023-11-09 15:17:58.000000000","message":"If you put try-except at the top level them you might get some connections left in case one connection failed to be destroyed. I believe we should put this inside while loop.","commit_id":"2ae2bfc9f110fd96f09515525bd76b775e8ea510"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fd8b9e7817a4b7473a15e24e4e30f11ed6f3df9c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        try:"},{"line_number":98,"context_line":"            while conn :\u003d self.queue.pop().connection:"},{"line_number":99,"context_line":"                self._destroy_connection(conn)"},{"line_number":100,"context_line":"        except Exception as e:"},{"line_number":101,"context_line":"            self._do_log(LOG.warning, \"unable to cleanup connections %s\", e)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _create_connection(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"83a73eee_8414960c","line":100,"range":{"start_line":100,"start_character":15,"end_line":100,"end_character":24},"in_reply_to":"a18ac53b_daa5e7e1","updated":"2023-11-09 15:21:37.000000000","message":"Done","commit_id":"2ae2bfc9f110fd96f09515525bd76b775e8ea510"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dac89de30ad6089e27f3af24aba60fe848d34d0","unresolved":true,"context_lines":[{"line_number":106,"context_line":"                break"},{"line_number":107,"context_line":"            except Exception as e:"},{"line_number":108,"context_line":"                self._do_log("},{"line_number":109,"context_line":"                    LOG.warning, \"Unable to cleanup a connection: %s\", e)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _create_connection(self):"},{"line_number":112,"context_line":"        \"\"\"Returns a connection instance."}],"source_content_type":"text/x-python","patch_set":10,"id":"c60ba36b_1490cd68","line":109,"updated":"2023-11-13 14:42:33.000000000","message":"we chatted about this on irc and ya the logic is correct.\ni was orginaly concered that we could get an excption form \nself._destroy_connection(conn) and keep looping indefintly \nbut we onely try each conenction once and we pop it form the queue before calling\nself._destroy_connection(conn)\nso this will definatly terminate provided \nself._destroy_connection(conn) returns or raises\n\nso +1","commit_id":"5c2118c9882eb81a3f8a7a7e875e865a77418960"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b94497a984d3d47122043a8a62ff497401cc2d85","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                break"},{"line_number":107,"context_line":"            except Exception as e:"},{"line_number":108,"context_line":"                self._do_log("},{"line_number":109,"context_line":"                    LOG.warning, \"Unable to cleanup a connection: %s\", e)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _create_connection(self):"},{"line_number":112,"context_line":"        \"\"\"Returns a connection instance."}],"source_content_type":"text/x-python","patch_set":10,"id":"b62e2299_1c9b4a45","line":109,"in_reply_to":"c60ba36b_1490cd68","updated":"2023-12-22 03:05:11.000000000","message":"Done","commit_id":"5c2118c9882eb81a3f8a7a7e875e865a77418960"}]}
