)]}'
{"id":"openstack%2Fironic-python-agent~967006","triplet_id":"openstack%2Fironic-python-agent~master~I3e97b10f2c7f3c454f0db2a3c3c8efb61ffeda5a","project":"openstack/ironic-python-agent","branch":"master","topic":"fix-heartbeat-runtime-error","attention_set":{},"removed_from_attention_set":{"23851":{"account":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"last_update":"2025-11-17 12:11:26.000000000","reason":"Change was submitted"}},"hashtags":["ironic-week-prio"],"change_id":"I3e97b10f2c7f3c454f0db2a3c3c8efb61ffeda5a","subject":"Fix RuntimeError when stopping heartbeater in rescue mode","status":"MERGED","created":"2025-11-13 11:03:26.000000000","updated":"2025-11-17 12:12:35.000000000","submitted":"2025-11-17 12:11:26.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"967006-fix-heartbeat-runtime-error","meta_rev_id":"a24cdedc06fe83f752a1f4b05eaf7789955494df","_number":967006,"virtual_id_number":967006,"owner":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-11-17 12:11:25.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"all":[{"value":2,"date":"2025-11-13 23:49:23.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2025-11-17 10:43:22.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"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":{"approved":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"all":[{"value":0,"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-11-17 10:43:22.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"approved":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"all":[{"value":1,"date":"2025-11-13 23:49:27.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-11-13 11:24:27.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":"CC"},{"updated":"2025-11-13 12:13:33.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"},{"updated":"2025-11-13 23:49:23.000000000","updated_by":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"reviewer":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"state":"REVIEWER"},{"updated":"2025-11-17 10:43:22.000000000","updated_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"reviewer":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"state":"REVIEWER"}],"messages":[{"id":"bc1fcd0a56ba44662099915638c2c5940a69c98c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2025-11-13 11:03:26.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3d5d989339421bd75b1891d4c6187d4d5a907876","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2025-11-13 11:06:22.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"ca0fb77034c0b61e305be8a61f311cd509d4bb1f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-13 11:24:27.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/559b04bb1c6842dc851ed607ce2075c9\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/5dc4bb5051934d31b83a32cac8ac0054 : SUCCESS in 5m 50s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/6ad245f0a384477cb3837fc8bc92146d : SUCCESS in 8m 13s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/3c704bdfc45843d39a0473871901cdd7 : SUCCESS in 7m 58s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"6b96060136985c155d39dec6120ac551b1536360","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2025-11-13 11:57:08.000000000","message":"Hashtag added: ironic-week-prio","accounts_in_message":[],"_revision_number":2},{"id":"468fdafbb4bec91ff8b9a96e3594c86615fb0e25","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-13 12:13:33.000000000","message":"Patch Set 2: Verified-1\n\n(1 comment)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/183d25c4216342d8a245969d79790e08\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/88cd0bec95704fbbb5ba4b3969d93d80 : SUCCESS in 4m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7d6820637887420a9a28db971fb36af7 : FAILURE in 2m 50s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ed88d20946ab49228ba61ee477954bad : SUCCESS in 3m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ea6eaa29615f466987a9d53d0568b6c9 : SUCCESS in 6m 42s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cd70599cfa2e4a228c2703e4261b9556 : SUCCESS in 6m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/37ff154c23444695b571a79f93cd1351 : SUCCESS in 3m 50s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/7423d439974f49b0b551fe93d1d13732 : SUCCESS in 3m 59s\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/64cfb8833adc437586bfa72909eb89dd : SUCCESS in 3m 37s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/ba327524906c4f7ca0b19d6801ad356a : SUCCESS in 1h 04m 52s\n- ipa-tempest-uefi-redfish-vmedia-src https://zuul.opendev.org/t/openstack/build/f0f43521dac54a5faff792d00bc6d672 : SUCCESS in 29m 47s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/b8734e6a30f148319e02150bea42f426 : SUCCESS in 1h 05m 37s\n- ironic-python-agent-check-image-dib-centos9 https://zuul.opendev.org/t/openstack/build/5a562e33a86342828f5b83b616d106e8 : SUCCESS in 8m 15s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"86650b8846ec380a63cb324aa410725ba24160f0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2025-11-13 12:26:17.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"654945a1d42d1cfdd332af58d0f8f9918f3f7a5b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-13 13:32:30.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e3d848ad52354ebfabc14c3b3516e793\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/caf1f9d8132c48b5acb6822631b01af5 : SUCCESS in 5m 36s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/aa38fe433a304b77898fbc297c9dc67f : SUCCESS in 7m 58s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8393eb95e39a41fe80d7e270ee889026 : SUCCESS in 8m 21s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"b654280a46d12135f5b4a319efbad4c9ebc6cad5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-13 13:45:12.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fc794c244a95486cb4f093e76fa1de30\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/515ff2ed054c4acfa7207b918c38a2e4 : SUCCESS in 3m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/311e43cc74044de2af4cddf9ff846fbf : SUCCESS in 4m 51s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/aa908faa29ff40d9a598e2a7d54d479c : SUCCESS in 3m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/dac0821456ee4498b8cf306e3959a8e1 : SUCCESS in 5m 13s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9e026566202a4d5dad4c83baf82bdf1e : SUCCESS in 7m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/36651cf33e074f9b97db4589b15015c2 : SUCCESS in 2m 02s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/ae54a6112e0c4b9a81edb94346898cea : SUCCESS in 3m 41s\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/d1c3dd1de5724ce1bea49584c354bb1c : SUCCESS in 3m 40s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/6d2b14e1e958422d99f3468972cace5c : SUCCESS in 1h 12m 51s\n- ipa-tempest-uefi-redfish-vmedia-src https://zuul.opendev.org/t/openstack/build/b11ef3bdb4f2437a95b6d73abbf45a57 : SUCCESS in 1h 10m 17s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/2c0a49963c1545538513a1a47681539c : SUCCESS in 1h 04m 04s\n- ironic-python-agent-check-image-dib-centos9 https://zuul.opendev.org/t/openstack/build/ec93254042524c90a2a590b217c0185d : SUCCESS in 9m 22s (non-voting)\n- ironic-python-agent-check-image-dib-debian https://zuul.opendev.org/t/openstack/build/c6701125bd22446dade456cba9592904 : SUCCESS in 8m 16s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"d9b1928369edc3ec7e0917034978cc3ace72a9d1","author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"date":"2025-11-13 23:49:23.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"fb7349a70d2d6056cc1d9969c60b3f2b3e82a037","author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"date":"2025-11-13 23:49:27.000000000","message":"Patch Set 3: Backport-Candidate+1","accounts_in_message":[],"_revision_number":3},{"id":"ab9c4bdfb55a981d3d8874d24fc3fa9d272aa97a","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2025-11-17 10:43:22.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"7cf757a4bab0447572254d42acb7d3eef024dabe","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-17 10:44:09.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"ab51f63f7a312b7917efb8452e2f9806f1063920","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-17 12:11:25.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4ab7d5506bec47c788c8f1683ab8d54e\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ba7f2f0ceb64442789c5c28f66f9b61c : SUCCESS in 4m 49s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/aaf0cbc2f2af42c4b7f90b943c178624 : SUCCESS in 6m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2b09fe79401445698159a08957e35a1b : SUCCESS in 6m 39s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d9e70a58525f4530877b9083e39b0932 : SUCCESS in 7m 29s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/411e078a15f64dc5bb8283f24a9fe7e9 : SUCCESS in 2m 47s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/2b2ccff509174390bcbbb91d841e10c4 : SUCCESS in 3m 27s\n- ipa-tox-bandit https://zuul.opendev.org/t/openstack/build/557eecc2cf2c4e039975296559cbec4e : SUCCESS in 3m 44s\n- ipa-tempest-bios-ipmi-direct-src https://zuul.opendev.org/t/openstack/build/08c94b0635184ff9b1e6441f9480c3d6 : SUCCESS in 1h 22m 18s\n- ipa-tempest-uefi-redfish-vmedia-src https://zuul.opendev.org/t/openstack/build/949c654c080544d5b266286a33dbee9c : SUCCESS in 1h 05m 56s\n- ironic-standalone-ipa-src https://zuul.opendev.org/t/openstack/build/ef3c05c4027d4df3ba1f78d431315723 : SUCCESS in 1h 02m 35s","accounts_in_message":[],"_revision_number":3},{"id":"707ac5499e5fc57d9fe74c15834846d1ebea0cb8","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-17 12:11:26.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"a24cdedc06fe83f752a1f4b05eaf7789955494df","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-17 12:12:35.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bd8709438ee64ab8be9e40bc212221fa\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1234eee8b3f545d6b86146c13800fa6f : SUCCESS in 45s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7833e2d8f58343658cec64ca741e54d4 : SUCCESS in 50s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"bae591a808d3a395efe4cd442a60a184b52bd692","revisions":{"2c6c4a8d83fa7d6b60feae791f2d093c9ebe862c":{"kind":"REWORK","_number":1,"created":"2025-11-13 11:03:26.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/06/967006/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/06/967006/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/1"}}},"commit":{"parents":[{"commit":"2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6","subject":"Test advertised ip reachability before assigning it","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6"}]}],"author":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 11:02:22.000000000","tz":60},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 11:03:15.000000000","tz":60},"subject":"Fix RuntimeError when stopping heartbeater in rescue mode","message":"Fix RuntimeError when stopping heartbeater in rescue mode\n\nIn rescue mode, the agent attempts to stop the heartbeater thread\neven though it was never started, causing a RuntimeError. This fix\nadds checks to ensure the heartbeater thread is alive before\nattempting to stop it.\n\nAssisted-By: Claude Sonnet 4.5\nChange-Id: I3e97b10f2c7f3c454f0db2a3c3c8efb61ffeda5a\nSigned-off-by: Riccardo Pittau \u003celfosardo@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2c6c4a8d83fa7d6b60feae791f2d093c9ebe862c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2c6c4a8d83fa7d6b60feae791f2d093c9ebe862c"}]},"branch":"refs/heads/master"},"0983cb060be03413185adc19cc8474c78da1936d":{"kind":"REWORK","_number":2,"created":"2025-11-13 11:06:22.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/06/967006/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/06/967006/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/2"}}},"commit":{"parents":[{"commit":"2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6","subject":"Test advertised ip reachability before assigning it","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6"}]}],"author":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 11:02:22.000000000","tz":60},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 11:06:12.000000000","tz":60},"subject":"Fix RuntimeError when stopping heartbeater in rescue mode","message":"Fix RuntimeError when stopping heartbeater in rescue mode\n\nIn rescue mode, the agent attempts to stop the heartbeater thread\neven though it was never started, causing a RuntimeError. This fix\nadds checks to ensure the heartbeater thread is alive before\nattempting to stop it.\n\nAssisted-By: Claude Sonnet 4.5\nChange-Id: I3e97b10f2c7f3c454f0db2a3c3c8efb61ffeda5a\nSigned-off-by: Riccardo Pittau \u003celfosardo@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/0983cb060be03413185adc19cc8474c78da1936d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/0983cb060be03413185adc19cc8474c78da1936d"}]},"branch":"refs/heads/master"},"bae591a808d3a395efe4cd442a60a184b52bd692":{"kind":"REWORK","_number":3,"created":"2025-11-13 12:26:17.000000000","uploader":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"ref":"refs/changes/06/967006/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic-python-agent","ref":"refs/changes/06/967006/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic-python-agent refs/changes/06/967006/3"}}},"commit":{"parents":[{"commit":"2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6","subject":"Test advertised ip reachability before assigning it","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/2c6cf7cf1f181d60a8abac1b6e910c516dfa73b6"}]}],"author":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 11:02:22.000000000","tz":60},"committer":{"name":"Riccardo Pittau","email":"elfosardo@gmail.com","date":"2025-11-13 12:26:08.000000000","tz":60},"subject":"Fix RuntimeError when stopping heartbeater in rescue mode","message":"Fix RuntimeError when stopping heartbeater in rescue mode\n\nIn rescue mode, the agent attempts to stop the heartbeater thread\neven though it was never started, causing a RuntimeError. This fix\nadds checks to ensure the heartbeater thread is alive before\nattempting to stop it.\n\nAssisted-By: Claude Sonnet 4.5\nChange-Id: I3e97b10f2c7f3c454f0db2a3c3c8efb61ffeda5a\nSigned-off-by: Riccardo Pittau \u003celfosardo@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/bae591a808d3a395efe4cd442a60a184b52bd692"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic-python-agent/commit/bae591a808d3a395efe4cd442a60a184b52bd692"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}},{"label":"Backport-Candidate","status":"MAY","applied_by":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
