)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abe2867215dd14c87f8becb7f4459d841d649f6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"05c4cc8a_78a14513","updated":"2024-08-15 16:53:21.000000000","message":"recheck failed an unrelated volume test","commit_id":"94ecf3bd4f1444e297846b1eee071b509abed500"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0754b26ef21ea4d7b34d98c7d90080ebc83d3afb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3147da76_d8b76fce","updated":"2024-08-15 17:02:53.000000000","message":"import job is passing with this. approving it as I might be away after noon so that it can be merged once gate is happy","commit_id":"e248a157c27d4a19f7878d9f8c40d7ebc8bdb3bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"32760255c9322af881db7c69badec79bf5be8b17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4c74e746_7e08fb7f","updated":"2024-08-15 18:59:42.000000000","message":"recheck docs timeout","commit_id":"e248a157c27d4a19f7878d9f8c40d7ebc8bdb3bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31700a995e9d82680836f5945e42db38eb185c60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"28941338_6c791442","updated":"2024-08-15 21:40:25.000000000","message":"recheck unrelated failure in unshelve test","commit_id":"e248a157c27d4a19f7878d9f8c40d7ebc8bdb3bc"}],"tempest/api/image/v2/test_images_formats.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c8210ec1e2a0f5b9a840c1fdc272e540a1ede149","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                    # status\u003dqueued because glance refused."},{"line_number":146,"context_line":"                    allowed \u003d (\u0027active\u0027, \u0027queued\u0027)"},{"line_number":147,"context_line":"                else:"},{"line_number":148,"context_line":"                    allowed \u003d \u0027active\u0027"},{"line_number":149,"context_line":"                image \u003d waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":150,"context_line":"                                                      allowed)"},{"line_number":151,"context_line":"                self.client.delete_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"f5d98585_3c353b81","line":148,"range":{"start_line":148,"start_character":31,"end_line":148,"end_character":37},"updated":"2024-08-14 05:13:42.000000000","message":"this should be queued?","commit_id":"cd25e94e0bb4550f13e700f48c350cc1ebc14c13"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"58a270d368324a6b558cdd009871ae99635b83ce","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                    # status\u003dqueued because glance refused."},{"line_number":146,"context_line":"                    allowed \u003d (\u0027active\u0027, \u0027queued\u0027)"},{"line_number":147,"context_line":"                else:"},{"line_number":148,"context_line":"                    allowed \u003d \u0027active\u0027"},{"line_number":149,"context_line":"                image \u003d waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":150,"context_line":"                                                      allowed)"},{"line_number":151,"context_line":"                self.client.delete_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"f0c8c27f_3e34d02a","line":148,"range":{"start_line":148,"start_character":31,"end_line":148,"end_character":37},"in_reply_to":"ca57e38c_f9b59950","updated":"2024-08-14 16:10:45.000000000","message":"Done","commit_id":"cd25e94e0bb4550f13e700f48c350cc1ebc14c13"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"27fc4983faf8d106cf12cc9c28c3e4a6f31f872a","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                    # status\u003dqueued because glance refused."},{"line_number":146,"context_line":"                    allowed \u003d (\u0027active\u0027, \u0027queued\u0027)"},{"line_number":147,"context_line":"                else:"},{"line_number":148,"context_line":"                    allowed \u003d \u0027active\u0027"},{"line_number":149,"context_line":"                image \u003d waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":150,"context_line":"                                                      allowed)"},{"line_number":151,"context_line":"                self.client.delete_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ca57e38c_f9b59950","line":148,"range":{"start_line":148,"start_character":31,"end_line":148,"end_character":37},"in_reply_to":"f5d98585_3c353b81","updated":"2024-08-14 13:33:46.000000000","message":"Oops, yep.","commit_id":"cd25e94e0bb4550f13e700f48c350cc1ebc14c13"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"73daf9e6d93c8f3668cb81d27d79777b628cb88b","unresolved":true,"context_lines":[{"line_number":114,"context_line":"            # Glance does not support conversion from iso/udf, so these"},{"line_number":115,"context_line":"            # will always fail, even though they are marked as usable."},{"line_number":116,"context_line":"            \u0027iso\u0027,"},{"line_number":117,"context_line":"            \u0027udf\u0027,"},{"line_number":118,"context_line":"            # Glance does not support vmdk-sparse-with-footer with the"},{"line_number":119,"context_line":"            # in-tree format_inspector"},{"line_number":120,"context_line":"            \u0027vmdk-sparse-with-footer\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e625e404_a4e407b5","side":"PARENT","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":16},"updated":"2024-08-14 17:58:59.000000000","message":"how about udf image?","commit_id":"eccd82f3113c9f045a174572ea7c191732b267f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e06aa96b882676225387dcdee21ea595888cedd4","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            # Glance does not support conversion from iso/udf, so these"},{"line_number":115,"context_line":"            # will always fail, even though they are marked as usable."},{"line_number":116,"context_line":"            \u0027iso\u0027,"},{"line_number":117,"context_line":"            \u0027udf\u0027,"},{"line_number":118,"context_line":"            # Glance does not support vmdk-sparse-with-footer with the"},{"line_number":119,"context_line":"            # in-tree format_inspector"},{"line_number":120,"context_line":"            \u0027vmdk-sparse-with-footer\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"b36f9c20_d081f597","side":"PARENT","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":16},"in_reply_to":"e4532f15_de34f8d8","updated":"2024-08-14 18:26:44.000000000","message":"ohk, thanks","commit_id":"eccd82f3113c9f045a174572ea7c191732b267f1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fbd66a0ef984513aae3f1b8d72458bfe9491dd56","unresolved":true,"context_lines":[{"line_number":114,"context_line":"            # Glance does not support conversion from iso/udf, so these"},{"line_number":115,"context_line":"            # will always fail, even though they are marked as usable."},{"line_number":116,"context_line":"            \u0027iso\u0027,"},{"line_number":117,"context_line":"            \u0027udf\u0027,"},{"line_number":118,"context_line":"            # Glance does not support vmdk-sparse-with-footer with the"},{"line_number":119,"context_line":"            # in-tree format_inspector"},{"line_number":120,"context_line":"            \u0027vmdk-sparse-with-footer\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e4532f15_de34f8d8","side":"PARENT","line":117,"range":{"start_line":117,"start_character":13,"end_line":117,"end_character":16},"in_reply_to":"e625e404_a4e407b5","updated":"2024-08-14 18:16:48.000000000","message":"udf is handled by glance as an iso (meaning there is no \"udf\" disk_format). It was here because the images manifest has multiple format\u003diso files within, some of which are actually udf (only udf in the name, since format\u003diso). Since this was matching against name, it needed to also exclude udf, but since we\u0027re comparing format below, we\u0027re good with just iso.","commit_id":"eccd82f3113c9f045a174572ea7c191732b267f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"73daf9e6d93c8f3668cb81d27d79777b628cb88b","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                self.imgdef[\u0027usable\u0027] and not expect_fail):"},{"line_number":125,"context_line":"            # Usable images should end up in active state"},{"line_number":126,"context_line":"            image \u003d self._test_image(self.imgdef, asimport\u003dTrue)"},{"line_number":127,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":128,"context_line":"                                          \u0027active\u0027)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            # FIXME(danms): Make this better, but gpt will fail before"},{"line_number":131,"context_line":"            # the import even starts until glance has it in its API"}],"source_content_type":"text/x-python","patch_set":2,"id":"e043aefd_aab26829","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":51},"updated":"2024-08-14 17:58:59.000000000","message":"if we are removing iso from glance_noconvert  then this wait will check for \u0027active\u0027 always but as per your commit msg it \u0027active\u0027 and \u0027queued\u0027 both should be ok for iso image.","commit_id":"cea4ff1420fa4e1aa97ba1f6bb979f1a32426575"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e06aa96b882676225387dcdee21ea595888cedd4","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                self.imgdef[\u0027usable\u0027] and not expect_fail):"},{"line_number":125,"context_line":"            # Usable images should end up in active state"},{"line_number":126,"context_line":"            image \u003d self._test_image(self.imgdef, asimport\u003dTrue)"},{"line_number":127,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":128,"context_line":"                                          \u0027active\u0027)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            # FIXME(danms): Make this better, but gpt will fail before"},{"line_number":131,"context_line":"            # the import even starts until glance has it in its API"}],"source_content_type":"text/x-python","patch_set":2,"id":"f7b1cf0e_af245efc","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":51},"in_reply_to":"5ad1758e_31677f90","updated":"2024-08-14 18:26:44.000000000","message":"Thanks for the explanation. yeah, I think first one is better and we can add a todo here to make it \u0027active\u0027 check only once glance fix is merged. 3rd one is what we usually do in such a deadlock situation, but that is extra work here as things are runnable with opening the assert for both statuses (which is 1st option).\n\none more quesiton, glance fix is going to be (or already) backportd also right?\n\nOn import image, I think we should make it voting in tempest gate also because there are many import test now running and i think it is stable. That will help to capture the failure in test update also. But this is something a separate change.","commit_id":"cea4ff1420fa4e1aa97ba1f6bb979f1a32426575"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fbd66a0ef984513aae3f1b8d72458bfe9491dd56","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                self.imgdef[\u0027usable\u0027] and not expect_fail):"},{"line_number":125,"context_line":"            # Usable images should end up in active state"},{"line_number":126,"context_line":"            image \u003d self._test_image(self.imgdef, asimport\u003dTrue)"},{"line_number":127,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":128,"context_line":"                                          \u0027active\u0027)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            # FIXME(danms): Make this better, but gpt will fail before"},{"line_number":131,"context_line":"            # the import even starts until glance has it in its API"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ad1758e_31677f90","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":51},"in_reply_to":"e043aefd_aab26829","updated":"2024-08-14 18:16:48.000000000","message":"Images that are good (i.e. usable\u003dTrue) should now go to active only, but you\u0027re right -- old glances will now take this path and fail here because the iso will be rejected. You can see this in the non-voting cinder multistore import job, which chokes here.\n\nTo be clear, this is sort of an oversight in glance that has never been handled properly before, but after the CVE fixes we realized we need to fix this even more importantly since the iso will be treated as raw for qemu. Ideally we\u0027d just fix glance and then make this test reflect the new behavior. However, glance can\u0027t merge the fix because this test fails. I was thinking I needed to make the test allow the old and new behavior to let us merge. So I can do:\n\n1. Fix this here to allow active or queued with an extra check)\n2. We could just merge this with the known failure and then merge the glance fix\n3. Skip this test in the glance fix and then unskip later\n\nNone of which are very good. #1 is the most work, but has the least likelihood of breaking someone in the interim. What do you think?","commit_id":"cea4ff1420fa4e1aa97ba1f6bb979f1a32426575"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"268d1f1c4cbbf4890ad0d44afedd31e263dce9b4","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                self.imgdef[\u0027usable\u0027] and not expect_fail):"},{"line_number":125,"context_line":"            # Usable images should end up in active state"},{"line_number":126,"context_line":"            image \u003d self._test_image(self.imgdef, asimport\u003dTrue)"},{"line_number":127,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":128,"context_line":"                                          \u0027active\u0027)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            # FIXME(danms): Make this better, but gpt will fail before"},{"line_number":131,"context_line":"            # the import even starts until glance has it in its API"}],"source_content_type":"text/x-python","patch_set":2,"id":"81f2ee99_cb30d0ce","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":51},"in_reply_to":"f7b1cf0e_af245efc","updated":"2024-08-14 18:31:42.000000000","message":"\u003e Thanks for the explanation. yeah, I think first one is better and we can add a todo here to make it \u0027active\u0027 check only once glance fix is merged. 3rd one is what we usually do in such a deadlock situation, but that is extra work here as things are runnable with opening the assert for both statuses (which is 1st option).\n\nAck\n \n\u003e one more quesiton, glance fix is going to be (or already) backportd also right?\n\nThe glance fix hasn\u0027t even merged on master because it needs this patch to be able to pass the tests now. But yes, backport is the plan.\n\n\u003e On import image, I think we should make it voting in tempest gate also because there are many import test now running and i think it is stable. That will help to capture the failure in test update also. But this is something a separate change.\n\nAgree!","commit_id":"cea4ff1420fa4e1aa97ba1f6bb979f1a32426575"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c04569e41da691ddf433e1817f679f21270ee47a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                self.imgdef[\u0027usable\u0027] and not expect_fail):"},{"line_number":125,"context_line":"            # Usable images should end up in active state"},{"line_number":126,"context_line":"            image \u003d self._test_image(self.imgdef, asimport\u003dTrue)"},{"line_number":127,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":128,"context_line":"                                          \u0027active\u0027)"},{"line_number":129,"context_line":"        else:"},{"line_number":130,"context_line":"            # FIXME(danms): Make this better, but gpt will fail before"},{"line_number":131,"context_line":"            # the import even starts until glance has it in its API"}],"source_content_type":"text/x-python","patch_set":2,"id":"d811e1f0_46946d22","line":128,"range":{"start_line":127,"start_character":0,"end_line":128,"end_character":51},"in_reply_to":"f7b1cf0e_af245efc","updated":"2024-08-14 18:31:01.000000000","message":"s/On import image,/On import job,","commit_id":"cea4ff1420fa4e1aa97ba1f6bb979f1a32426575"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"88c21b1ca552ecb076d76148ce99d33550db7346","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            # has been fixed and backported in glance so we are only asserting"},{"line_number":135,"context_line":"            # the proper behavior."},{"line_number":136,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":137,"context_line":"                                          (\u0027active\u0027, \u0027queued\u0027))"},{"line_number":138,"context_line":"            if self.imgdef[\u0027format\u0027] !\u003d \u0027iso\u0027:"},{"line_number":139,"context_line":"                self.assertEqual(\u0027active\u0027, image[\u0027status\u0027])"},{"line_number":140,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"29b8bb05_9eb6628d","line":137,"updated":"2024-08-14 23:14:17.000000000","message":"Since glance doesn\u0027t have a stable state machine, this just adds a race where if the import doesn\u0027t start quickly, we\u0027ll just fall right through and then fail in the assert below, which is why it\u0027s failing.\n\nI\u0027m tempted to just skip iso altogether here so we can merge the glance fix and then re-enable it by writing the iso support here as it should be.\n\nThoughts?","commit_id":"94ecf3bd4f1444e297846b1eee071b509abed500"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"46e143f410190da533c2f195b79cccef5fd8a201","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            # has been fixed and backported in glance so we are only asserting"},{"line_number":135,"context_line":"            # the proper behavior."},{"line_number":136,"context_line":"            waiters.wait_for_image_status(self.client, image[\u0027id\u0027],"},{"line_number":137,"context_line":"                                          (\u0027active\u0027, \u0027queued\u0027))"},{"line_number":138,"context_line":"            if self.imgdef[\u0027format\u0027] !\u003d \u0027iso\u0027:"},{"line_number":139,"context_line":"                self.assertEqual(\u0027active\u0027, image[\u0027status\u0027])"},{"line_number":140,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"930b135c_87fdc99d","line":137,"in_reply_to":"29b8bb05_9eb6628d","updated":"2024-08-14 23:43:21.000000000","message":"yeah, that looks like a way to proceed.","commit_id":"94ecf3bd4f1444e297846b1eee071b509abed500"}]}
