)]}'
{"id":"openstack%2Fironic~761653","triplet_id":"openstack%2Fironic~master~I9937fab18a50111ec56a3fd023cdb9d510a1e990","project":"openstack/ironic","branch":"master","topic":"story/2008323","hashtags":[],"change_id":"I9937fab18a50111ec56a3fd023cdb9d510a1e990","subject":"Always retry locking when performing task handoff","status":"MERGED","created":"2020-11-05 18:28:04.000000000","updated":"2020-11-25 09:18:09.000000000","submitted":"2020-11-25 09:16:12.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":16,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"761653-story/2008323","meta_rev_id":"d21fc6ddc9119356fa22a36deadb0cf0980b08c5","_number":761653,"virtual_id_number":761653,"owner":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},{"value":0,"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},{"value":0,"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},{"value":0,"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-11-25 09:16:11.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},{"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":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"all":[{"value":2,"date":"2020-11-25 07:35:48.000000000","_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},{"value":0,"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},{"value":0,"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},{"value":0,"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},{"value":2,"date":"2020-11-24 17:49:51.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":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"all":[{"value":1,"date":"2020-11-25 07:35:48.000000000","_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},{"value":0,"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},{"value":0,"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},{"value":0,"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},{"value":0,"_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":{"all":[{"value":0,"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},{"value":0,"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},{"value":0,"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},{"value":0,"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},{"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":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},{"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},{"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-11-10 01:36:30.000000000","updated_by":{"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},"reviewer":{"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},"state":"REVIEWER"},{"updated":"2020-11-10 05:11:44.000000000","updated_by":{"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},"reviewer":{"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},"state":"REVIEWER"},{"updated":"2020-11-10 09:05:32.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"},{"updated":"2020-11-10 11:09:12.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":"2020-11-16 02:10:21.000000000","updated_by":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"reviewer":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"state":"REVIEWER"},{"updated":"2020-11-25 07:35:48.000000000","updated_by":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"reviewer":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"state":"REVIEWER"}],"messages":[{"id":"555566009a0a7a6c13c2a0f2cad26bdc623efde0","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-05 18:28:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ce51e11b64b3c33a88c855bbfbbc6ba793d9f951","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-05 19:45:28.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"777364bbc23b4d4f001286747905cdadcd5c8c81","author":{"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},"date":"2020-11-05 21:33:40.000000000","message":"Patch Set 2:\n\nBuild failed. For 3rd party CI contact info: https://wiki.openstack.org/wiki/ThirdPartySystems\n\n- dellemc-poweredge-R730-R630-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R730-R630-tempest-dsvm-ironic-idrac/2020-11-05:13:45/761653/2/ : FAILURE in 1h 38m 13s\n- dellemc-poweredge-R740-R640-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-tempest-dsvm-ironic-idrac/2020-11-05:13:45/761653/2/ : SUCCESS in 1h 13m 57s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-idrac/2020-11-05:13:45/761653/2/ : FAILURE in 1h 15m 12s\n- dellemc-poweredge-R740-R640-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-tempest-dsvm-ironic-redfish/2020-11-05:13:45/761653/2/ : FAILURE in 1h 02m 34s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-redfish/2020-11-05:13:45/761653/2/ : FAILURE in 1h 13m 34s\n- dellemc-poweredge-R730-R630-tempest-dsvm-ironic-ipmi https://stash.dellemc-community.org/logs/dellemc-poweredge-R730-R630-tempest-dsvm-ironic-ipmi/2020-11-05:13:45/761653/2/ : FAILURE in 1h 13m 59s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-ipmi https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-ipmi/2020-11-05:13:45/761653/2/ : FAILURE in 1h 47m 11s\n- dellemc-poweredge-XE-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-XE-UEFI-tempest-dsvm-ironic-redfish/2020-11-05:13:45/761653/2/ : FAILURE in 1h 20m 45s\n- dellemc-poweredge-R7515-R6515-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R7515-R6515-tempest-dsvm-ironic-idrac/2020-11-05:13:45/761653/2/ : FAILURE in 1h 11m 18s\n- dellemc-poweredge-R7515-R6515-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R7515-R6515-UEFI-tempest-dsvm-ironic-redfish/2020-11-05:13:45/761653/2/ : FAILURE in 1h 05m 38s","accounts_in_message":[],"_revision_number":2},{"id":"f416e8cff5a54a13a57335c8e9982ad21c166a20","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-05 21:42:57.000000000","message":"Patch Set 2: Verified-1\n\n(10 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/af2a398edd854ac78b29266c758f9248 : SUCCESS in 7m 46s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/67932ab0f96746c281f1f28c41b6c690 : SUCCESS in 8m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/89498d307e7b486a9f79d0ed779be61f : FAILURE in 5m 53s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/7bce11e69fc744578dbd9482dd85cbca : FAILURE in 14m 32s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/51c5d73da30640ddbcecd6ccd013eefd : SUCCESS in 6m 17s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/eb3d35330efb4c23b543ce1976a09a6f : SUCCESS in 7m 43s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bcf8cd7ffec04b92bbef72cee7ff4141 : SUCCESS in 19m 14s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/40a5b201eab643549d9b38a79cb315fc : SUCCESS in 9m 01s\n- ironic-standalone https://zuul.opendev.org/t/openstack/build/6dc91e730d7543e59cd53742cd53f411 : SUCCESS in 1h 18m 41s (non-voting)\n- ironic-standalone-redfish https://zuul.opendev.org/t/openstack/build/ba755599506b4588ac0e92b94d57ded6 : SUCCESS in 1h 10m 08s (non-voting)\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/ed816c05b2614a5c8820077be94f8430 : SUCCESS in 27m 07s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/fae7547446434652a33eb2e643eef2da : SUCCESS in 1h 10m 51s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/c2a860a3d73d40418b752a06d9e310a5 : SUCCESS in 53m 55s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/99ce6e69ee744470bd1e60be3e1b71c7 : SUCCESS in 55m 08s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/c1d034ee3cbf45b69ddd4a2038db498e : SUCCESS in 54m 26s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/ce55c1d092fd408fa39253c4d6ed92ab : SUCCESS in 1h 54m 30s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/bbe7dd35cec74c31ac15ddf40a00ede4 : SUCCESS in 50m 03s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/da70248b2b5b47b094827ac3f31ff109 : SUCCESS in 1h 33m 17s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/4e049cb296514bd7a9d1eaf6d4bb1971 : SUCCESS in 1h 13m 49s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/997a62db4bcc463686f9df2eae4c38d3 : SUCCESS in 44m 14s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/9e446b07146c4e659704ff3bd4c3a635 : SUCCESS in 49m 43s\n- ironic-tempest-ipxe-ipv6 https://zuul.opendev.org/t/openstack/build/9232da286d8d4a9f9ec1e678598f81dd : FAILURE in 31m 41s (non-voting)\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/9302ce1cd5204492b5c541749298b464 : SUCCESS in 1h 09m 17s\n- ironic-tox-bandit https://zuul.opendev.org/t/openstack/build/43560323a5cc432babc91bf1a8db0649 : SUCCESS in 4m 45s (non-voting)\n- ironic-inspector-tempest https://zuul.opendev.org/t/openstack/build/b2b3bbe5a0224c709604103af8e6a26e : SUCCESS in 56m 23s (non-voting)\n- ironic-inspector-tempest-managed-non-standalone https://zuul.opendev.org/t/openstack/build/ba9a5ad953164924b4d57baf5799b1ae : SUCCESS in 55m 01s (non-voting)\n- ironic-inspector-tempest-partition-bios-redfish-vmedia https://zuul.opendev.org/t/openstack/build/d5601907ea36419bab81da909bc484fa : SUCCESS in 51m 26s (non-voting)\n- ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib https://zuul.opendev.org/t/openstack/build/42c020aaeda745b289ae28a27e9d2d01 : SUCCESS in 55m 59s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/987f5070131d44dc9b805d4433846d50 : SUCCESS in 23m 42s (non-voting)\n- ironic-tempest-pxe_ipmitool-postgres https://zuul.opendev.org/t/openstack/build/86f1e45809df44b798a563b6ded6c208 : SUCCESS in 51m 28s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"9ab4ad54ad49700748e303f5b9fac405bcf90eac","author":{"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},"date":"2020-11-06 10:40:52.000000000","message":"Patch Set 2:\n\nBuild failed.\n\n- hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/2/check/hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3/75229d0/75229d0.html : FAILURE in 3m 55s\n- hpe-gen8-dsvm-ironic-standalone-wholedisk-bios-ilo-virtual-media-iscsi-python3 hpe-gen8-dsvm-ironic-standalone-wholedisk-bios-ilo-virtual-media-iscsi-python3 : MERGER_FAILURE\n- hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-pxe-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/2/check/hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-pxe-direct-python3/1ed8b7d/1ed8b7d.html : FAILURE in 4m 06s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/2/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3/60b90c6/60b90c6.html : FAILURE in 3m 18s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-redfish-pxe-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/2/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-redfish-pxe-python3/d4f56e9/d4f56e9.html : FAILURE in 3m 21s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-ilo-uefi-https-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/2/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-ilo-uefi-https-direct-python3/3c8aa24/3c8aa24.html : FAILURE in 4m 16s","accounts_in_message":[],"_revision_number":2},{"id":"177513fb4cf898a2074d66666156eb3f996ed390","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-09 22:01:37.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"804e4760ae2e9279149165ed331ece112209d797","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-09 23:36:56.000000000","message":"Patch Set 3: Verified-1\n\n(4 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/825306615e0344b1840078513b8e4967 : SUCCESS in 8m 41s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7f9f88e165654bfc9000f35b3fde6fa1 : SUCCESS in 8m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fb5b10a677a343cbb9f7e065fdd5676a : FAILURE in 6m 38s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/4fe8b83c8c64433bb91b369782577120 : SUCCESS in 6m 50s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/90ccf006f4aa4796b30ee918b55a5a4b : SUCCESS in 6m 25s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/abc112f0d3344cbcab4124abd89ba7bb : SUCCESS in 7m 11s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dcc3e675147f475c980af1d2e5ee3605 : SUCCESS in 16m 29s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/2b37d27204724521acf5b5b86d9192a6 : SUCCESS in 7m 55s\n- ironic-standalone https://zuul.opendev.org/t/openstack/build/6539a296642a43f99815e55effb7dbad : SUCCESS in 57m 44s (non-voting)\n- ironic-standalone-redfish https://zuul.opendev.org/t/openstack/build/dc214315d00c41989cdfd7c3c8ce5c78 : SUCCESS in 56m 57s (non-voting)\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/8248ad7b0e6547c4ba9cf389e7c8603d : SUCCESS in 34m 49s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/5f9d1d206a8045dd9caac409690a00ee : SUCCESS in 1h 05m 55s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/4cc7aa68f7fd468fb769ba3495aea4b3 : SUCCESS in 50m 41s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/99f7b0686c6f48268dda40b2c121744a : SUCCESS in 1h 01m 54s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/e99bb5506c9848a9a2115e45222f8894 : SUCCESS in 43m 19s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/1fceff3d27e6471589fff29912b8d73f : SUCCESS in 1h 28m 31s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/609a44a566e040c1af977a0537fb1c40 : SUCCESS in 52m 06s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/7eccc4ad6f284631a918b055058519b3 : SUCCESS in 1h 24m 48s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/4632193309d246a696ff63f6f9031027 : SUCCESS in 1h 09m 34s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/756c0477d47b4e1a93d6658eb08247fa : SUCCESS in 40m 15s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/9fa7c432affc44a298fd2283d40d0dfd : SUCCESS in 47m 53s\n- ironic-tempest-ipxe-ipv6 https://zuul.opendev.org/t/openstack/build/5931756615d9488fbeb834d81fe39f64 : FAILURE in 28m 28s (non-voting)\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/2904c8feda9745e0bf2763054ed13405 : FAILURE in 5m 42s\n- ironic-tox-bandit https://zuul.opendev.org/t/openstack/build/f11ebc35a56042caae03a16d4f17b353 : SUCCESS in 5m 12s (non-voting)\n- ironic-inspector-tempest https://zuul.opendev.org/t/openstack/build/29d75bf8cc2444bbacd87d20eec861fb : SUCCESS in 55m 47s (non-voting)\n- ironic-inspector-tempest-managed-non-standalone https://zuul.opendev.org/t/openstack/build/718385bd0d784c9d927fa4ff4143d830 : SUCCESS in 1h 02m 18s (non-voting)\n- ironic-inspector-tempest-partition-bios-redfish-vmedia https://zuul.opendev.org/t/openstack/build/9d0bc07a2ff84eb5910b653dfc9ee161 : SUCCESS in 1h 10m 00s (non-voting)\n- ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib https://zuul.opendev.org/t/openstack/build/1fd5d52c1cf841d8b7a48e49ee550983 : SUCCESS in 58m 38s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/068ad4ebe8214cc7b7e7d53b44607655 : SUCCESS in 23m 54s (non-voting)\n- ironic-tempest-pxe_ipmitool-postgres https://zuul.opendev.org/t/openstack/build/4c516fa1d91b4e9797e4be99fffa2bf2 : SUCCESS in 56m 10s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"89e9f18bbea19756d55c00dc6f1ecd3144dc2284","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-09 23:48:26.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"44dc45bb90eccd939dcc54c97d642c10218df664","author":{"_account_id":19339,"name":"Dell EMC Ironic CI","email":"openstack-ironic-ci@dell.com","username":"openstack-ironic-ci"},"date":"2020-11-10 01:36:30.000000000","message":"Patch Set 4:\n\nBuild failed. For 3rd party CI contact info: https://wiki.openstack.org/wiki/ThirdPartySystems\n\n- dellemc-poweredge-R730-R630-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R730-R630-tempest-dsvm-ironic-idrac/2020-11-09:17:48/761653/4/ : SUCCESS in 1h 38m 42s\n- dellemc-poweredge-R740-R640-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-tempest-dsvm-ironic-idrac/2020-11-09:17:48/761653/4/ : FAILURE in 1h 12m 34s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-idrac/2020-11-09:17:48/761653/4/ : FAILURE in 1h 15m 15s\n- dellemc-poweredge-R740-R640-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-tempest-dsvm-ironic-redfish/2020-11-09:17:48/761653/4/ : FAILURE in 1h 06m 02s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-redfish/2020-11-09:17:48/761653/4/ : FAILURE in 52m 20s\n- dellemc-poweredge-R730-R630-tempest-dsvm-ironic-ipmi https://stash.dellemc-community.org/logs/dellemc-poweredge-R730-R630-tempest-dsvm-ironic-ipmi/2020-11-09:17:48/761653/4/ : FAILURE in 1h 10m 57s\n- dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-ipmi https://stash.dellemc-community.org/logs/dellemc-poweredge-R740-R640-UEFI-tempest-dsvm-ironic-ipmi/2020-11-09:17:48/761653/4/ : FAILURE in 1h 47m 04s\n- dellemc-poweredge-XE-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-XE-UEFI-tempest-dsvm-ironic-redfish/2020-11-09:17:48/761653/4/ : FAILURE in 1h 18m 56s\n- dellemc-poweredge-R7515-R6515-tempest-dsvm-ironic-idrac https://stash.dellemc-community.org/logs/dellemc-poweredge-R7515-R6515-tempest-dsvm-ironic-idrac/2020-11-09:17:48/761653/4/ : SUCCESS in 1h 17m 04s\n- dellemc-poweredge-R7515-R6515-UEFI-tempest-dsvm-ironic-redfish https://stash.dellemc-community.org/logs/dellemc-poweredge-R7515-R6515-UEFI-tempest-dsvm-ironic-redfish/2020-11-09:17:48/761653/4/ : FAILURE in 1h 02m 50s","accounts_in_message":[],"_revision_number":4},{"id":"87cb9d878a9f159f00358e19fb22099b73957386","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-10 01:42:41.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c6417298d77a4713a82388b35f114b64 : SUCCESS in 8m 21s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cece14e57ed24686bf607390b4f73bb0 : SUCCESS in 8m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bdbca699930b47748b19fbca995c6e32 : SUCCESS in 4m 54s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c34b3a3a41444d9e97562d246f4df24b : SUCCESS in 8m 08s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/19d007c980ff4363bf6f970a0db79e2b : SUCCESS in 7m 03s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/8827e541e99a481f8f164518463cc008 : SUCCESS in 7m 28s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8fe5ec5cc46e46129f015a3b801a6f4f : SUCCESS in 16m 39s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/e7f82170744648c48995f4ae64d6e1e1 : SUCCESS in 8m 37s\n- ironic-standalone https://zuul.opendev.org/t/openstack/build/62be9c924efd4c699ccbc7f55b2bcd41 : SUCCESS in 1h 09m 40s (non-voting)\n- ironic-standalone-redfish https://zuul.opendev.org/t/openstack/build/e72a2121c7b342d09d27220c2a645551 : SUCCESS in 1h 10m 09s (non-voting)\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/9893bd92beb34996bb75443942e4a6bd : SUCCESS in 25m 32s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/b62e0a9098944c99935229de94f29390 : SUCCESS in 1h 10m 45s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/023da210e10e4efb840d90c26528d41b : SUCCESS in 51m 28s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/ef9ffa89d4ec4bd9955ac0bb962f45db : SUCCESS in 1h 06m 54s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/3e123316fb25497f86b2d395f6cf00fe : SUCCESS in 1h 11m 13s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/d50ed7e1ebc94c1481bad98e1fd6e2ac : SUCCESS in 1h 04m 23s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/37843e5896c54a0287b32ef27f65ef04 : SUCCESS in 50m 34s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/1cd40c5693814a2ab9dca5f3cb9c5746 : FAILURE in 1h 47m 03s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/1fc49313259f4039a78458efdcb665d4 : SUCCESS in 1h 20m 28s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/c0a68db63cda40b28d0afa33e0426da2 : SUCCESS in 45m 48s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/9ec47235d1ac46d081e2778f1d513d1c : SUCCESS in 56m 09s\n- ironic-tempest-ipxe-ipv6 https://zuul.opendev.org/t/openstack/build/90952df358b444d4b83d227ad81464d2 : FAILURE in 34m 41s (non-voting)\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/dfce60b779fa4e12bacf62ef0211f921 : SUCCESS in 1h 10m 14s\n- ironic-tox-bandit https://zuul.opendev.org/t/openstack/build/226862c3221b4dee8146ec5c29d1eff9 : SUCCESS in 5m 28s (non-voting)\n- ironic-inspector-tempest https://zuul.opendev.org/t/openstack/build/7bd931932f6b462283cefb4ce3af8d0a : SUCCESS in 52m 07s (non-voting)\n- ironic-inspector-tempest-managed-non-standalone https://zuul.opendev.org/t/openstack/build/22cadfcbbdc743b49a18de5f541fe530 : SUCCESS in 53m 49s (non-voting)\n- ironic-inspector-tempest-partition-bios-redfish-vmedia https://zuul.opendev.org/t/openstack/build/c37b57cbb7c2484391f46a1e5a226f53 : SUCCESS in 49m 04s (non-voting)\n- ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib https://zuul.opendev.org/t/openstack/build/0f893670fe484e9eb5e2d0c48b58f406 : SUCCESS in 58m 25s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/22b71d3e1f96431bb8efa3e5ce2fa089 : SUCCESS in 22m 57s (non-voting)\n- ironic-tempest-pxe_ipmitool-postgres https://zuul.opendev.org/t/openstack/build/a31570d7e02a455b90f55a079d4a6cdf : SUCCESS in 49m 36s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"3853d0f6236e9d35a86fba626dd459846ad2f992","author":{"_account_id":14629,"name":"HPE Proliant","email":"proliantutils@gmail.com","username":"proliantci"},"date":"2020-11-10 05:11:44.000000000","message":"Patch Set 4:\n\nBuild failed.\n\n- hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3/07454d3/07454d3.html : FAILURE in 1h 37m 48s\n- hpe-gen8-dsvm-ironic-standalone-wholedisk-bios-ilo-virtual-media-iscsi-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen8-dsvm-ironic-standalone-wholedisk-bios-ilo-virtual-media-iscsi-python3/5c1cece/5c1cece.html : FAILURE in 1h 36m 43s\n- hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-pxe-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen9-dsvm-ironic-standalone-wholedisk-uefi-ilo-pxe-direct-python3/d603e7d/d603e7d.html : SUCCESS in 1h 28m 13s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-ilo-virtual-media-direct-python3/328a150/328a150.html : FAILURE in 1h 39m 00s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-redfish-pxe-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-uefi-redfish-pxe-python3/78b0a5d/78b0a5d.html : SUCCESS in 1h 37m 06s\n- hpe-gen10-dsvm-ironic-standalone-wholedisk-ilo-uefi-https-direct-python3 https://hpproliant.github.io/hpeproliant.github.io/logs/53/761653/4/check/hpe-gen10-dsvm-ironic-standalone-wholedisk-ilo-uefi-https-direct-python3/4256ae6/4256ae6.html : SUCCESS in 1h 43m 05s","accounts_in_message":[],"_revision_number":4},{"id":"655f161efc91051f3ff6d120fd2270e4702e0e51","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2020-11-10 09:05:32.000000000","message":"Patch Set 4:\n\nrecheck\n\nEventually, I\u0027m planning on getting rid of RPC in this part at all. But as a temporary measure this change looks good.","accounts_in_message":[],"_revision_number":4},{"id":"641cc510acc16c128da21a4c7aa703e602e30279","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-10 11:09:12.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/853897fe30434e80941c9fb7e2d17ce4 : SUCCESS in 8m 05s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7bc63e80a8e64b82a5b50e948307fecd : SUCCESS in 9m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f55e449af74a4f2a87eda29d064cf981 : SUCCESS in 5m 40s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/38a4faaf8a02498aa5583bf73510d071 : SUCCESS in 7m 35s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/8b468dff87c54dac9341780d3c0e3584 : SUCCESS in 7m 08s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/465b677b0796401f948006ab9b268f6c : SUCCESS in 8m 31s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f0c98daf3a3c45769c738d7998324299 : SUCCESS in 21m 23s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/ba39e5445ac94643b4da437b661420f1 : SUCCESS in 9m 37s\n- ironic-standalone https://zuul.opendev.org/t/openstack/build/83a06fea75cd47bb8ebcad2c17e3840f : SUCCESS in 1h 01m 12s (non-voting)\n- ironic-standalone-redfish https://zuul.opendev.org/t/openstack/build/6eb197878f0e4831b940b9eeacf5d721 : SUCCESS in 58m 49s (non-voting)\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/820c89a734a240f28e84b15ed73b3b93 : SUCCESS in 22m 24s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/422426a14e7543a9aab742ccf0276bc7 : SUCCESS in 1h 11m 47s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/51b21463bd594127b10500bca7855e8b : SUCCESS in 52m 45s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/2dce39f0093643259e81d1b6478b9daa : SUCCESS in 1h 05m 37s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/6f0813045e484ee59feec9a1a714bbe7 : SUCCESS in 1h 00m 14s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/78269a187c624dd488ac667a2cbc8f7c : SUCCESS in 1h 12m 00s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/3d9bdfc365824ac6baba1a1d0f7d12b4 : SUCCESS in 53m 20s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/669c309e830d40b3bfade8d5dca09a85 : SUCCESS in 1h 54m 02s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/2792e02597374ea1a703ec13bd3c39ad : SUCCESS in 1h 09m 58s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/103c8e5fa82e4438b59a33909a9abbc0 : SUCCESS in 41m 00s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/b0fe8bf2f23949069f9c049e8f12f548 : SUCCESS in 45m 19s\n- ironic-tempest-ipxe-ipv6 https://zuul.opendev.org/t/openstack/build/fe64b880087d4b8f9cfbde7fe7447076 : FAILURE in 30m 19s (non-voting)\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/9bd73d9018ab462c809a7f481221bc57 : SUCCESS in 1h 06m 33s\n- ironic-tox-bandit https://zuul.opendev.org/t/openstack/build/59f6759704c040888e24bb5b24d6ffe3 : SUCCESS in 5m 15s (non-voting)\n- ironic-inspector-tempest https://zuul.opendev.org/t/openstack/build/1870206f5ea84c00af6f825e714526bb : SUCCESS in 57m 24s (non-voting)\n- ironic-inspector-tempest-managed-non-standalone https://zuul.opendev.org/t/openstack/build/4753651dd3334a19b3ce7871704a5241 : SUCCESS in 1h 01m 12s (non-voting)\n- ironic-inspector-tempest-partition-bios-redfish-vmedia https://zuul.opendev.org/t/openstack/build/12853b8f0ad54252bc467ed494ec8116 : SUCCESS in 55m 02s (non-voting)\n- ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib https://zuul.opendev.org/t/openstack/build/d7c0ea5157734604812aaf90ba1ba312 : SUCCESS in 56m 36s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/1b1d38c9898448fe9d902cc7c59b5cfd : SUCCESS in 24m 02s (non-voting)\n- ironic-tempest-pxe_ipmitool-postgres https://zuul.opendev.org/t/openstack/build/811d2bcd805f424985639def321b8d2b : SUCCESS in 55m 14s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"9529aec6c4aa5c39d75b6b8546b36df3a757fabe","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-10 16:43:18.000000000","message":"Patch Set 4:\n\n\u003e recheck\n \u003e \n \u003e Eventually, I\u0027m planning on getting rid of RPC in this part at all.\n \u003e But as a temporary measure this change looks good.\n\nThat\u0027s a nice idea, I will be interested in the design of that. I\u0027m not very familiar with the architecture if Ironic internals but I was surprised that conductors were handing off tasks like this, rather than having the conductor \"in charge\" of the node having sole control.\n\nThanks for the quick review!","accounts_in_message":[],"_revision_number":4},{"id":"462811491db844342cae20ec8fc8753547d67f31","author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"date":"2020-11-16 02:10:21.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"f506f4c354482959a2248af08fb207c94071a98f","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2020-11-24 09:58:29.000000000","message":"Patch Set 4: Code-Review+2\n\n(1 comment)\n\nThank you! If you make another revision, could you add a release note?","accounts_in_message":[],"_revision_number":4},{"id":"403413c9f0594066782d6712fadfbd6f708385a6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-24 15:42:04.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"4085413772454c808a3d5d940e169438cdac6981","author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"date":"2020-11-24 15:46:06.000000000","message":"Patch Set 5:\n\n(1 comment)\n\n\u003e Patch Set 4: Code-Review+2\n\u003e \n\u003e (1 comment)\n\u003e \n\u003e Thank you! If you make another revision, could you add a release note?\n\nDone :)","accounts_in_message":[],"_revision_number":5},{"id":"d7bcd361557ac9f0713c27fd3496fd4297939da1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-24 17:47:04.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/11e11e30c04b477cb348148b0055e98c : SUCCESS in 7m 52s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1570b3737efa4ac29b8363e5d905a2ab : SUCCESS in 8m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/208b55b9e0be4b66abd9e775e2636be7 : SUCCESS in 5m 34s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/34e224dc8bd544e09bda254a1c785211 : SUCCESS in 6m 08s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/8c17e4da5f0e467bbdc5a2c3969fc750 : SUCCESS in 6m 41s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/b917ff80eab748e4b62bf85afe902c59 : SUCCESS in 7m 12s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/aa0fd8edadc349d9a00e9c885601921a : SUCCESS in 13m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3bebcf53e59f4a27adeab02f624b304a : SUCCESS in 6m 20s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/6e91ae3c9cc445088578dcee98a028b3 : SUCCESS in 7m 38s\n- ironic-standalone https://zuul.opendev.org/t/openstack/build/609154fc68e64af586ea207171227089 : SUCCESS in 1h 00m 42s (non-voting)\n- ironic-standalone-redfish https://zuul.opendev.org/t/openstack/build/668d8617af0a4833a4e84dac5223d81e : SUCCESS in 58m 10s (non-voting)\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/7f2c21a133174c4f85b5251561038939 : SUCCESS in 25m 11s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/62d9f18734214287be1cb9d3493c6a22 : SUCCESS in 1h 09m 09s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/316f268fe55f4534b9e0f7be2d8f9d36 : SUCCESS in 45m 16s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/ad28951bee4440ed8acc48078a6cd6d3 : SUCCESS in 52m 58s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/a347462afe614e0ca1c53c72a46d6a91 : SUCCESS in 54m 08s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/53ec49af317f467fa37e867b21084056 : SUCCESS in 1h 07m 10s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/7b30b94cc0d249d5ae0af34e48806f40 : SUCCESS in 54m 51s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/95793ff5c48c4de8b35fa83823f995e0 : SUCCESS in 1h 42m 05s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/1b689330d67746b7a58fe5f13528b915 : SUCCESS in 1h 15m 06s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/c1948ab7cb3445a4b621406f6bb77135 : SUCCESS in 41m 31s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/4fea6489a8734f0688155347a4812d01 : SUCCESS in 50m 43s\n- ironic-tempest-ipxe-ipv6 https://zuul.opendev.org/t/openstack/build/9cd44f1dba4041abaa075400afa19acb : FAILURE in 32m 23s (non-voting)\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/baa1b123b2d54e30895c94ddcee789ea : SUCCESS in 1h 24m 26s\n- ironic-tox-bandit https://zuul.opendev.org/t/openstack/build/5d3f16e892e94455b2787f61a7007869 : SUCCESS in 16m 57s (non-voting)\n- ironic-inspector-tempest https://zuul.opendev.org/t/openstack/build/9308b31833be439da2b1788abc3bf521 : SUCCESS in 1h 06m 52s (non-voting)\n- ironic-inspector-tempest-managed-non-standalone https://zuul.opendev.org/t/openstack/build/44783571c7ff4546b492340f4d8a93ff : SUCCESS in 53m 48s (non-voting)\n- ironic-inspector-tempest-partition-bios-redfish-vmedia https://zuul.opendev.org/t/openstack/build/0ecb7a96e27b46c5b010904269cd6382 : SUCCESS in 50m 55s (non-voting)\n- ironic-tempest-ipa-wholedisk-bios-ipmi-direct-dib https://zuul.opendev.org/t/openstack/build/34564bcfe56d42b7b64dfa9d8c189dc6 : SUCCESS in 42m 19s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/6d6032a64237457e839a2e4f0af3a0c3 : SUCCESS in 19m 22s (non-voting)\n- ironic-tempest-pxe_ipmitool-postgres https://zuul.opendev.org/t/openstack/build/aa6155be55a5409cad8aa1a6c85cc1c8 : SUCCESS in 1h 15m 59s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"bde87b827b6814dfab9ef6c49877b327fd8f6384","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2020-11-24 17:49:51.000000000","message":"Patch Set 5: Code-Review+2\n\nThanks!","accounts_in_message":[],"_revision_number":5},{"id":"033df3b337676f03557910cbebada44c2db98133","author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"date":"2020-11-25 07:35:48.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\nThank you Jason.","accounts_in_message":[],"_revision_number":5},{"id":"1c488e64fbb8090b63ed5370eb2a5a55d6557961","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-25 07:36:04.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"db53a9efadce4ce2565097afcda8d7372dcd62a4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-25 09:16:11.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/cfce7c84d4694eea9d0d9216888d42fd : SUCCESS in 9m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8bbd27b926fd4a54988d37dfa9c4407a : SUCCESS in 5m 43s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/91b401283fa24ddab6bd8217becf9e9c : SUCCESS in 8m 07s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/56b65c4019f3423897dc555c5fc0543a : SUCCESS in 7m 26s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4a7d698e4c2f4c509a66e01ac585288f : SUCCESS in 15m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c204062562cd4f71be90e196382e2fc7 : SUCCESS in 6m 02s\n- ironic-tox-unit-with-driver-libs https://zuul.opendev.org/t/openstack/build/d0015afd731241d8aea77ca6fde7d25e : SUCCESS in 8m 39s\n- ironic-tempest-functional-python3 https://zuul.opendev.org/t/openstack/build/2366892642b3426eb181cc9cb0797bca : SUCCESS in 30m 05s\n- ironic-grenade https://zuul.opendev.org/t/openstack/build/a9f540cf1c914a0eb65c0c5a1da715e1 : SUCCESS in 1h 09m 41s\n- ironic-tempest-partition-bios-redfish-pxe https://zuul.opendev.org/t/openstack/build/e3d66107741d40288b47e5b43881b471 : SUCCESS in 52m 00s\n- ironic-tempest-partition-uefi-redfish-vmedia https://zuul.opendev.org/t/openstack/build/5bbd67a6f9054e63b5dac5a38a3ee3c1 : SUCCESS in 1h 00m 08s\n- ironic-tempest-wholedisk-bios-snmp-pxe https://zuul.opendev.org/t/openstack/build/e40481715a064f228f8f910ee5aba800 : SUCCESS in 59m 06s\n- ironic-tempest-ipa-partition-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/fd33737ef3c3439ebd0cc299ca849b69 : SUCCESS in 1h 06m 41s\n- ironic-tempest-ipa-partition-uefi-pxe_ipmitool https://zuul.opendev.org/t/openstack/build/12fd0f94183e4921a79d54974a2b1270 : SUCCESS in 53m 57s\n- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode https://zuul.opendev.org/t/openstack/build/eaa78c0b7b614cc89fa932a6f71ed91d : SUCCESS in 1h 32m 49s\n- ironic-tempest-bios-ipmi-direct-tinyipa https://zuul.opendev.org/t/openstack/build/5f1cbcecd79b45f7b626dcce9d343ed0 : SUCCESS in 1h 22m 27s\n- ironic-tempest-bfv https://zuul.opendev.org/t/openstack/build/7014375b4b004b9e9f1af8a5cb134065 : SUCCESS in 49m 07s\n- ironic-tempest-ipa-partition-uefi-pxe-grub2 https://zuul.opendev.org/t/openstack/build/08e5c4e9b91d457aa75f4ede4ebb0720 : SUCCESS in 1h 00m 53s\n- metalsmith-integration-glance-localboot-centos7 https://zuul.opendev.org/t/openstack/build/048fe90c54d84e3f9504608639aeea06 : SUCCESS in 52m 11s","accounts_in_message":[],"_revision_number":5},{"id":"dde6d9e5c59cc6de8256a15ca68ff2b5b476bdcd","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-25 09:16:12.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":5},{"id":"d21fc6ddc9119356fa22a36deadb0cf0980b08c5","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-11-25 09:18:09.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/453c7543b63e4ceb8cf2351d307c6eb4 : SUCCESS in 1m 13s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/2c96c6b203b14e64b019e8eba1ee4540 : SUCCESS in 1m 19s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"bfc2ad56d558fbb73497dcf641b61a5ab0c23b5f","revisions":{"c20375c3d67d483b7d6d8a5e69366b95194f36e3":{"kind":"REWORK","_number":1,"created":"2020-11-05 18:28:04.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/53/761653/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic","ref":"refs/changes/53/761653/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic refs/changes/53/761653/1"}}},"commit":{"parents":[{"commit":"08bf8dee65acead2b08ca4563a273cd9bb60c5b4","subject":"Merge \"Add node name to ironic-conductor ramdisk log filename\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/08bf8dee65acead2b08ca4563a273cd9bb60c5b4"}]}],"author":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:14:33.000000000","tz":-360},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:26:52.000000000","tz":-360},"subject":"Always retry locking when performing task handoff","message":"Always retry locking when performing task handoff\n\nThere are some Ironic execution workflows where there is not an easy way\nto retry, such as when attempting to hand off the processing of an async\ntask to a conductor. Task handoff can require releasing a lock on the\nnode, so the next entity processing the task can acquire the lock\nitself. However, this is vulnerable to race conditions, as there is no\nuniform retry mechanism built in to such handoffs. Consider the\ncontinue_node_deploy/clean logic, which does this:\n\n  method \u003d \u0027continue_node_%s\u0027 % operation\n  # Need to release the lock to let the conductor take it\n  task.release_resources()\n  getattr(rpc, method)(task.context, uuid, topic\u003dtopic\n\nIf another process obtains a lock between the releasing of resources and\nthe acquiring of the lock during the continue_node_* operation, and\nholds the lock longer than the max attempt * interval window (which\ndefaults to 3 seconds), then the handoff will never complete. Beyond\nthat, because there is no proper queue for processes waiting on the\nlock, there is no fairness, so it\u0027s also possible that instead of one\nlong lock being held, the lock is obtained and held for a short window\nseveral times by other competing processes.\n\nThis manifests as nodes occasionally getting stuck in the \"DEPLOYING\"\nstate during a deploy. For example, a user may attempt to open or access\nthe serial console before the deploy is complete--the serial console\nprocess obtains a lock and starves the conductor of the lock, so the\nconductor cannot finish the deploy. It\u0027s also possible a long heartbeat\nor badly-timed sequence of heartbeats could do the same.\n\nTo fix this, this commit introduces the concept of a \"patient\" lock,\nwhich will retry indefinitely until it doesn\u0027t encounter the NodeLocked\nexception. This overrides any retry behavior.\n\n  .. note::\n     There may be other cases where such a lock is desired.\n\nStory: #2008323\nChange-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/c20375c3d67d483b7d6d8a5e69366b95194f36e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/c20375c3d67d483b7d6d8a5e69366b95194f36e3"}]},"branch":"refs/heads/master"},"4c3afedb967da7a8a6c184610232f5f0dea0b5d1":{"kind":"REWORK","_number":2,"created":"2020-11-05 19:45:28.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/53/761653/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic","ref":"refs/changes/53/761653/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic refs/changes/53/761653/2"}}},"commit":{"parents":[{"commit":"08bf8dee65acead2b08ca4563a273cd9bb60c5b4","subject":"Merge \"Add node name to ironic-conductor ramdisk log filename\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/08bf8dee65acead2b08ca4563a273cd9bb60c5b4"}]}],"author":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:14:33.000000000","tz":-360},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 19:45:06.000000000","tz":-360},"subject":"Always retry locking when performing task handoff","message":"Always retry locking when performing task handoff\n\nThere are some Ironic execution workflows where there is not an easy way\nto retry, such as when attempting to hand off the processing of an async\ntask to a conductor. Task handoff can require releasing a lock on the\nnode, so the next entity processing the task can acquire the lock\nitself. However, this is vulnerable to race conditions, as there is no\nuniform retry mechanism built in to such handoffs. Consider the\ncontinue_node_deploy/clean logic, which does this:\n\n  method \u003d \u0027continue_node_%s\u0027 % operation\n  # Need to release the lock to let the conductor take it\n  task.release_resources()\n  getattr(rpc, method)(task.context, uuid, topic\u003dtopic\n\nIf another process obtains a lock between the releasing of resources and\nthe acquiring of the lock during the continue_node_* operation, and\nholds the lock longer than the max attempt * interval window (which\ndefaults to 3 seconds), then the handoff will never complete. Beyond\nthat, because there is no proper queue for processes waiting on the\nlock, there is no fairness, so it\u0027s also possible that instead of one\nlong lock being held, the lock is obtained and held for a short window\nseveral times by other competing processes.\n\nThis manifests as nodes occasionally getting stuck in the \"DEPLOYING\"\nstate during a deploy. For example, a user may attempt to open or access\nthe serial console before the deploy is complete--the serial console\nprocess obtains a lock and starves the conductor of the lock, so the\nconductor cannot finish the deploy. It\u0027s also possible a long heartbeat\nor badly-timed sequence of heartbeats could do the same.\n\nTo fix this, this commit introduces the concept of a \"patient\" lock,\nwhich will retry indefinitely until it doesn\u0027t encounter the NodeLocked\nexception. This overrides any retry behavior.\n\n  .. note::\n     There may be other cases where such a lock is desired.\n\nStory: #2008323\nChange-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/4c3afedb967da7a8a6c184610232f5f0dea0b5d1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/4c3afedb967da7a8a6c184610232f5f0dea0b5d1"}]},"branch":"refs/heads/master"},"00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced":{"kind":"REWORK","_number":3,"created":"2020-11-09 22:01:37.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/53/761653/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic","ref":"refs/changes/53/761653/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic refs/changes/53/761653/3"}}},"commit":{"parents":[{"commit":"08bf8dee65acead2b08ca4563a273cd9bb60c5b4","subject":"Merge \"Add node name to ironic-conductor ramdisk log filename\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/08bf8dee65acead2b08ca4563a273cd9bb60c5b4"}]}],"author":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:14:33.000000000","tz":-360},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-09 22:01:30.000000000","tz":-360},"subject":"Always retry locking when performing task handoff","message":"Always retry locking when performing task handoff\n\nThere are some Ironic execution workflows where there is not an easy way\nto retry, such as when attempting to hand off the processing of an async\ntask to a conductor. Task handoff can require releasing a lock on the\nnode, so the next entity processing the task can acquire the lock\nitself. However, this is vulnerable to race conditions, as there is no\nuniform retry mechanism built in to such handoffs. Consider the\ncontinue_node_deploy/clean logic, which does this:\n\n  method \u003d \u0027continue_node_%s\u0027 % operation\n  # Need to release the lock to let the conductor take it\n  task.release_resources()\n  getattr(rpc, method)(task.context, uuid, topic\u003dtopic\n\nIf another process obtains a lock between the releasing of resources and\nthe acquiring of the lock during the continue_node_* operation, and\nholds the lock longer than the max attempt * interval window (which\ndefaults to 3 seconds), then the handoff will never complete. Beyond\nthat, because there is no proper queue for processes waiting on the\nlock, there is no fairness, so it\u0027s also possible that instead of one\nlong lock being held, the lock is obtained and held for a short window\nseveral times by other competing processes.\n\nThis manifests as nodes occasionally getting stuck in the \"DEPLOYING\"\nstate during a deploy. For example, a user may attempt to open or access\nthe serial console before the deploy is complete--the serial console\nprocess obtains a lock and starves the conductor of the lock, so the\nconductor cannot finish the deploy. It\u0027s also possible a long heartbeat\nor badly-timed sequence of heartbeats could do the same.\n\nTo fix this, this commit introduces the concept of a \"patient\" lock,\nwhich will retry indefinitely until it doesn\u0027t encounter the NodeLocked\nexception. This overrides any retry behavior.\n\n  .. note::\n     There may be other cases where such a lock is desired.\n\nStory: #2008323\nChange-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/00fdd88e0c6f7d4eb91127bbbfeacf5262dc0ced"}]},"branch":"refs/heads/master"},"98ae6c38225679030e534c3f916812e910ef5ae0":{"kind":"REWORK","_number":4,"created":"2020-11-09 23:48:26.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/53/761653/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic","ref":"refs/changes/53/761653/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic refs/changes/53/761653/4"}}},"commit":{"parents":[{"commit":"08bf8dee65acead2b08ca4563a273cd9bb60c5b4","subject":"Merge \"Add node name to ironic-conductor ramdisk log filename\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/08bf8dee65acead2b08ca4563a273cd9bb60c5b4"}]}],"author":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:14:33.000000000","tz":-360},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-09 23:48:17.000000000","tz":-360},"subject":"Always retry locking when performing task handoff","message":"Always retry locking when performing task handoff\n\nThere are some Ironic execution workflows where there is not an easy way\nto retry, such as when attempting to hand off the processing of an async\ntask to a conductor. Task handoff can require releasing a lock on the\nnode, so the next entity processing the task can acquire the lock\nitself. However, this is vulnerable to race conditions, as there is no\nuniform retry mechanism built in to such handoffs. Consider the\ncontinue_node_deploy/clean logic, which does this:\n\n  method \u003d \u0027continue_node_%s\u0027 % operation\n  # Need to release the lock to let the conductor take it\n  task.release_resources()\n  getattr(rpc, method)(task.context, uuid, topic\u003dtopic\n\nIf another process obtains a lock between the releasing of resources and\nthe acquiring of the lock during the continue_node_* operation, and\nholds the lock longer than the max attempt * interval window (which\ndefaults to 3 seconds), then the handoff will never complete. Beyond\nthat, because there is no proper queue for processes waiting on the\nlock, there is no fairness, so it\u0027s also possible that instead of one\nlong lock being held, the lock is obtained and held for a short window\nseveral times by other competing processes.\n\nThis manifests as nodes occasionally getting stuck in the \"DEPLOYING\"\nstate during a deploy. For example, a user may attempt to open or access\nthe serial console before the deploy is complete--the serial console\nprocess obtains a lock and starves the conductor of the lock, so the\nconductor cannot finish the deploy. It\u0027s also possible a long heartbeat\nor badly-timed sequence of heartbeats could do the same.\n\nTo fix this, this commit introduces the concept of a \"patient\" lock,\nwhich will retry indefinitely until it doesn\u0027t encounter the NodeLocked\nexception. This overrides any retry behavior.\n\n  .. note::\n     There may be other cases where such a lock is desired.\n\nStory: #2008323\nChange-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/98ae6c38225679030e534c3f916812e910ef5ae0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/98ae6c38225679030e534c3f916812e910ef5ae0"}]},"branch":"refs/heads/master"},"bfc2ad56d558fbb73497dcf641b61a5ab0c23b5f":{"kind":"REWORK","_number":5,"created":"2020-11-24 15:42:04.000000000","uploader":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"ref":"refs/changes/53/761653/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ironic","ref":"refs/changes/53/761653/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ironic refs/changes/53/761653/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ironic refs/changes/53/761653/5"}}},"commit":{"parents":[{"commit":"08bf8dee65acead2b08ca4563a273cd9bb60c5b4","subject":"Merge \"Add node name to ironic-conductor ramdisk log filename\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/08bf8dee65acead2b08ca4563a273cd9bb60c5b4"}]}],"author":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-05 18:14:33.000000000","tz":-360},"committer":{"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","date":"2020-11-24 15:41:38.000000000","tz":-360},"subject":"Always retry locking when performing task handoff","message":"Always retry locking when performing task handoff\n\nThere are some Ironic execution workflows where there is not an easy way\nto retry, such as when attempting to hand off the processing of an async\ntask to a conductor. Task handoff can require releasing a lock on the\nnode, so the next entity processing the task can acquire the lock\nitself. However, this is vulnerable to race conditions, as there is no\nuniform retry mechanism built in to such handoffs. Consider the\ncontinue_node_deploy/clean logic, which does this:\n\n  method \u003d \u0027continue_node_%s\u0027 % operation\n  # Need to release the lock to let the conductor take it\n  task.release_resources()\n  getattr(rpc, method)(task.context, uuid, topic\u003dtopic\n\nIf another process obtains a lock between the releasing of resources and\nthe acquiring of the lock during the continue_node_* operation, and\nholds the lock longer than the max attempt * interval window (which\ndefaults to 3 seconds), then the handoff will never complete. Beyond\nthat, because there is no proper queue for processes waiting on the\nlock, there is no fairness, so it\u0027s also possible that instead of one\nlong lock being held, the lock is obtained and held for a short window\nseveral times by other competing processes.\n\nThis manifests as nodes occasionally getting stuck in the \"DEPLOYING\"\nstate during a deploy. For example, a user may attempt to open or access\nthe serial console before the deploy is complete--the serial console\nprocess obtains a lock and starves the conductor of the lock, so the\nconductor cannot finish the deploy. It\u0027s also possible a long heartbeat\nor badly-timed sequence of heartbeats could do the same.\n\nTo fix this, this commit introduces the concept of a \"patient\" lock,\nwhich will retry indefinitely until it doesn\u0027t encounter the NodeLocked\nexception. This overrides any retry behavior.\n\n  .. note::\n     There may be other cases where such a lock is desired.\n\nStory: #2008323\nChange-Id: I9937fab18a50111ec56a3fd023cdb9d510a1e990\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/bfc2ad56d558fbb73497dcf641b61a5ab0c23b5f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ironic/commit/bfc2ad56d558fbb73497dcf641b61a5ab0c23b5f"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
