)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"f03d110d8a0187b4e7921f98a5fcaf9fa95b31d0","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"systemd: handle running container without systemd unit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"MariaDB bootstrap has a phase where first MariaDB container"},{"line_number":10,"context_line":"is running with Galera bootstrap - after a check that WSREP"},{"line_number":11,"context_line":"is synced is successful - we restart the container."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"0aebe8b6_5cf91088","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":41},"updated":"2023-08-07 08:28:55.000000000","message":"the first?","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94f52de900019c39244f6cdddc4fe0a7446dbadc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"systemd: handle running container without systemd unit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"MariaDB bootstrap has a phase where first MariaDB container"},{"line_number":10,"context_line":"is running with Galera bootstrap - after a check that WSREP"},{"line_number":11,"context_line":"is synced is successful - we restart the container."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"55778718_b90923a8","line":9,"range":{"start_line":9,"start_character":36,"end_line":9,"end_character":41},"in_reply_to":"0aebe8b6_5cf91088","updated":"2023-08-08 13:53:45.000000000","message":"Done","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"f03d110d8a0187b4e7921f98a5fcaf9fa95b31d0","unresolved":true,"context_lines":[{"line_number":11,"context_line":"is synced is successful - we restart the container."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The bootstrap container is named mariadb and running with"},{"line_number":14,"context_line":"docker_restart_policy: \"no\" - the restarted should be running"},{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"0270f517_5121f40e","line":14,"range":{"start_line":14,"start_character":30,"end_line":14,"end_character":43},"updated":"2023-08-07 08:28:55.000000000","message":"the restarted container?","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94f52de900019c39244f6cdddc4fe0a7446dbadc","unresolved":false,"context_lines":[{"line_number":11,"context_line":"is synced is successful - we restart the container."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The bootstrap container is named mariadb and running with"},{"line_number":14,"context_line":"docker_restart_policy: \"no\" - the restarted should be running"},{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"ee9ec886_8b6b04d3","line":14,"range":{"start_line":14,"start_character":30,"end_line":14,"end_character":43},"in_reply_to":"0270f517_5121f40e","updated":"2023-08-08 13:53:45.000000000","message":"Done","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"9c6a0d3e2dc2b2f0dd34ccdb68ae3d8c123bb4ad","unresolved":true,"context_lines":[{"line_number":14,"context_line":"docker_restart_policy: \"no\" - the restarted should be running"},{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"},{"line_number":18,"context_line":"stopped - so stopping was always a success - and container would be"},{"line_number":19,"context_line":"killed with SIGKILL on removal (which obviously breaks MariaDB)."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"5205383f_808a1fca","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":42},"updated":"2023-08-07 08:29:59.000000000","message":"nit: created a systemd unit","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94f52de900019c39244f6cdddc4fe0a7446dbadc","unresolved":false,"context_lines":[{"line_number":14,"context_line":"docker_restart_policy: \"no\" - the restarted should be running"},{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"},{"line_number":18,"context_line":"stopped - so stopping was always a success - and container would be"},{"line_number":19,"context_line":"killed with SIGKILL on removal (which obviously breaks MariaDB)."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"988ec33e_559a2fbc","line":17,"range":{"start_line":17,"start_character":27,"end_line":17,"end_character":42},"in_reply_to":"5205383f_808a1fca","updated":"2023-08-08 13:53:45.000000000","message":"Done","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"9c6a0d3e2dc2b2f0dd34ccdb68ae3d8c123bb4ad","unresolved":true,"context_lines":[{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"},{"line_number":18,"context_line":"stopped - so stopping was always a success - and container would be"},{"line_number":19,"context_line":"killed with SIGKILL on removal (which obviously breaks MariaDB)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #2029613"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"37c11acc_f385285a","line":18,"range":{"start_line":18,"start_character":49,"end_line":18,"end_character":58},"updated":"2023-08-07 08:29:59.000000000","message":"nit: the container","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94f52de900019c39244f6cdddc4fe0a7446dbadc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"in systemd."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before this patch the code created systemd unit but it was initially"},{"line_number":18,"context_line":"stopped - so stopping was always a success - and container would be"},{"line_number":19,"context_line":"killed with SIGKILL on removal (which obviously breaks MariaDB)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #2029613"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"b882a5ec_8aca9b58","line":18,"range":{"start_line":18,"start_character":49,"end_line":18,"end_character":58},"in_reply_to":"37c11acc_f385285a","updated":"2023-08-08 13:53:45.000000000","message":"Done","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e93cb9ccd886767ccc3e225c9481e55ad10ed70a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":44,"id":"e31d0016_ebb96301","updated":"2023-08-09 06:43:42.000000000","message":"ok, docker.wait is not going to fix it, let\u0027s go back to a working version.","commit_id":"9acdda6bee534e82d3e6663c32c787a3f054b3ac"}],"ansible/module_utils/kolla_docker_worker.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"89ae1b907eb47713fe3e04d6c1a0f3b725990081","unresolved":true,"context_lines":[{"line_number":236,"context_line":"    def remove_container(self):"},{"line_number":237,"context_line":"        self.changed |\u003d self.systemd.remove_unit_file()"},{"line_number":238,"context_line":"        container \u003d self.check_container()"},{"line_number":239,"context_line":"        if container:"},{"line_number":240,"context_line":"            self.changed \u003d True"},{"line_number":241,"context_line":"            # NOTE(jeffrey4l): in some case, docker failed to remove container"},{"line_number":242,"context_line":"            # filesystem and raise error.  But the container info is"}],"source_content_type":"text/x-python","patch_set":25,"id":"634758b8_68bae8e7","line":239,"updated":"2023-08-04 09:08:15.000000000","message":"This change doesn\u0027t make sense to me, the variable is used only here, so the old version is simpler and does the same.","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b71694e09b5ab52ccde39bf91c2df5bdfbd88029","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    def remove_container(self):"},{"line_number":237,"context_line":"        self.changed |\u003d self.systemd.remove_unit_file()"},{"line_number":238,"context_line":"        container \u003d self.check_container()"},{"line_number":239,"context_line":"        if container:"},{"line_number":240,"context_line":"            self.changed \u003d True"},{"line_number":241,"context_line":"            # NOTE(jeffrey4l): in some case, docker failed to remove container"},{"line_number":242,"context_line":"            # filesystem and raise error.  But the container info is"}],"source_content_type":"text/x-python","patch_set":25,"id":"9fb5afa9_a4081f28","line":239,"in_reply_to":"634758b8_68bae8e7","updated":"2023-08-04 10:20:00.000000000","message":"Done","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"89ae1b907eb47713fe3e04d6c1a0f3b725990081","unresolved":true,"context_lines":[{"line_number":242,"context_line":"            # filesystem and raise error.  But the container info is"},{"line_number":243,"context_line":"            # disappeared already. If this happens, assume the container is"},{"line_number":244,"context_line":"            # removed."},{"line_number":245,"context_line":"            # NOTE(mnasiadka): check if container is not up before removing"},{"line_number":246,"context_line":"            try:"},{"line_number":247,"context_line":"                self.dc.remove_container("},{"line_number":248,"context_line":"                    container\u003dself.params.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"c9a5a4e5_e9144c86","line":245,"updated":"2023-08-04 09:08:15.000000000","message":"What\u0027s the meaning of this comment? This check doesn\u0027t seem to be happening in the code that follows, or is it just well hidden?","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b71694e09b5ab52ccde39bf91c2df5bdfbd88029","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            # filesystem and raise error.  But the container info is"},{"line_number":243,"context_line":"            # disappeared already. If this happens, assume the container is"},{"line_number":244,"context_line":"            # removed."},{"line_number":245,"context_line":"            # NOTE(mnasiadka): check if container is not up before removing"},{"line_number":246,"context_line":"            try:"},{"line_number":247,"context_line":"                self.dc.remove_container("},{"line_number":248,"context_line":"                    container\u003dself.params.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":25,"id":"ff359690_0d421804","line":245,"in_reply_to":"c9a5a4e5_e9144c86","updated":"2023-08-04 10:20:00.000000000","message":"reworked","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"89ae1b907eb47713fe3e04d6c1a0f3b725990081","unresolved":true,"context_lines":[{"line_number":452,"context_line":"            self.changed \u003d True"},{"line_number":453,"context_line":"            if self.params.get(\u0027restart_policy\u0027) !\u003d \u0027no\u0027:"},{"line_number":454,"context_line":"                # If container is running and there is no systemd unit"},{"line_number":455,"context_line":"                # we need to stop the container using docker command"},{"line_number":456,"context_line":"                if not self.systemd.check_unit_file():"},{"line_number":457,"context_line":"                    self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":458,"context_line":"                    delay \u003d 5"}],"source_content_type":"text/x-python","patch_set":25,"id":"d2e2fffb_ec081019","line":455,"updated":"2023-08-04 09:08:15.000000000","message":"So iiuc this is just for upgrading from the old setup and we can add a note to drop this special case again in the next cycle?","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"88fd6e37370925b67bcd9a2be80f7b1704e087e5","unresolved":false,"context_lines":[{"line_number":452,"context_line":"            self.changed \u003d True"},{"line_number":453,"context_line":"            if self.params.get(\u0027restart_policy\u0027) !\u003d \u0027no\u0027:"},{"line_number":454,"context_line":"                # If container is running and there is no systemd unit"},{"line_number":455,"context_line":"                # we need to stop the container using docker command"},{"line_number":456,"context_line":"                if not self.systemd.check_unit_file():"},{"line_number":457,"context_line":"                    self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":458,"context_line":"                    delay \u003d 5"}],"source_content_type":"text/x-python","patch_set":25,"id":"aec557dd_935827ee","line":455,"in_reply_to":"6bce9015_cfade29a","updated":"2023-08-04 10:20:19.000000000","message":"Done","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"64517895ee18a20ec744571b2affa0676ca66d53","unresolved":true,"context_lines":[{"line_number":452,"context_line":"            self.changed \u003d True"},{"line_number":453,"context_line":"            if self.params.get(\u0027restart_policy\u0027) !\u003d \u0027no\u0027:"},{"line_number":454,"context_line":"                # If container is running and there is no systemd unit"},{"line_number":455,"context_line":"                # we need to stop the container using docker command"},{"line_number":456,"context_line":"                if not self.systemd.check_unit_file():"},{"line_number":457,"context_line":"                    self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":458,"context_line":"                    delay \u003d 5"}],"source_content_type":"text/x-python","patch_set":25,"id":"6bce9015_cfade29a","line":455,"in_reply_to":"d2e2fffb_ec081019","updated":"2023-08-04 09:18:34.000000000","message":"No, we always do this in the mariadb role - https://github.com/openstack/kolla-ansible/blob/e0b212d72de8aac1d5fbbc6562f69ef0190a80b9/ansible/roles/mariadb/handlers/main.yml#L17","commit_id":"3e5a9acf60427cbbe959c9fa1bf46b70c8a2f700"},{"author":{"_account_id":23084,"name":"Bartosz Bezak","email":"bartosz@stackhpc.com","username":"b.bezak"},"change_message_id":"8ca0069f76ea3d7f72dbde87e81dd17025de9e7b","unresolved":true,"context_lines":[{"line_number":254,"context_line":"                        self.dc.remove_container("},{"line_number":255,"context_line":"                            container\u003dself.params.get(\u0027name\u0027),"},{"line_number":256,"context_line":"                            force\u003dTrue)"},{"line_number":257,"context_line":"                finally:"},{"line_number":258,"context_line":"                    self.systemd.remove_unit_file()"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def parse_dimensions(self, dimensions):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9d8db18f_81fc9eaa","line":257,"updated":"2023-08-04 12:42:30.000000000","message":"it will try to remove unit file in each run of the loop? I guess it should after proper removal, so better that finally would be outside of loop","commit_id":"007e9a5e4cba2ae05bf64dd49da4f60d186ed67a"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7403eebaacf4a8de1c727703be4c70739f29bcae","unresolved":false,"context_lines":[{"line_number":254,"context_line":"                        self.dc.remove_container("},{"line_number":255,"context_line":"                            container\u003dself.params.get(\u0027name\u0027),"},{"line_number":256,"context_line":"                            force\u003dTrue)"},{"line_number":257,"context_line":"                finally:"},{"line_number":258,"context_line":"                    self.systemd.remove_unit_file()"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def parse_dimensions(self, dimensions):"}],"source_content_type":"text/x-python","patch_set":27,"id":"a23ce5b4_7be8c872","line":257,"in_reply_to":"9d8db18f_81fc9eaa","updated":"2023-08-04 13:15:24.000000000","message":"Done","commit_id":"007e9a5e4cba2ae05bf64dd49da4f60d186ed67a"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"f03d110d8a0187b4e7921f98a5fcaf9fa95b31d0","unresolved":true,"context_lines":[{"line_number":240,"context_line":"            # disappeared already. If this happens, assume the container is"},{"line_number":241,"context_line":"            # removed."},{"line_number":242,"context_line":"            attempts \u003d 0"},{"line_number":243,"context_line":"            max_attempts \u003d 5"},{"line_number":244,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":245,"context_line":"                try:"},{"line_number":246,"context_line":"                    self.dc.remove_container("},{"line_number":247,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"},{"line_number":248,"context_line":"                    break"},{"line_number":249,"context_line":"                except docker.errors.APIError:"},{"line_number":250,"context_line":"                    attempts +\u003d 1"},{"line_number":251,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":252,"context_line":"                        try:"},{"line_number":253,"context_line":"                            self.dc.remove_container("},{"line_number":254,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"},{"line_number":255,"context_line":"                                force\u003dTrue)"},{"line_number":256,"context_line":"                        except docker.errors.APIError:"},{"line_number":257,"context_line":"                            if self.check_container():"},{"line_number":258,"context_line":"                                raise"},{"line_number":259,"context_line":"                    pass"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"            self.systemd.remove_unit_file()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"70bd49b3_650568b4","line":259,"range":{"start_line":243,"start_character":12,"end_line":259,"end_character":24},"updated":"2023-08-07 08:28:55.000000000","message":"I have some trouble in understanding, not what this does but why it is done this way, so hopefully you can answer my questions:\n\nwhy 5 attempts and not 10, or any other number?\n\nwhy do we have a special try block for max_attempts? why not always use force removal?\n\nwhat should the caller do, if docker raises an API error?","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"9e838380a5ef2147da091a04a7d9ab1def6e72f3","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            # disappeared already. If this happens, assume the container is"},{"line_number":241,"context_line":"            # removed."},{"line_number":242,"context_line":"            attempts \u003d 0"},{"line_number":243,"context_line":"            max_attempts \u003d 5"},{"line_number":244,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":245,"context_line":"                try:"},{"line_number":246,"context_line":"                    self.dc.remove_container("},{"line_number":247,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"},{"line_number":248,"context_line":"                    break"},{"line_number":249,"context_line":"                except docker.errors.APIError:"},{"line_number":250,"context_line":"                    attempts +\u003d 1"},{"line_number":251,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":252,"context_line":"                        try:"},{"line_number":253,"context_line":"                            self.dc.remove_container("},{"line_number":254,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"},{"line_number":255,"context_line":"                                force\u003dTrue)"},{"line_number":256,"context_line":"                        except docker.errors.APIError:"},{"line_number":257,"context_line":"                            if self.check_container():"},{"line_number":258,"context_line":"                                raise"},{"line_number":259,"context_line":"                    pass"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"            self.systemd.remove_unit_file()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"55e5650e_8db83c34","line":259,"range":{"start_line":243,"start_character":12,"end_line":259,"end_character":24},"in_reply_to":"32050bde_2b4cdbc0","updated":"2023-08-07 09:07:16.000000000","message":"thanks for the provided context.","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e619523db623c19d67d7b864782c597b495d07bc","unresolved":true,"context_lines":[{"line_number":240,"context_line":"            # disappeared already. If this happens, assume the container is"},{"line_number":241,"context_line":"            # removed."},{"line_number":242,"context_line":"            attempts \u003d 0"},{"line_number":243,"context_line":"            max_attempts \u003d 5"},{"line_number":244,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":245,"context_line":"                try:"},{"line_number":246,"context_line":"                    self.dc.remove_container("},{"line_number":247,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"},{"line_number":248,"context_line":"                    break"},{"line_number":249,"context_line":"                except docker.errors.APIError:"},{"line_number":250,"context_line":"                    attempts +\u003d 1"},{"line_number":251,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":252,"context_line":"                        try:"},{"line_number":253,"context_line":"                            self.dc.remove_container("},{"line_number":254,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"},{"line_number":255,"context_line":"                                force\u003dTrue)"},{"line_number":256,"context_line":"                        except docker.errors.APIError:"},{"line_number":257,"context_line":"                            if self.check_container():"},{"line_number":258,"context_line":"                                raise"},{"line_number":259,"context_line":"                    pass"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"            self.systemd.remove_unit_file()"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"32050bde_2b4cdbc0","line":259,"range":{"start_line":243,"start_character":12,"end_line":259,"end_character":24},"in_reply_to":"70bd49b3_650568b4","updated":"2023-08-07 08:53:05.000000000","message":"Too many questions in one Gerrit comment ;-)\n1. That\u0027s usually enough tries to remove a container without using force just after we send dc.stop in stop_container(), if it fails - we do it with force, that causes SIGKILL instead of SIGTERM\n2. Second try block is because of what is commented in L238 - and force removal causes SIGKILL, which makes some services unhappy, e.g. MariaDB\n3. The same that it did for the last x releases - we\u0027re not changing that part of code","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"f03d110d8a0187b4e7921f98a5fcaf9fa95b31d0","unresolved":true,"context_lines":[{"line_number":258,"context_line":"                                raise"},{"line_number":259,"context_line":"                    pass"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"            self.systemd.remove_unit_file()"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def parse_dimensions(self, dimensions):"},{"line_number":264,"context_line":"        # When the data object contains types such as"}],"source_content_type":"text/x-python","patch_set":32,"id":"eb89db51_5a58b310","line":261,"range":{"start_line":261,"start_character":0,"end_line":261,"end_character":1},"updated":"2023-08-07 08:28:55.000000000","message":"we unconditionally remove the unit file here, do we really want that? shouldn\u0027t it be part of the above block?","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"94f52de900019c39244f6cdddc4fe0a7446dbadc","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                                raise"},{"line_number":259,"context_line":"                    pass"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"            self.systemd.remove_unit_file()"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def parse_dimensions(self, dimensions):"},{"line_number":264,"context_line":"        # When the data object contains types such as"}],"source_content_type":"text/x-python","patch_set":32,"id":"63055925_a6c2849e","line":261,"range":{"start_line":261,"start_character":0,"end_line":261,"end_character":1},"in_reply_to":"eb89db51_5a58b310","updated":"2023-08-08 13:53:45.000000000","message":"Actually we remove it in the first line of the function and that\u0027s enough I guess. ;-)","commit_id":"1ee9e42674258c63f2500b485ea291dac5373edc"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"dc93e6d0eb7913bcef34a48140addc471877d71d","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                except docker.errors.APIError:"},{"line_number":249,"context_line":"                    attempts +\u003d 1"},{"line_number":250,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":251,"context_line":"                        # NOTE(jeffrey4l): in some case, docker failed to"},{"line_number":252,"context_line":"                        # remove container filesystem and raise error.  But the"},{"line_number":253,"context_line":"                        # container info is disappeared already. If this"},{"line_number":254,"context_line":"                        # happens assume the container is removed."},{"line_number":255,"context_line":"                        try:"},{"line_number":256,"context_line":"                            self.dc.remove_container("},{"line_number":257,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":45,"id":"421fcd3c_79edbd55","line":254,"range":{"start_line":251,"start_character":0,"end_line":254,"end_character":66},"updated":"2023-08-09 07:33:37.000000000","message":"is this something that is still actually happening in modern docker versions?\nWhere can I read more about it? is there some bug report about this?\n\nBecause this reads like a bug in docker, no?\n\nmight this be related to cadvisor usage? see:\n\nhttps://docs.docker.com/storage/troubleshooting_volume_errors/\n\nmaybe we can actually fix this behaviour?","commit_id":"23e126f2f917296c5f026cdbca7092c8655b7db2"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6065d0f74965d919b9f4a88adcf08eb611aec7dc","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                except docker.errors.APIError:"},{"line_number":249,"context_line":"                    attempts +\u003d 1"},{"line_number":250,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":251,"context_line":"                        # NOTE(jeffrey4l): in some case, docker failed to"},{"line_number":252,"context_line":"                        # remove container filesystem and raise error.  But the"},{"line_number":253,"context_line":"                        # container info is disappeared already. If this"},{"line_number":254,"context_line":"                        # happens assume the container is removed."},{"line_number":255,"context_line":"                        try:"},{"line_number":256,"context_line":"                            self.dc.remove_container("},{"line_number":257,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":45,"id":"a428122f_d45ceb70","line":254,"range":{"start_line":251,"start_character":0,"end_line":254,"end_character":66},"in_reply_to":"421fcd3c_79edbd55","updated":"2023-08-09 11:36:36.000000000","message":"We could try to remove it as a followup and test if it resurfaces in master for a couple of weeks/months - I\u0027d prefer not to break stable branches","commit_id":"23e126f2f917296c5f026cdbca7092c8655b7db2"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"798e2aa295a58afc17b599f2ce6429b7b0478bf4","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                except docker.errors.APIError:"},{"line_number":249,"context_line":"                    attempts +\u003d 1"},{"line_number":250,"context_line":"                    if attempts \u003d\u003d max_attempts:"},{"line_number":251,"context_line":"                        # NOTE(jeffrey4l): in some case, docker failed to"},{"line_number":252,"context_line":"                        # remove container filesystem and raise error.  But the"},{"line_number":253,"context_line":"                        # container info is disappeared already. If this"},{"line_number":254,"context_line":"                        # happens assume the container is removed."},{"line_number":255,"context_line":"                        try:"},{"line_number":256,"context_line":"                            self.dc.remove_container("},{"line_number":257,"context_line":"                                container\u003dself.params.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":45,"id":"8a785af0_70aa04c8","line":254,"range":{"start_line":251,"start_character":0,"end_line":254,"end_character":66},"in_reply_to":"a428122f_d45ceb70","updated":"2023-08-10 09:00:12.000000000","message":"Ack","commit_id":"23e126f2f917296c5f026cdbca7092c8655b7db2"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"07b01b246b8894ae10ed7dd503c3787f6ca71fd9","unresolved":true,"context_lines":[{"line_number":259,"context_line":"                        except docker.errors.APIError:"},{"line_number":260,"context_line":"                            if self.check_container():"},{"line_number":261,"context_line":"                                raise"},{"line_number":262,"context_line":"                    sleep(delay)"},{"line_number":263,"context_line":"                    pass"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def parse_dimensions(self, dimensions):"}],"source_content_type":"text/x-python","patch_set":46,"id":"6e529d23_7839e35a","line":262,"range":{"start_line":262,"start_character":20,"end_line":262,"end_character":32},"updated":"2023-08-10 09:04:26.000000000","message":"imho the code needs a comment why we sleep here.\nit\u0027s not obvious to me, is this to paper over some race condition/to allow for container teardown which takes time or what?","commit_id":"88a18b013cef78e422002e3c477a9eadd918dcaf"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c8ee45738b89b46d9aec31cb8deb0a6cf2cedf63","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                        except docker.errors.APIError:"},{"line_number":260,"context_line":"                            if self.check_container():"},{"line_number":261,"context_line":"                                raise"},{"line_number":262,"context_line":"                    sleep(delay)"},{"line_number":263,"context_line":"                    pass"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def parse_dimensions(self, dimensions):"}],"source_content_type":"text/x-python","patch_set":46,"id":"b717d6e7_37273ec4","line":262,"range":{"start_line":262,"start_character":20,"end_line":262,"end_character":32},"in_reply_to":"6e529d23_7839e35a","updated":"2023-08-16 06:21:26.000000000","message":"moved sleep to waiting for container to be stopped","commit_id":"88a18b013cef78e422002e3c477a9eadd918dcaf"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":236,"context_line":"    def remove_container(self):"},{"line_number":237,"context_line":"        self.changed |\u003d self.systemd.remove_unit_file()"},{"line_number":238,"context_line":"        if self.check_container():"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"            attempts \u003d 0"},{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"}],"source_content_type":"text/x-python","patch_set":56,"id":"59568db5_6066edb8","line":239,"updated":"2023-08-17 09:18:52.000000000","message":"Should we keep self.changed \u003d True here?","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    def remove_container(self):"},{"line_number":237,"context_line":"        self.changed |\u003d self.systemd.remove_unit_file()"},{"line_number":238,"context_line":"        if self.check_container():"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"            attempts \u003d 0"},{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"}],"source_content_type":"text/x-python","patch_set":56,"id":"a6c8d8cd_0c476cc5","line":239,"in_reply_to":"59568db5_6066edb8","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"            attempts \u003d 0"},{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":243,"context_line":"                try:"},{"line_number":244,"context_line":"                    self.dc.remove_container("},{"line_number":245,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"}],"source_content_type":"text/x-python","patch_set":56,"id":"2a91501e_7ffb2269","line":242,"updated":"2023-08-17 09:18:52.000000000","message":"This could be quite a tight loop without any sleep()","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"            attempts \u003d 0"},{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":243,"context_line":"                try:"},{"line_number":244,"context_line":"                    self.dc.remove_container("},{"line_number":245,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"}],"source_content_type":"text/x-python","patch_set":56,"id":"88e54688_19f7b5b7","line":242,"in_reply_to":"2a91501e_7ffb2269","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":243,"context_line":"                try:"},{"line_number":244,"context_line":"                    self.dc.remove_container("},{"line_number":245,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"},{"line_number":246,"context_line":"                    break"},{"line_number":247,"context_line":"                except docker.errors.APIError:"}],"source_content_type":"text/x-python","patch_set":56,"id":"d27b7279_f42a3b0d","line":244,"updated":"2023-08-17 09:18:52.000000000","message":"In what circumstances might this fail, where are retry might succeed?","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            max_attempts \u003d 5"},{"line_number":242,"context_line":"            while attempts \u003c max_attempts:"},{"line_number":243,"context_line":"                try:"},{"line_number":244,"context_line":"                    self.dc.remove_container("},{"line_number":245,"context_line":"                        container\u003dself.params.get(\u0027name\u0027))"},{"line_number":246,"context_line":"                    break"},{"line_number":247,"context_line":"                except docker.errors.APIError:"}],"source_content_type":"text/x-python","patch_set":56,"id":"84d4e437_1a90b41a","line":244,"in_reply_to":"d27b7279_f42a3b0d","updated":"2023-08-17 11:06:07.000000000","message":"Reworked this to original, we need just to cover stopping properly.","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":258,"context_line":"                        except docker.errors.APIError:"},{"line_number":259,"context_line":"                            if self.check_container():"},{"line_number":260,"context_line":"                                raise"},{"line_number":261,"context_line":"                    pass"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def parse_dimensions(self, dimensions):"},{"line_number":264,"context_line":"        # When the data object contains types such as"}],"source_content_type":"text/x-python","patch_set":56,"id":"4768c6ee_766d94c3","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":24},"updated":"2023-08-17 09:18:52.000000000","message":"nit: unnecessary pass","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                        except docker.errors.APIError:"},{"line_number":259,"context_line":"                            if self.check_container():"},{"line_number":260,"context_line":"                                raise"},{"line_number":261,"context_line":"                    pass"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def parse_dimensions(self, dimensions):"},{"line_number":264,"context_line":"        # When the data object contains types such as"}],"source_content_type":"text/x-python","patch_set":56,"id":"67c7d626_ca3e3287","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":24},"in_reply_to":"4768c6ee_766d94c3","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":459,"context_line":"            self.changed \u003d True"},{"line_number":460,"context_line":"            if (self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027 or"},{"line_number":461,"context_line":"                    not self.systemd.check_unit_file()):"},{"line_number":462,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":463,"context_line":"                delay \u003d 5"},{"line_number":464,"context_line":"                elapsed \u003d 0"},{"line_number":465,"context_line":"                while True:"}],"source_content_type":"text/x-python","patch_set":56,"id":"f698a083_1e665dc0","line":462,"updated":"2023-08-17 09:18:52.000000000","message":"In my testing I found that this is blocking.","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            self.changed \u003d True"},{"line_number":460,"context_line":"            if (self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027 or"},{"line_number":461,"context_line":"                    not self.systemd.check_unit_file()):"},{"line_number":462,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":463,"context_line":"                delay \u003d 5"},{"line_number":464,"context_line":"                elapsed \u003d 0"},{"line_number":465,"context_line":"                while True:"}],"source_content_type":"text/x-python","patch_set":56,"id":"dfa5ccb0_fe98942a","line":462,"in_reply_to":"f698a083_1e665dc0","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"635fcd55d72d484b073e31e6e99960ccdf92a8b7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":457,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":458,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":459,"context_line":"            self.changed \u003d True"},{"line_number":460,"context_line":"            if (self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027 or"},{"line_number":461,"context_line":"                    not self.systemd.check_unit_file()):"},{"line_number":462,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":463,"context_line":"                delay \u003d 5"},{"line_number":464,"context_line":"                elapsed \u003d 0"}],"source_content_type":"text/x-python","patch_set":57,"id":"895a7874_839ef54a","line":461,"range":{"start_line":460,"start_character":0,"end_line":461,"end_character":56},"updated":"2023-08-17 09:18:52.000000000","message":"IMO this depends more on the running container than the options passed to the module (particularly if it\u0027s using the remove_container action directly).\n\nI\u0027d ignore the restart policy and just check the unit file.","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":457,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":458,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":459,"context_line":"            self.changed \u003d True"},{"line_number":460,"context_line":"            if (self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027 or"},{"line_number":461,"context_line":"                    not self.systemd.check_unit_file()):"},{"line_number":462,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":463,"context_line":"                delay \u003d 5"},{"line_number":464,"context_line":"                elapsed \u003d 0"}],"source_content_type":"text/x-python","patch_set":57,"id":"d1d19042_c894962a","line":461,"range":{"start_line":460,"start_character":0,"end_line":461,"end_character":56},"in_reply_to":"895a7874_839ef54a","updated":"2023-08-17 11:06:07.000000000","message":"Done","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":471,"context_line":"                        sleep(delay)"},{"line_number":472,"context_line":"                        elapsed +\u003d delay"},{"line_number":473,"context_line":"            else:"},{"line_number":474,"context_line":"                self.systemd.stop()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def stop_and_remove_container(self):"},{"line_number":477,"context_line":"        container \u003d self.check_container()"}],"source_content_type":"text/x-python","patch_set":57,"id":"12eb0383_b38971d4","line":474,"updated":"2023-08-17 09:18:52.000000000","message":"Also noting that we\u0027re not checking the return value of this, which may be False.","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":471,"context_line":"                        sleep(delay)"},{"line_number":472,"context_line":"                        elapsed +\u003d delay"},{"line_number":473,"context_line":"            else:"},{"line_number":474,"context_line":"                self.systemd.stop()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def stop_and_remove_container(self):"},{"line_number":477,"context_line":"        container \u003d self.check_container()"}],"source_content_type":"text/x-python","patch_set":57,"id":"90c00afc_5cd8d6d8","line":474,"updated":"2023-08-17 09:18:52.000000000","message":"This one is non-blocking, but you\u0027re handling that in the systemd worker.","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                        sleep(delay)"},{"line_number":472,"context_line":"                        elapsed +\u003d delay"},{"line_number":473,"context_line":"            else:"},{"line_number":474,"context_line":"                self.systemd.stop()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def stop_and_remove_container(self):"},{"line_number":477,"context_line":"        container \u003d self.check_container()"}],"source_content_type":"text/x-python","patch_set":57,"id":"9d3aff20_c4e20f34","line":474,"in_reply_to":"12eb0383_b38971d4","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                        sleep(delay)"},{"line_number":472,"context_line":"                        elapsed +\u003d delay"},{"line_number":473,"context_line":"            else:"},{"line_number":474,"context_line":"                self.systemd.stop()"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def stop_and_remove_container(self):"},{"line_number":477,"context_line":"        container \u003d self.check_container()"}],"source_content_type":"text/x-python","patch_set":57,"id":"ac3f857d_eafab580","line":474,"in_reply_to":"90c00afc_5cd8d6d8","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"14973bb68ed158cfcff25b4eab494415b4a3b1ef","unresolved":true,"context_lines":[{"line_number":449,"context_line":"            if not self.systemd.check_unit_file():"},{"line_number":450,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":451,"context_line":"            else:"},{"line_number":452,"context_line":"                self.systemd.create_unit_file()"},{"line_number":453,"context_line":"                self.systemd.stop()"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def stop_and_remove_container(self):"}],"source_content_type":"text/x-python","patch_set":60,"id":"27106032_8c723367","line":452,"updated":"2023-08-17 14:56:53.000000000","message":"No need to create the unit file - we just checked it exists.","commit_id":"8c2550fba2b0bf27155fb1c071abb876c95776c9"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"7e246583bf928234fb7dad9f7a9c0763f7390c1d","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            if not self.systemd.check_unit_file():"},{"line_number":450,"context_line":"                self.dc.stop(name, timeout\u003dgraceful_timeout)"},{"line_number":451,"context_line":"            else:"},{"line_number":452,"context_line":"                self.systemd.create_unit_file()"},{"line_number":453,"context_line":"                self.systemd.stop()"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def stop_and_remove_container(self):"}],"source_content_type":"text/x-python","patch_set":60,"id":"7e7dc256_0854c566","line":452,"in_reply_to":"27106032_8c723367","updated":"2023-08-17 14:57:52.000000000","message":"Done","commit_id":"8c2550fba2b0bf27155fb1c071abb876c95776c9"}],"ansible/module_utils/kolla_systemd_worker.py":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"a95822f0a5f5f74cc311c958623d07eaf45ce787","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def wait_for_job(self, job):"},{"line_number":196,"context_line":"        job_id \u003d job.split(\u0027/org/freedesktop/systemd1/job/\u0027)[1]"},{"line_number":197,"context_line":"        "},{"line_number":198,"context_line":"        #NOTE(mnasiadka): When GetJob returns an exception it means"},{"line_number":199,"context_line":"        #                 it\u0027s complete"},{"line_number":200,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":19,"id":"5723ffcb_0314735b","line":197,"range":{"start_line":197,"start_character":0,"end_line":197,"end_character":8},"updated":"2023-08-03 07:51:39.000000000","message":"extra whitespace","commit_id":"c2bf9d84bf2cd7105624d5ee0e932408b0358e9f"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"84987010156b40971d590b6e57bcfa1adf22e647","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def wait_for_job(self, job):"},{"line_number":196,"context_line":"        job_id \u003d job.split(\u0027/org/freedesktop/systemd1/job/\u0027)[1]"},{"line_number":197,"context_line":"        "},{"line_number":198,"context_line":"        #NOTE(mnasiadka): When GetJob returns an exception it means"},{"line_number":199,"context_line":"        #                 it\u0027s complete"},{"line_number":200,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":19,"id":"ace2688e_9265baf0","line":197,"range":{"start_line":197,"start_character":0,"end_line":197,"end_character":8},"in_reply_to":"5723ffcb_0314735b","updated":"2023-08-03 08:01:07.000000000","message":"Done","commit_id":"c2bf9d84bf2cd7105624d5ee0e932408b0358e9f"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f28b1b91c16bc0776cc5b6a7b442ed176dc66422","unresolved":true,"context_lines":[{"line_number":137,"context_line":"            getattr(self.manager, function)(*args)"},{"line_number":138,"context_line":"            return True"},{"line_number":139,"context_line":"        except Exception:"},{"line_number":140,"context_line":"            return False"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def check_unit_file(self):"},{"line_number":143,"context_line":"        return os.path.isfile("}],"source_content_type":"text/x-python","patch_set":57,"id":"078d919a_b73830bc","line":140,"updated":"2023-08-17 09:18:52.000000000","message":"This makes it quite easy to ignore errors. We should check the result of the stop() call.","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"c97b6283ba0e2dd7704b428ed9588ea336d310f6","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            getattr(self.manager, function)(*args)"},{"line_number":138,"context_line":"            return True"},{"line_number":139,"context_line":"        except Exception:"},{"line_number":140,"context_line":"            return False"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def check_unit_file(self):"},{"line_number":143,"context_line":"        return os.path.isfile("}],"source_content_type":"text/x-python","patch_set":57,"id":"0ccc6457_aeec2580","line":140,"in_reply_to":"078d919a_b73830bc","updated":"2023-08-17 11:06:07.000000000","message":"Ack","commit_id":"1eb5af33401f73e6590fda3533b6c835e09835ec"}],"tests/check-logs.sh":[{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4359f2fd2f191a8d4f7f0a4fead4063b756a20dd","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    sudo egrep \"\\[$2\\]:\" $1"},{"line_number":23,"context_line":"}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"function check_docker_log_file_for_signal_9 {"},{"line_number":26,"context_line":"    sudo journalctl --no-pager -u ${CONTAINER_ENGINE}.service | grep \"signal 9\""},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-sh","patch_set":55,"id":"08f697c4_41959361","line":25,"range":{"start_line":25,"start_character":9,"end_line":25,"end_character":43},"updated":"2023-08-16 07:34:53.000000000","message":"what about check_docker_log_file_for_sigkill ?","commit_id":"445934b14029803e4efa2b4206536222ad50f905"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"3ccf961774fea99d952eec8abf3d5401f575d692","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    sudo egrep \"\\[$2\\]:\" $1"},{"line_number":23,"context_line":"}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"function check_docker_log_file_for_signal_9 {"},{"line_number":26,"context_line":"    sudo journalctl --no-pager -u ${CONTAINER_ENGINE}.service | grep \"signal 9\""},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-sh","patch_set":55,"id":"fb728486_469c1fa2","line":25,"range":{"start_line":25,"start_character":9,"end_line":25,"end_character":43},"in_reply_to":"08f697c4_41959361","updated":"2023-08-16 07:38:48.000000000","message":"Done","commit_id":"445934b14029803e4efa2b4206536222ad50f905"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4359f2fd2f191a8d4f7f0a4fead4063b756a20dd","unresolved":true,"context_lines":[{"line_number":83,"context_line":"    echo \u003e\u003e $fluentd_error_summary_file"},{"line_number":84,"context_line":"fi"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"if check_docker_log_file_for_signal_9 \u003e/dev/null; then"},{"line_number":87,"context_line":"    any_critical\u003d1"},{"line_number":88,"context_line":"    echo \"(critical) Found containers killed using signal 9 in docker logs.\""},{"line_number":89,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":55,"id":"23469eac_9609cbb8","line":86,"range":{"start_line":86,"start_character":4,"end_line":86,"end_character":37},"updated":"2023-08-16 07:34:53.000000000","message":"ditto","commit_id":"445934b14029803e4efa2b4206536222ad50f905"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"3ccf961774fea99d952eec8abf3d5401f575d692","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    echo \u003e\u003e $fluentd_error_summary_file"},{"line_number":84,"context_line":"fi"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"if check_docker_log_file_for_signal_9 \u003e/dev/null; then"},{"line_number":87,"context_line":"    any_critical\u003d1"},{"line_number":88,"context_line":"    echo \"(critical) Found containers killed using signal 9 in docker logs.\""},{"line_number":89,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":55,"id":"485f75fe_d5e4bab4","line":86,"range":{"start_line":86,"start_character":4,"end_line":86,"end_character":37},"in_reply_to":"23469eac_9609cbb8","updated":"2023-08-16 07:38:48.000000000","message":"Done","commit_id":"445934b14029803e4efa2b4206536222ad50f905"}]}
