)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"eff9076a0c30279a669936766aad1b08faf63cbe","unresolved":true,"context_lines":[{"line_number":12,"context_line":"flow will get the paths wwn,when loop the failed path,get wwn"},{"line_number":13,"context_line":"command will be failed and raise exception,this will cause"},{"line_number":14,"context_line":"the instance failed."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1919132"},{"line_number":17,"context_line":"Change-Id: Ic2853641c50afb1456222ea2eb9fcb3766678331"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"1e75d10a_35e0b4c1","line":15,"updated":"2021-06-03 22:31:21.000000000","message":":nit: Do you mind adding a quick description of the fix in the commit msg?","commit_id":"e97b860c941367441cd11ca44cc087ada95da2ae"}],"os_brick/initiator/connectors/fibre_channel.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dec804e3920f4ab20cb265e5e4bd9d5417704dbe","unresolved":true,"context_lines":[{"line_number":343,"context_line":"            if (self.use_multipath and not mpath_path"},{"line_number":344,"context_line":"                    and self.check_valid_device(path)):"},{"line_number":345,"context_line":"                try:"},{"line_number":346,"context_line":"                    wwn \u003d self._linuxscsi.get_scsi_wwn(path)"},{"line_number":347,"context_line":"                except Exception:"},{"line_number":348,"context_line":"                    LOG.warning(\"Get wwn of device: %s failed.\" % real_path)"},{"line_number":349,"context_line":"                    wwn \u003d None"}],"source_content_type":"text/x-python","patch_set":13,"id":"c603d8ff_cbf7ef07","line":346,"updated":"2021-06-07 15:23:11.000000000","message":"In my opinion we should be using \"get_sysfs_wwid\" method instead (like we do in iSCSI) as it is faster and more resilient.","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dec804e3920f4ab20cb265e5e4bd9d5417704dbe","unresolved":true,"context_lines":[{"line_number":346,"context_line":"                    wwn \u003d self._linuxscsi.get_scsi_wwn(path)"},{"line_number":347,"context_line":"                except Exception:"},{"line_number":348,"context_line":"                    LOG.warning(\"Get wwn of device: %s failed.\" % real_path)"},{"line_number":349,"context_line":"                    wwn \u003d None"},{"line_number":350,"context_line":"                if wwn:"},{"line_number":351,"context_line":"                    mpath_path \u003d self._linuxscsi.find_multipath_device_path("},{"line_number":352,"context_line":"                        wwn)"}],"source_content_type":"text/x-python","patch_set":13,"id":"c317d8f5_69a5e7ac","line":349,"updated":"2021-06-07 15:23:11.000000000","message":"nit: Assignment to wwn  should be added before the for loop, like we do with mpath_path","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dec804e3920f4ab20cb265e5e4bd9d5417704dbe","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        LOG.debug(\"devices to remove \u003d %s\", devices)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba7868c4_37e28daf","line":355,"updated":"2021-06-07 15:23:11.000000000","message":"-1: This introduces a new bug for multipathed connections when all paths are down. Since we can\u0027t get the wwn using scsi_id we won\u0027t try to get the mpath_path and we won\u0027t try to flush the multipath, so in the end we will be removing the individual devices underneath the multipath DM, which will most likely lead to data loss.","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"af14c04e5c73af960ef65793320db7566dca5b26","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        LOG.debug(\"devices to remove \u003d %s\", devices)"}],"source_content_type":"text/x-python","patch_set":13,"id":"e06c683c_41df7f2a","line":355,"in_reply_to":"ba7868c4_37e28daf","updated":"2021-06-28 07:10:38.000000000","message":"Yes, it is, but if replase the get_scsi_wwn to get_sysfs_wwid, i think it won\u0027t introduces the bug. because get_sysfs_wwid is read the device file, this don\u0027t raise excepthion.","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e5fc0fc45107018cc521c540116b44b69b21917b","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        LOG.debug(\"devices to remove \u003d %s\", devices)"}],"source_content_type":"text/x-python","patch_set":13,"id":"42b0ee0e_4c11abf0","line":355,"in_reply_to":"d2a118b8_2b9e23e1","updated":"2021-08-30 15:56:03.000000000","message":"It will not be lost if we do the right thing, which is abort the operation.\nSince we don\u0027t remove the underlying devices there is an opportunity for the network (or whatever is failing) to be fixed and the next disconnect call to succeed.","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"36c076b17cb3a2c7b1d485a0340be32add6be313","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        LOG.debug(\"devices to remove \u003d %s\", devices)"}],"source_content_type":"text/x-python","patch_set":13,"id":"d2a118b8_2b9e23e1","line":355,"in_reply_to":"e06c683c_41df7f2a","updated":"2021-08-30 00:58:12.000000000","message":"I think that, if all path was down, the flush multipath won\u0027t success, and the data will loss too.","commit_id":"192052c4d6aa078ce4f517c2cc33f5d4ebe17030"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e5fc0fc45107018cc521c540116b44b69b21917b","unresolved":true,"context_lines":[{"line_number":342,"context_line":"            real_path \u003d self._linuxscsi.get_name_from_path(path)"},{"line_number":343,"context_line":"            if (self.use_multipath and not mpath_path"},{"line_number":344,"context_line":"                    and self.check_valid_device(path)):"},{"line_number":345,"context_line":"                try:"},{"line_number":346,"context_line":"                    wwn \u003d self._linuxscsi.get_scsi_wwn(path)"},{"line_number":347,"context_line":"                except Exception:"},{"line_number":348,"context_line":"                    LOG.warning(\"Get wwn of device: %s failed.\" % real_path)"},{"line_number":349,"context_line":"                    wwn \u003d None"},{"line_number":350,"context_line":"                if wwn:"},{"line_number":351,"context_line":"                    mpath_path \u003d self._linuxscsi.find_multipath_device_path("},{"line_number":352,"context_line":"                        wwn)"}],"source_content_type":"text/x-python","patch_set":16,"id":"8ab7de81_0c2a5d66","line":349,"range":{"start_line":345,"start_character":0,"end_line":349,"end_character":30},"updated":"2021-08-30 15:56:03.000000000","message":"-1: This should only be called if wwn is not already set, and we shouldn\u0027t set it to None on failure since we already do that on L340","commit_id":"d768c6ee76216031c8cc68b022a1208ad3ebb12c"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"83e8cce42e9c38bef658005be19349bf4fa598cb","unresolved":false,"context_lines":[{"line_number":342,"context_line":"            real_path \u003d self._linuxscsi.get_name_from_path(path)"},{"line_number":343,"context_line":"            if (self.use_multipath and not mpath_path"},{"line_number":344,"context_line":"                    and self.check_valid_device(path)):"},{"line_number":345,"context_line":"                try:"},{"line_number":346,"context_line":"                    wwn \u003d self._linuxscsi.get_scsi_wwn(path)"},{"line_number":347,"context_line":"                except Exception:"},{"line_number":348,"context_line":"                    LOG.warning(\"Get wwn of device: %s failed.\" % real_path)"},{"line_number":349,"context_line":"                    wwn \u003d None"},{"line_number":350,"context_line":"                if wwn:"},{"line_number":351,"context_line":"                    mpath_path \u003d self._linuxscsi.find_multipath_device_path("},{"line_number":352,"context_line":"                        wwn)"}],"source_content_type":"text/x-python","patch_set":16,"id":"fbc083f2_f558711a","line":349,"range":{"start_line":345,"start_character":0,"end_line":349,"end_character":30},"in_reply_to":"8ab7de81_0c2a5d66","updated":"2021-09-15 02:56:45.000000000","message":"Done","commit_id":"d768c6ee76216031c8cc68b022a1208ad3ebb12c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e5fc0fc45107018cc521c540116b44b69b21917b","unresolved":true,"context_lines":[{"line_number":351,"context_line":"                    mpath_path \u003d self._linuxscsi.find_multipath_device_path("},{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"4151686f_fd66f8b5","line":354,"updated":"2021-08-30 15:56:03.000000000","message":"-1: As mentioned on path #13 this introduces a regression where we could be saying that the detach was successful leaving a multipath device mapper in the system (leftover device) but removing all the individual paths.\n\nThis is not acceptable, on multipath flush failure the operation has to be aborted and we cannot proceed.","commit_id":"d768c6ee76216031c8cc68b022a1208ad3ebb12c"},{"author":{"_account_id":30092,"name":"Xuan Yandong","email":"xuanyd@outlook.com","username":"xuanyandong"},"change_message_id":"83e8cce42e9c38bef658005be19349bf4fa598cb","unresolved":true,"context_lines":[{"line_number":351,"context_line":"                    mpath_path \u003d self._linuxscsi.find_multipath_device_path("},{"line_number":352,"context_line":"                        wwn)"},{"line_number":353,"context_line":"                if mpath_path:"},{"line_number":354,"context_line":"                    self._linuxscsi.flush_multipath_device(mpath_path)"},{"line_number":355,"context_line":"            dev_info \u003d self._linuxscsi.get_device_info(real_path)"},{"line_number":356,"context_line":"            devices.append(dev_info)"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"8c2d376e_9a30fce4","line":354,"in_reply_to":"4151686f_fd66f8b5","updated":"2021-09-15 02:56:45.000000000","message":"Thanks for review, i update it, if wwn is none, means all path was exception, then we can rasie an exception.","commit_id":"d768c6ee76216031c8cc68b022a1208ad3ebb12c"}]}
