)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"a409af1e59d78ac00b84d7d30bc6b9771b00e81f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4f5a8620_0fa9c840","updated":"2025-06-22 07:50:19.000000000","message":"recheck","commit_id":"6eb829b5bcb68c95018dcfbe91df149cac0b4b8e"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"6f2f88c99bb1f84ad7f197647cc0dd711d45af7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d4854785_6df32993","updated":"2025-06-19 09:12:10.000000000","message":"recheck","commit_id":"6eb829b5bcb68c95018dcfbe91df149cac0b4b8e"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"e028d076d728c89521b0bb16cb15c6f4c9c5dcdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0df6512c_e6f986d4","updated":"2025-06-25 09:38:34.000000000","message":"recheck","commit_id":"b3e91162ceb710e4548854b28f4da23f936f6e2b"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"d22c45dabdd09feb29f50d12faf1048002c693f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"e2319216_984cbd27","updated":"2025-07-31 15:40:12.000000000","message":"recheck cinder-tempest-plugin-cbak-ceph failed but no artifacts or logs are available to diagnose the problem.","commit_id":"ba29c20578e138e8e1d27647b1f64c162bb95a89"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7fccb47699bdd626d8ae98ed8c057ef952984b68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"49360090_8368c2b9","updated":"2025-08-20 13:21:10.000000000","message":"recheck cinder-tempest-plugin-cbak-ceph - OOM killed ceph-mgr, which kind of puts a damper on the ceph tests","commit_id":"5739915422b53d3c5c963c617be6762328537bcd"}],"cinder_tempest_plugin/scenario/test_volume_replication.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"933393d038a1f819135b2647544db4271db7a133","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":157,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027failed-over\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Validate data still accessible after failover"},{"line_number":160,"context_line":"        timestamp_after_failover \u003d self.get_timestamp("},{"line_number":161,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":162,"context_line":"        self.assertEqual(timestamp_before_failover, timestamp_after_failover)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        # Write new data after failover"},{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"}],"source_content_type":"text/x-python","patch_set":14,"id":"78dd2678_7311d4e4","line":163,"range":{"start_line":159,"start_character":7,"end_line":163,"end_character":0},"updated":"2025-06-26 09:52:07.000000000","message":"This ideally shouldn\u0027t work since after failover is done, we need to detach/attach the volume (external data vol) or shelve/unshelve the VM (BFV) to access the replica volume on secondary cluster.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c9d83881f3947d22fc5b0269f7f6a3c6575e8510","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":157,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027failed-over\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Validate data still accessible after failover"},{"line_number":160,"context_line":"        timestamp_after_failover \u003d self.get_timestamp("},{"line_number":161,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":162,"context_line":"        self.assertEqual(timestamp_before_failover, timestamp_after_failover)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        # Write new data after failover"},{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"}],"source_content_type":"text/x-python","patch_set":14,"id":"e8dbaa2b_28be5c10","line":163,"range":{"start_line":159,"start_character":7,"end_line":163,"end_character":0},"in_reply_to":"06fba8c5_cd6ca2bc","updated":"2025-06-26 10:53:49.000000000","message":"I suspect this issue is related to the strange behavior we observed: after creating a replicated volume and performing a failover, the volume ends up in an error state despite its replication_status showing as “enabled”.\nIf I add an extra waiter after creating the replicated volume, it works fine.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"44324f0481a31b108f17d35084450b19776894a6","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":157,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027failed-over\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Validate data still accessible after failover"},{"line_number":160,"context_line":"        timestamp_after_failover \u003d self.get_timestamp("},{"line_number":161,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":162,"context_line":"        self.assertEqual(timestamp_before_failover, timestamp_after_failover)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        # Write new data after failover"},{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"}],"source_content_type":"text/x-python","patch_set":14,"id":"06fba8c5_cd6ca2bc","line":163,"range":{"start_line":159,"start_character":7,"end_line":163,"end_character":0},"in_reply_to":"78dd2678_7311d4e4","updated":"2025-06-26 10:02:31.000000000","message":"It’s odd because the test passes just fine on the gate.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"8eb1b6750c1402346fbab4f3ef544d867f7474e2","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":157,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027failed-over\u0027)"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        # Validate data still accessible after failover"},{"line_number":160,"context_line":"        timestamp_after_failover \u003d self.get_timestamp("},{"line_number":161,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":162,"context_line":"        self.assertEqual(timestamp_before_failover, timestamp_after_failover)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        # Write new data after failover"},{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"}],"source_content_type":"text/x-python","patch_set":14,"id":"af71b5d5_57fa6ae1","line":163,"range":{"start_line":159,"start_character":7,"end_line":163,"end_character":0},"in_reply_to":"e8dbaa2b_28be5c10","updated":"2025-08-01 14:37:37.000000000","message":"Depends on the backend as well. a sync replicated volume that connectivity to the VM from both arrays will still show as accessible.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a9f0610c039a1ab0110d52234902257eadc5a87c","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # Failback"},{"line_number":169,"context_line":"        self.admin_volume_services_client.failover_host("},{"line_number":170,"context_line":"            host\u003dself.replication_host, backend_id\u003d\u0027default\u0027)"},{"line_number":171,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":172,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027enabled\u0027)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"d691a0b7_02433d67","line":170,"range":{"start_line":168,"start_character":8,"end_line":170,"end_character":61},"updated":"2025-06-26 09:52:56.000000000","message":"I feel failback should be a different test since it\u0027s a different operation altogether","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"7f0432e0b9210b5836a45f6284c14e2521e7d27e","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # Failback"},{"line_number":169,"context_line":"        self.admin_volume_services_client.failover_host("},{"line_number":170,"context_line":"            host\u003dself.replication_host, backend_id\u003d\u0027default\u0027)"},{"line_number":171,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":172,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027enabled\u0027)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7727d5bf_82d28560","line":170,"range":{"start_line":168,"start_character":8,"end_line":170,"end_character":61},"in_reply_to":"7181d49f_106aa32f","updated":"2025-06-26 10:06:15.000000000","message":"I\u0027ll add tests specific to each operation in the API directory.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"44324f0481a31b108f17d35084450b19776894a6","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        timestamp_before_failback \u003d self.create_timestamp("},{"line_number":166,"context_line":"            server_ip, private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # Failback"},{"line_number":169,"context_line":"        self.admin_volume_services_client.failover_host("},{"line_number":170,"context_line":"            host\u003dself.replication_host, backend_id\u003d\u0027default\u0027)"},{"line_number":171,"context_line":"        waiters.wait_for_volume_replication_status("},{"line_number":172,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027enabled\u0027)"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7181d49f_106aa32f","line":170,"range":{"start_line":168,"start_character":8,"end_line":170,"end_character":61},"in_reply_to":"d691a0b7_02433d67","updated":"2025-06-26 10:02:31.000000000","message":"That\u0027s why this test is placed under the scenario category—we\u0027re validating the entire workflow, not just the failback operation specifically.","commit_id":"2709819a02d36c719e19f679b6b2aa193035fa8d"}]}
