)]}'
{"id":"openstack%2Foslo.messaging~999260","triplet_id":"openstack%2Foslo.messaging~master~Id378091e101be8bcf69c27b39e72d500ec4a7887","project":"openstack/oslo.messaging","branch":"master","hashtags":[],"change_id":"Id378091e101be8bcf69c27b39e72d500ec4a7887","subject":"rabbit: serialise Connection.close()","status":"NEW","created":"2026-07-30 10:32:06.000000000","updated":"2026-07-30 14:22:53.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"b20bbaa948b9ed5b40472d879bcbb51e6374bd31","_number":999260,"virtual_id_number":999260,"owner":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-30 14:22:53.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-07-30 12:31:09.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"b85355629bb717a0331782180c5756ae17bcab6c","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 10:32:06.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c448623ad7800f1b1f0e5c544fba5ca9a3620117","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 10:41:22.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"30ba1759f8c35ada55a74c094000d4e4173b2422","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 10:46:58.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"2dcd149f35a382ae34c2f7cdc784fb3cd8c04de9","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 10:49:37.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"786b7aa40b0d80573e3ac31615717c5847f66769","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 10:50:35.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"3a97c85f355e36a78ba00201a9748e0680c0e07f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-30 12:31:09.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/784d1c4b808f468c96015b5039c6fba2\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/9b4db90bfe794aa1a02f2579153bace5 : SUCCESS in 1h 35m 42s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f893068960564e3d8feef4e75e6da02c : SUCCESS in 4m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0d40595634ef4404b9c5b48271b6249b : SUCCESS in 4m 11s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6eba8b664a724764939f3d9567fe3047 : SUCCESS in 3m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2dce648cea29425e92055cbbbfcad892 : SUCCESS in 4m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4837e0948ee345a889eb8f67cb4c4f44 : SUCCESS in 6m 36s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/873a2a4cf5b1427dabf55bbb2d69c175 : FAILURE in 3m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/48fcf8f671934fbd823939d5923b22b2 : SUCCESS in 2m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/49d44d8918184ba8bb3b7b371c630149 : SUCCESS in 4m 47s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/884dc0eedbed4773a5e68387de3364a1 : SUCCESS in 4m 40s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/9653eeda65ce45d08fa16a35816d495b : FAILURE in 4m 57s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/f050cbda1a7840de9693ce1706975eb6 : SUCCESS in 1h 24m 28s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/45da921ad04a4e2b94d47e6462540949 : SUCCESS in 1h 10m 54s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/5b86d285db224e5099e5f8e0c4a6fa56 : SUCCESS in 1h 17m 06s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/17a2259c7d2f43be92ccdda8d08827d9 : SUCCESS in 1h 06m 16s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"a247f910f038554169719d400950c03d1999272b","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"date":"2026-07-30 12:35:18.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"b20bbaa948b9ed5b40472d879bcbb51e6374bd31","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-30 14:22:53.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/81247ac422fc4c3891b3f3dedd860b79\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/d2094cda867f4bb09e8469d2ff901a63 : SUCCESS in 1h 37m 54s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/02a1acdf6f8d4123ba66b8793a500cc1 : SUCCESS in 4m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0229a34f2589439aa9b8d948093fdf96 : SUCCESS in 2m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d0b469bb95a14c41a14f331d2baf5d62 : SUCCESS in 2m 42s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b27d40bf1ee94424bfb57077c6a392da : SUCCESS in 3m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/73202c7ede83483eae42563c1ced61a1 : SUCCESS in 5m 04s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/7373c85c5d314e58b4da24607801472c : FAILURE in 4m 06s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1fa89187d1884168b11030960f5353ea : SUCCESS in 2m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/2bc0e4a2cf1544dbb78c8b48c8ec3d7c : SUCCESS in 2m 26s\n- oslo.messaging-tox-py311-func-scenario01 https://zuul.opendev.org/t/openstack/build/e867b37bb2a14cc683440f4a0e71146f : SUCCESS in 4m 05s\n- oslo.messaging-tox-py311-func-scenario02 https://zuul.opendev.org/t/openstack/build/6a4a3753596a46feac115455f476f1d0 : FAILURE in 2m 57s (non-voting)\n- oslo.messaging-src-dsvm-full-rabbit https://zuul.opendev.org/t/openstack/build/5e69c07e6947444abed0cbc1d8d7d166 : SUCCESS in 1h 35m 50s\n- oslo.messaging-src-dsvm-full-kafka-hybrid https://zuul.opendev.org/t/openstack/build/2be9aeace58f4c2bbd4efd8f80f96606 : SUCCESS in 1h 45m 38s (non-voting)\n- oslo.messaging-grenade https://zuul.opendev.org/t/openstack/build/f2a18c46cde84019b3234f7f258c45ec : SUCCESS in 1h 01m 26s (non-voting)\n- oslo.messaging-grenade-multinode https://zuul.opendev.org/t/openstack/build/78d0f6645dfc4c0b80987e41db08c2ca : SUCCESS in 1h 24m 15s (non-voting)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"19edd5ce4dae63e05ce9d227c741e0297fada4c0","revisions":{"a5177c003b2fb9f91566681f4a6791a514f84b57":{"kind":"REWORK","_number":1,"created":"2026-07-30 10:32:06.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/1"}}},"commit":{"parents":[{"commit":"3b02f8abb4e694543ddb303c14a3347472ee77ad","subject":"Merge \"Add OpenTelemetry tracing support for RPC calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b02f8abb4e694543ddb303c14a3347472ee77ad"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"subject":"rabbit: serialise Connection.close() with _connection_lock","message":"rabbit: serialise Connection.close() with _connection_lock\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/a5177c003b2fb9f91566681f4a6791a514f84b57"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/a5177c003b2fb9f91566681f4a6791a514f84b57"}]},"branch":"refs/heads/master"},"59531a08492442c6cab1c76827911fb33947617d":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-07-30 10:41:22.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/2"}}},"commit":{"parents":[{"commit":"3b02f8abb4e694543ddb303c14a3347472ee77ad","subject":"Merge \"Add OpenTelemetry tracing support for RPC calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b02f8abb4e694543ddb303c14a3347472ee77ad"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:41:16.000000000","tz":120},"subject":"rabbit: serialise Connection.close()","message":"rabbit: serialise Connection.close()\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/59531a08492442c6cab1c76827911fb33947617d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/59531a08492442c6cab1c76827911fb33947617d"}]},"branch":"refs/heads/master"},"ba544e33d02881c7fcf62468bce9747f1f1e956d":{"kind":"REWORK","_number":3,"created":"2026-07-30 10:46:58.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/3"}}},"commit":{"parents":[{"commit":"3b02f8abb4e694543ddb303c14a3347472ee77ad","subject":"Merge \"Add OpenTelemetry tracing support for RPC calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b02f8abb4e694543ddb303c14a3347472ee77ad"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:46:50.000000000","tz":120},"subject":"rabbit: serialise Connection.close()","message":"rabbit: serialise Connection.close()\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ba544e33d02881c7fcf62468bce9747f1f1e956d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/ba544e33d02881c7fcf62468bce9747f1f1e956d"}]},"branch":"refs/heads/master"},"2cb814e6da1fedc03f32d931560aa300a831365f":{"kind":"REWORK","_number":4,"created":"2026-07-30 10:49:37.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/4"}}},"commit":{"parents":[{"commit":"3b02f8abb4e694543ddb303c14a3347472ee77ad","subject":"Merge \"Add OpenTelemetry tracing support for RPC calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b02f8abb4e694543ddb303c14a3347472ee77ad"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:49:30.000000000","tz":120},"subject":"rabbit: serialise Connection.close()","message":"rabbit: serialise Connection.close()\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/2cb814e6da1fedc03f32d931560aa300a831365f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/2cb814e6da1fedc03f32d931560aa300a831365f"}]},"branch":"refs/heads/master"},"3dcbcbb76ec53aefee17f9afb1d4c1a6cd611b0a":{"kind":"REWORK","_number":5,"created":"2026-07-30 10:50:35.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/5"}}},"commit":{"parents":[{"commit":"3b02f8abb4e694543ddb303c14a3347472ee77ad","subject":"Merge \"Add OpenTelemetry tracing support for RPC calls\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3b02f8abb4e694543ddb303c14a3347472ee77ad"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:50:23.000000000","tz":120},"subject":"rabbit: serialise Connection.close()","message":"rabbit: serialise Connection.close()\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3dcbcbb76ec53aefee17f9afb1d4c1a6cd611b0a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/3dcbcbb76ec53aefee17f9afb1d4c1a6cd611b0a"}]},"branch":"refs/heads/master"},"19edd5ce4dae63e05ce9d227c741e0297fada4c0":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-07-30 12:35:18.000000000","uploader":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"ref":"refs/changes/60/999260/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.messaging","ref":"refs/changes/60/999260/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.messaging refs/changes/60/999260/6"}}},"commit":{"parents":[{"commit":"d8eb4b3bb4219688d915d6717e042b9e1e31d8c4","subject":"rpc: join watchdog on dispatch failure paths","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/d8eb4b3bb4219688d915d6717e042b9e1e31d8c4"}]}],"author":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 10:31:53.000000000","tz":120},"committer":{"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","date":"2026-07-30 11:17:10.000000000","tz":120},"subject":"rabbit: serialise Connection.close()","message":"rabbit: serialise Connection.close()\n\nConnection.close() had no lock around the teardown sequence.  Two\nconcurrent callers race: the second reaches self.connection.release()\nafter the first has set self.connection \u003d None, raising\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027release\u0027.  The\nsame window also produces \u0027drain_events\u0027 on None and KeyError in the\nconsumer dict.\n\n_heartbeat_stop() must run before the lock is acquired because the\nheartbeat thread holds _connection_lock while running; taking it here\nfirst would deadlock.  Once _heartbeat_stop() returns the heartbeat\nthread has exited, so the following with-block is safe.  The early\nreturn on self.connection is None makes close() idempotent under\nconcurrent callers.\n\nCloses-Bug: #2162131\nSigned-off-by: Fabian Wiesel \u003cfabian.wiesel@sap.com\u003e\nChange-Id: Id378091e101be8bcf69c27b39e72d500ec4a7887\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/19edd5ce4dae63e05ce9d227c741e0297fada4c0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.messaging/commit/19edd5ce4dae63e05ce9d227c741e0297fada4c0"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
