)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e248adafaeed971009b63b76cf780cf7eb5c0557","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disable greenlet-based notifier sender check under native threading temporarily"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"FakeVersionedNotifier (used by NotificationFixture) walked"},{"line_number":10,"context_line":"eventlet.getcurrent().parent to attribute versioned notifications to a"},{"line_number":11,"context_line":"test case.until test_case_id is set. That chain is not valid under native-threading"},{"line_number":12,"context_line":" which led to AttributeError on .parent during versioned notifications."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This is not a mandatory fixture for the tests to run, this is a safety"},{"line_number":15,"context_line":"fixture to meaningfully detect leaked work between tests; it is skipped in this mode only."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This will be enabled back after fixing sqlite concurrency issues."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When concurrency_mode_threading() is true is (threading), skip"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"c2be5c60_0e7412d7","line":16,"range":{"start_line":9,"start_character":58,"end_line":16,"end_character":1},"updated":"2026-05-25 09:12:27.000000000","message":"nit: wrap at \u003c\u003d 72 characters","commit_id":"41a689c6271a74d07979bf4179c00decd13e26fa"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a712b5aaa6d19b17dd2b508ec982ef4567aa79f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d0f10767_4dd00a15","updated":"2026-04-29 12:09:12.000000000","message":"Looks good. Thanks.","commit_id":"c0d9a1f970e0d2f6b66d035e1f859e22bf3f6724"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f62886014dcc59b4ef3705f367614ae0c5b956ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"82cd0e6c_3d786b87","updated":"2026-05-04 20:20:25.000000000","message":"I was expecting this change make some more tests green in threading job but it is timeout - https://zuul.opendev.org/t/openstack/build/f279fb317691413ca3afe7608d6fc520/log/job-output.txt#458226\n\nI did not debug it if timeout is related to this change or not","commit_id":"d57ee9352a15f0ea5118e16f4757a029f779bcea"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"b99d986531ef5abedb9896cbd180111062597717","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9b488273_8f168dba","in_reply_to":"82cd0e6c_3d786b87","updated":"2026-05-05 04:39:52.000000000","message":"Hi @gmaan.os14@gmail.com, the timeout is due to sqlite concurrency issues which I am working on to resolve as part of separate patch. We are disabling this particular check temporarily as tests would fail even before they hit other(sqlite) issues as they are expecting a parent-child chain here which worked as part of eventlet but is not the case with threading. We plan to fix sqlite issues first and then make this fixture threading aware. \n\nHere is the example run from other patch https://review.opendev.org/c/openstack/nova/+/979850 : \n\nhttps://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_2db/openstack/2db0b8c2cdb0443aaf9599fd09145fa3/testr_results.html\n\nNote that almost all the tests end up failing with attribute error before it could hit other sqlite issues\n\ncurrent \u003d current.parent\n              ^^^^^^^^^^^^^^\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027parent\u0027","commit_id":"d57ee9352a15f0ea5118e16f4757a029f779bcea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1c06107019fb9fdeb175ad820efe95d976a32f09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a838c302_4825f95e","in_reply_to":"9b488273_8f168dba","updated":"2026-05-05 14:18:38.000000000","message":"Yepp. Unfortunately we have multiple layers of failures to remove before significant amount of functional test becomes green. I suggested to Ashish to do the failure removal one by one to make it easier to review. In the other hand I\u0027m OK to wait to land this until later patches in this series starts showing some passing functional tests as a proof that this step is necessary.","commit_id":"d57ee9352a15f0ea5118e16f4757a029f779bcea"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1a995dd2e4742ab9e2b45d47f4cb8df37b8f21a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0cb1f5ce_c36bf59a","in_reply_to":"a838c302_4825f95e","updated":"2026-05-05 18:54:59.000000000","message":"ok, let\u0027s wait till we see the series and some passing tests. anyways I am removing my -1 as I am not opposed to merge it if other core would like to but I will be happy to +2 after seeing the other changes in that series (please make it dependent to each other as I am seeing this is last change in this deps chain).","commit_id":"d57ee9352a15f0ea5118e16f4757a029f779bcea"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"03622ba39eb732fe61ef917dbdb3f29ee19c5b54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3e63c649_36580fc7","updated":"2026-06-03 12:46:07.000000000","message":"This change is not needed anymore as it is already taken care of in https://review.opendev.org/c/openstack/nova/+/986282","commit_id":"41a689c6271a74d07979bf4179c00decd13e26fa"}],"nova/tests/fixtures/notifications.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ea09be61b3c8c72405899b9b1497313c08499549","unresolved":true,"context_lines":[{"line_number":173,"context_line":"        return current.test_case_id"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def _notify(self, priority, ctxt, event_type, payload):"},{"line_number":176,"context_line":"        if not _native_threading_tests():"},{"line_number":177,"context_line":"            sender_test_case_id \u003d self._get_sender_test_case_id()"},{"line_number":178,"context_line":"            # NOTE(gibi): this is here to prevent late notifications from"},{"line_number":179,"context_line":"            # already finished test cases to break the currently running test"}],"source_content_type":"text/x-python","patch_set":2,"id":"b6d7c3b9_68b0e134","line":176,"updated":"2026-04-27 11:20:33.000000000","message":"would it work if w use `concurrency_mode_threading()` from nova.utils? If so then I would rather do that.","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"b581bef75d5f505606d9cbe0186a507fd123fb59","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        return current.test_case_id"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def _notify(self, priority, ctxt, event_type, payload):"},{"line_number":176,"context_line":"        if not _native_threading_tests():"},{"line_number":177,"context_line":"            sender_test_case_id \u003d self._get_sender_test_case_id()"},{"line_number":178,"context_line":"            # NOTE(gibi): this is here to prevent late notifications from"},{"line_number":179,"context_line":"            # already finished test cases to break the currently running test"}],"source_content_type":"text/x-python","patch_set":2,"id":"b921d95d_0e25a223","line":176,"in_reply_to":"07f1d5d8_764be649","updated":"2026-04-29 10:49:34.000000000","message":"Done","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"3f20ec941863fbf07092b1933e834ccec6229c27","unresolved":true,"context_lines":[{"line_number":173,"context_line":"        return current.test_case_id"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def _notify(self, priority, ctxt, event_type, payload):"},{"line_number":176,"context_line":"        if not _native_threading_tests():"},{"line_number":177,"context_line":"            sender_test_case_id \u003d self._get_sender_test_case_id()"},{"line_number":178,"context_line":"            # NOTE(gibi): this is here to prevent late notifications from"},{"line_number":179,"context_line":"            # already finished test cases to break the currently running test"}],"source_content_type":"text/x-python","patch_set":2,"id":"07f1d5d8_764be649","line":176,"in_reply_to":"b6d7c3b9_68b0e134","updated":"2026-04-29 06:39:23.000000000","message":"Sure, makes sense. Thank you","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e248adafaeed971009b63b76cf780cf7eb5c0557","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        # such chain, so skip that check temporarily in this mode until"},{"line_number":167,"context_line":"        # broader threading concurrency issues are addressed. We expect to"},{"line_number":168,"context_line":"        # re-enable it via another thread-safe mechanism once that work"},{"line_number":169,"context_line":"        # lands."},{"line_number":170,"context_line":"        if not utils.concurrency_mode_threading():"},{"line_number":171,"context_line":"            sender_test_case_id \u003d self._get_sender_test_case_id()"},{"line_number":172,"context_line":"            # NOTE(gibi): this is here to prevent late notifications from"}],"source_content_type":"text/x-python","patch_set":7,"id":"f66fc171_1d12b556","line":169,"updated":"2026-05-25 09:12:27.000000000","message":"nit: Do we want a `FIXME` or similar to ensure there\u0027s a clear call to action here? You\u0027d be slightly worried that this will be forgotten about","commit_id":"41a689c6271a74d07979bf4179c00decd13e26fa"}],"nova/tests/fixtures/nova.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ea09be61b3c8c72405899b9b1497313c08499549","unresolved":true,"context_lines":[{"line_number":1873,"context_line":"        super().setUp()"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"        # set the id on the main eventlet"},{"line_number":1876,"context_line":"        c \u003d eventlet.getcurrent()"},{"line_number":1877,"context_line":"        c.test_case_id \u003d self.test_case_id"},{"line_number":1878,"context_line":""},{"line_number":1879,"context_line":"        orig_spawn \u003d utils.spawn"}],"source_content_type":"text/x-python","patch_set":2,"id":"f3c31136_852464d5","line":1876,"updated":"2026-04-27 11:20:33.000000000","message":"Do we need to make this Fixture also disabled for native threading due to the same reason?","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"75f1c89b2e9812d40a8b2b396031578f6b284e3c","unresolved":false,"context_lines":[{"line_number":1873,"context_line":"        super().setUp()"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"        # set the id on the main eventlet"},{"line_number":1876,"context_line":"        c \u003d eventlet.getcurrent()"},{"line_number":1877,"context_line":"        c.test_case_id \u003d self.test_case_id"},{"line_number":1878,"context_line":""},{"line_number":1879,"context_line":"        orig_spawn \u003d utils.spawn"}],"source_content_type":"text/x-python","patch_set":2,"id":"57b77fe1_5517d861","line":1876,"in_reply_to":"22b72055_9887fefc","updated":"2026-04-29 10:49:23.000000000","message":"Acknowledged","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"3f20ec941863fbf07092b1933e834ccec6229c27","unresolved":true,"context_lines":[{"line_number":1873,"context_line":"        super().setUp()"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"        # set the id on the main eventlet"},{"line_number":1876,"context_line":"        c \u003d eventlet.getcurrent()"},{"line_number":1877,"context_line":"        c.test_case_id \u003d self.test_case_id"},{"line_number":1878,"context_line":""},{"line_number":1879,"context_line":"        orig_spawn \u003d utils.spawn"}],"source_content_type":"text/x-python","patch_set":2,"id":"f863667b_70b9fe03","line":1876,"in_reply_to":"f3c31136_852464d5","updated":"2026-04-29 06:39:23.000000000","message":"The failure (the AttributeError on .parent) is not caused by this fixture in nova.py. It comes from FakeVersionedNotifier._get_sender_test_case_id() in notifications.py.\n\nI can add a early return for this one in case of threading but it only avoids installing eventlet.getcurrent() test_case_id tagging which does not match a thread-pool spawn anyway but is not actually related to the original failure itself","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"39b482233d79b35bea874b61359643937921954b","unresolved":true,"context_lines":[{"line_number":1873,"context_line":"        super().setUp()"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"        # set the id on the main eventlet"},{"line_number":1876,"context_line":"        c \u003d eventlet.getcurrent()"},{"line_number":1877,"context_line":"        c.test_case_id \u003d self.test_case_id"},{"line_number":1878,"context_line":""},{"line_number":1879,"context_line":"        orig_spawn \u003d utils.spawn"}],"source_content_type":"text/x-python","patch_set":2,"id":"22b72055_9887fefc","line":1876,"in_reply_to":"f863667b_70b9fe03","updated":"2026-04-29 07:25:31.000000000","message":"If this does not cause trouble for now here then ignore my comment. We will take the disabling of this separately. \n\nI have a parallel experiment poisoning all the eventlet import in native threading mode. There I need to make this optional as well due to the eventlet dependency so I\u0027m OK to disable it there not here.","commit_id":"7998d116e950bb49c50437adae8adf3ac95c040a"}]}
