)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"efd6ea1dfbabf31ab264d6f8d68ff25c596e8c81","unresolved":true,"context_lines":[{"line_number":25,"context_line":"but we have portals in \u0027connecting\u0027 state we wait for the next retry of"},{"line_number":26,"context_line":"the nvme linux driver. Specifically we wait 5 more seconds that the"},{"line_number":27,"context_line":"interval between retries."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Closes-Bug: #2035695"},{"line_number":30,"context_line":"Change-Id: Ife710f52c339d67f2dcb160c20ad0d75480a1f48"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f84cf9bd_9ecde3c8","line":28,"updated":"2023-11-15 02:03:22.000000000","message":"Shouldn\u0027t you wait 5.3 seconds or something?","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6ca20ae2c427585ab9646b94445cf367a2f7cc93","unresolved":false,"context_lines":[{"line_number":25,"context_line":"but we have portals in \u0027connecting\u0027 state we wait for the next retry of"},{"line_number":26,"context_line":"the nvme linux driver. Specifically we wait 5 more seconds that the"},{"line_number":27,"context_line":"interval between retries."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Closes-Bug: #2035695"},{"line_number":30,"context_line":"Change-Id: Ife710f52c339d67f2dcb160c20ad0d75480a1f48"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c045e612_d7746787","line":28,"in_reply_to":"f84cf9bd_9ecde3c8","updated":"2023-11-15 12:41:01.000000000","message":"Why 5.3?  If you think 5 seconds is not enough for the NVMe-oF to connect a volume we can increase it. I\u0027ll increate is to 10 seconds and create a constant so the value is not hidden within the code (no magic number).","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e42b4dbf0fdcb9cddab175a0655adf78a1d95d1b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"and then:"},{"line_number":14,"context_line":"- Create instance"},{"line_number":15,"context_line":"- Attach 2 volumes"},{"line_number":16,"context_line":"- Delete instance (this leaves the subsystem in connecting state [1])"},{"line_number":17,"context_line":"- Create instance"},{"line_number":18,"context_line":"- Attach volume \u003c\u003d\u003d FAILS"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"84c2b4ed_5b1a5121","line":16,"range":{"start_line":16,"start_character":18,"end_line":16,"end_character":69},"updated":"2024-01-06 09:13:15.000000000","message":"thanks for including the reference, makes it more clear where the problem arises from.","commit_id":"ec22c32de6820184d7737c5af70e573c0634cd38"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"efd6ea1dfbabf31ab264d6f8d68ff25c596e8c81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"907e2089_655bf0e7","updated":"2023-11-15 02:03:22.000000000","message":"needs fixing mypy though","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"2cf4091d9b244a3db7a3f891efdcbbf65d65a62a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ca329768_3b0800b4","updated":"2023-11-15 17:08:50.000000000","message":"oops, a tiniest nitpick","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f8c2e8da3a9b93dd6c8bb2a423925778a771d805","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"71457428_bf2cf6c8","updated":"2023-11-16 09:27:57.000000000","message":"retest - tempest-full-py3 unrelated MySQL errors","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"1772da0d563df47d335fdd1e6bbe47a74f593358","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"25e1fe09_ba453f78","updated":"2023-12-28 14:39:59.000000000","message":"run Pure Storage CI","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"24b193e1046bf4851b4b8ca91e71cb25cf96f199","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"266d4263_89d311c5","updated":"2023-11-15 14:23:20.000000000","message":"run Pure Storage CI","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0458a78e8f6b34ac25eb7a16af25074fa5f826e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"76022928_77b0f032","updated":"2024-01-09 05:22:13.000000000","message":"Code and tests LGTM.","commit_id":"ec22c32de6820184d7737c5af70e573c0634cd38"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"e32b81cd41ca2e67f4c8e5805c422f2e4c68a4c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8f31f664_d3987005","updated":"2024-01-05 22:10:27.000000000","message":"The only thing I\u0027d do differently is use a uniform checking for live. This version open-codes is_live(), presumably because the state is getting compared with \u0027CONNECTING\u0027 in the same if: statement. But it\u0027s nothing really. The definition if is_live() is right there in the same file, so there\u0027s not enough obfuscation for complaints.","commit_id":"ec22c32de6820184d7737c5af70e573c0634cd38"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e42b4dbf0fdcb9cddab175a0655adf78a1d95d1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2afcd366_41089e13","updated":"2024-01-06 09:13:15.000000000","message":"code, tests and releasenote LGTM!","commit_id":"ec22c32de6820184d7737c5af70e573c0634cd38"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"50b9539cc62634cb756ccc74864e0edc4cd85f41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d030c013_60d0b647","updated":"2024-01-05 19:48:22.000000000","message":"run Pure Storage CI","commit_id":"ec22c32de6820184d7737c5af70e573c0634cd38"}],"os_brick/initiator/connectors/nvmeof.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6ca20ae2c427585ab9646b94445cf367a2f7cc93","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    @property"},{"line_number":181,"context_line":"    def reconnect_delay(self) -\u003e Optional[int]:"},{"line_number":182,"context_line":"        if self.controller:"},{"line_number":183,"context_line":"            return int(ctrl_property(\u0027reconnect_delay\u0027, self.controller))"},{"line_number":184,"context_line":"        return None"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def get_device(self) -\u003e Optional[str]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"f3e84158_559cc780","line":183,"in_reply_to":"70f84e9d_6434b90b","updated":"2023-11-15 12:41:01.000000000","message":"Done","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"efd6ea1dfbabf31ab264d6f8d68ff25c596e8c81","unresolved":true,"context_lines":[{"line_number":180,"context_line":"    @property"},{"line_number":181,"context_line":"    def reconnect_delay(self) -\u003e Optional[int]:"},{"line_number":182,"context_line":"        if self.controller:"},{"line_number":183,"context_line":"            return int(ctrl_property(\u0027reconnect_delay\u0027, self.controller))"},{"line_number":184,"context_line":"        return None"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def get_device(self) -\u003e Optional[str]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"70f84e9d_6434b90b","line":183,"in_reply_to":"a44de2fd_0a428431","updated":"2023-11-15 02:03:22.000000000","message":"\u003e mypy: error: Argument 1 to \"int\" has\n\nLog is not visible but I suspect it doesn\u0027t like that int() can throw a TypeError if anything goes wrong with sysfs and sysfs_property returns None. This may be easier to code around than trying to convince mypy.","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"efd6ea1dfbabf31ab264d6f8d68ff25c596e8c81","unresolved":true,"context_lines":[{"line_number":929,"context_line":"                    break  # We are connected"},{"line_number":930,"context_line":""},{"line_number":931,"context_line":"        if not connected and reconnecting_portals:"},{"line_number":932,"context_line":"            delay \u003d 5 + max(p.reconnect_delay for p in reconnecting_portals)"},{"line_number":933,"context_line":"            LOG.debug(\u0027Waiting %s seconds for some nvme controllers to \u0027"},{"line_number":934,"context_line":"                      \u0027reconnect\u0027, delay)"},{"line_number":935,"context_line":"            timeout \u003d time.time() + delay"}],"source_content_type":"text/x-python","patch_set":1,"id":"6ec9fdd7_8b953b29","line":932,"updated":"2023-11-15 02:03:22.000000000","message":"max([0] + [p.reconnect_delay for p in reconnecting_portals]) maybe?","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6ca20ae2c427585ab9646b94445cf367a2f7cc93","unresolved":false,"context_lines":[{"line_number":929,"context_line":"                    break  # We are connected"},{"line_number":930,"context_line":""},{"line_number":931,"context_line":"        if not connected and reconnecting_portals:"},{"line_number":932,"context_line":"            delay \u003d 5 + max(p.reconnect_delay for p in reconnecting_portals)"},{"line_number":933,"context_line":"            LOG.debug(\u0027Waiting %s seconds for some nvme controllers to \u0027"},{"line_number":934,"context_line":"                      \u0027reconnect\u0027, delay)"},{"line_number":935,"context_line":"            timeout \u003d time.time() + delay"}],"source_content_type":"text/x-python","patch_set":1,"id":"a45b72ac_bf41c466","line":932,"in_reply_to":"6ec9fdd7_8b953b29","updated":"2023-11-15 12:41:01.000000000","message":"I\u0027ve resolved it by not allowing to return None in the property","commit_id":"68ce5f641ca2e5f8569dcabf5da2d792cc4fa5c1"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"2cf4091d9b244a3db7a3f891efdcbbf65d65a62a","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    CONNECTING \u003d \u0027connecting\u0027"},{"line_number":136,"context_line":"    # Default value of reconnect_delay in sysfs"},{"line_number":137,"context_line":"    DEFAULT_RECONNECT_DELAY \u003d 10"},{"line_number":138,"context_line":"    MISSING \u003d None  # Unkown or not present in the system"},{"line_number":139,"context_line":"    controller: Optional[str] \u003d None  # Don\u0027t know controller name on start"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __str__(self) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":2,"id":"99fbb053_00233946","line":138,"updated":"2023-11-15 17:08:50.000000000","message":"Sorry, but could you move this so it does not split the states? MISSING goes together with CONNECTING and LIVE.","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d7dd518d8a16c30cbf429a53fda4d3a6dcb5d4b2","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    CONNECTING \u003d \u0027connecting\u0027"},{"line_number":136,"context_line":"    # Default value of reconnect_delay in sysfs"},{"line_number":137,"context_line":"    DEFAULT_RECONNECT_DELAY \u003d 10"},{"line_number":138,"context_line":"    MISSING \u003d None  # Unkown or not present in the system"},{"line_number":139,"context_line":"    controller: Optional[str] \u003d None  # Don\u0027t know controller name on start"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __str__(self) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":2,"id":"cb954ed5_902bf22b","line":138,"in_reply_to":"99fbb053_00233946","updated":"2024-01-05 15:44:11.000000000","message":"Definitely.","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"df509c9ecd3b87e2bd1946837d4f9cf1c81bbd11","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    CONNECTING \u003d \u0027connecting\u0027"},{"line_number":136,"context_line":"    # Default value of reconnect_delay in sysfs"},{"line_number":137,"context_line":"    DEFAULT_RECONNECT_DELAY \u003d 10"},{"line_number":138,"context_line":"    MISSING \u003d None  # Unkown or not present in the system"},{"line_number":139,"context_line":"    controller: Optional[str] \u003d None  # Don\u0027t know controller name on start"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __str__(self) -\u003e str:"}],"source_content_type":"text/x-python","patch_set":2,"id":"92be309f_3b529e49","line":138,"in_reply_to":"cb954ed5_902bf22b","updated":"2024-01-05 15:46:20.000000000","message":"Done","commit_id":"691c07c7f2077d5b4d80e23dc438d28d5244f553"}]}
