)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-30 10:53:44 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"TURBOWIP: Add a host/node consistency check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"63b9deca_db0769d9","line":7,"updated":"2023-01-30 19:39:52.000000000","message":"i think we are suing hostname differently\n\nwhen i refer to a hostname change its genrealy means a change in hypervior_hostname\nwhich may or may not result in a change of CONF.host.\n\n\nfor the libvirt driver they will be the same by defualt but may not be depending on the config.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-30 10:53:44 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"TURBOWIP: Add a host/node consistency check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"8d7ad78c_88f705e7","line":7,"in_reply_to":"33c4c269_19ea444a","updated":"2023-02-01 05:48:48.000000000","message":"Ack","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"31e3737588549300ec8e9341261abba0b257a78a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-30 10:53:44 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"TURBOWIP: Add a host/node consistency check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f555594f_79e13513","line":7,"in_reply_to":"63b9deca_db0769d9","updated":"2023-01-30 19:47:56.000000000","message":"by the way i think we both read/interpeted\n\n\"\"\"The compute service will use this locally-persisted UUID to reliably find the ComputeNode record, and will check for a potential hostname (or CONF.host) change on startup. If such a rename is detected, nova-compute will fail to start and warn about the situation.\"\"\"\n\nin the  spec differntly\n\nthat is what i ment here\n\ni read that as saying\n\nwill check for a potential hostname change or a potentail CONF.host change.\n\nnot impyting that a hostname change is equivalent to or impiles  a change in CONF.host\n\nanyway i dont want you to get frustrated because we interpreed that section of the spec differntly.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c6eab64bee2b966e03e7bfba24243f26d1ca8e72","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-30 10:53:44 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"TURBOWIP: Add a host/node consistency check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"33c4c269_19ea444a","line":7,"in_reply_to":"f555594f_79e13513","updated":"2023-01-30 19:50:56.000000000","message":"also for context i interperted \n\n\"will check for a potential hostname (or CONF.host)\"\n\nas implying the primary thing to detect was the hypervior_hostname change and that detectign the service host change via a change in CONF.host was secondary or of lesser imporance.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ab010e60318085d3c07ab71a5632858d957db92b","unresolved":true,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"89d85667_ceb47580","line":13,"updated":"2023-01-31 15:50:08.000000000","message":"agreed on the cases.\nMHO : \n- either the file is precreated by the operator before nova-compute service startup, and then we trust the file (the operator *has to* ensure the file content is relevant)\n- or no file is precreated and then nova assumes to manage this file\n\nEither way, if a file is missing after a non-upgrade restart, that means that both conditions are violated and we should prevent nova to blindly recreate a file since the assumptions would be incorrect.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"95bfab9cf6eed5ab054e4e44314969f04c0a320e","unresolved":true,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"0fa7d5af_23a97af8","line":13,"in_reply_to":"451ea963_e10c5016","updated":"2023-01-31 16:15:09.000000000","message":"Yep, as I\u0027ve said, I think this is nova internal state, and just like we wouldn\u0027t expect nova to recover from deleting random stuff from the database, neither should be jump through hoops here. At least what I have here adds a \"you have to lose two things to lose your identity\" sort of backup.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa6f158eed9308600fee656fabd30729c1961922","unresolved":true,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e42913b1_43f58fc1","line":13,"in_reply_to":"451ea963_e10c5016","updated":"2023-01-31 16:15:50.000000000","message":"yep we cant protect againt multiple pebkac issues\n\nwe can tollerate a rename or a file delteion/clobber but not both.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"401219f59d45caa48b286573effe5bb62d8b862a","unresolved":true,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"451ea963_e10c5016","line":13,"in_reply_to":"617b134d_bb0521dc","updated":"2023-01-31 16:00:07.000000000","message":"Then if operators are afraid of loosing such information, they should do some 3rd-party tooling for keeping persistence of such file contents.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f28ef23c692ae8037ea45e7943b9463b3c78833e","unresolved":true,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"617b134d_bb0521dc","line":13,"in_reply_to":"89d85667_ceb47580","updated":"2023-01-31 15:58:35.000000000","message":"Cool, but we also need to understand the limitations here. If you have both lost the node identity file *and* renamed the host, there\u0027s no way for nova to know that it\u0027s not a new never-before-started greenfield compute.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":10,"context_line":"write a node_uuid file if one does not exist. If we are upgrading,"},{"line_number":11,"context_line":"we expect to do the same. However, if we are starting up not after an"},{"line_number":12,"context_line":"upgrade and not for the first time, a missing compute_id file is an"},{"line_number":13,"context_line":"error, and we should abort."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related to blueprint stable-compute-uuid"},{"line_number":16,"context_line":"Change-Id: If83ce14b96e7d84ae38eba9d798754557d5abdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9e9bd837_fee2c643","line":13,"in_reply_to":"e42913b1_43f58fc1","updated":"2023-02-01 05:48:48.000000000","message":"Ack","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d3ebacb7_6abf7899","updated":"2023-01-30 19:39:52.000000000","message":"im going to finish in 20mins but ill pull this down and take a look a the test failure between now and then.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b18d5b2e50b563cf2b2469f15ae6fabaf82a2cb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c62f2038_8fc91d14","updated":"2023-01-31 15:24:52.000000000","message":"This catches the case where compute_id has been deleted and we\u0027re not new or upgrading, so I think it\u0027s worth doing this because it\u0027s easy. I\u0027m waiting for feedback before I fix all the tests this will likely break.","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa6f158eed9308600fee656fabd30729c1961922","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b9135975_8be8793c","updated":"2023-01-31 16:15:50.000000000","message":"i think directionlaly im ok with this simpler approch","commit_id":"b70ab28597be38b1649ce120bf0d3e97987d35fe"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1c8729d3330bddca01b7aac0dd682153a5befbbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1f2c0c9e_347674dc","updated":"2023-02-01 10:54:07.000000000","message":"Looks good","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2fde5b9c3e58a73643013a496407b0dd8ec12226","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0363c90b_c8be9413","updated":"2023-02-01 16:11:47.000000000","message":"Looks like this breaks ironic\u0027s devstack somehow, so dropping a -2 to make sure it doesn\u0027t make it to gate","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5202d8776d79d65ad5a640e6c05ad1a139634ce3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b8ec13c4_d569124f","updated":"2023-02-01 16:26:27.000000000","message":"Oh, duh, because the \"never for ironic\" check needs to be above the service version one.","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"55564bde3b7c071e1e9171611b2e907e3e046a65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bfe06237_844e8df9","updated":"2023-01-31 21:58:33.000000000","message":"recheck nova-next guest kernel panic","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec7bcad3259658e4605816f168c04e921986c545","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"39369bf7_0968246a","updated":"2023-02-01 05:23:49.000000000","message":"recheck slow node","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e51b4d12cdcec79b5115f93f68752486648fe8d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e8ae96a6_279a8bd3","updated":"2023-02-01 14:36:55.000000000","message":"recheck smoke test timeout","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"266fe4e41c71a994320e6b5b1ccfdb9728a1d310","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"973f4ca9_8a06a259","updated":"2023-02-02 14:24:50.000000000","message":"Ironic is all good with this: https://review.opendev.org/c/openstack/ironic/+/871838","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ad762f24cf317df4d323d0ac8c8ffd8bb4765c7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2e3711df_d7db08ba","updated":"2023-02-03 22:38:41.000000000","message":"LGTM","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ccb9fce9de8b5a2afc7fc5ec94de499a192cdadd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a85cf1a2_ec29c1f4","updated":"2023-02-01 18:53:29.000000000","message":"Leaving the -W on here until the ironic job finishes, but the ordering change of the ironic check should have fixed this.","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"847d57347c61c1a74e89abf33a6e8964f1c4201c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b59374db_5c99139a","updated":"2023-02-02 14:42:57.000000000","message":"readding +2 this looks good and ironic is now fixed ","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0119f8f785baebd07deda6f2d747cb0cbe1dfe29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"765ff10e_d232d1a7","updated":"2023-02-06 22:43:53.000000000","message":"recheck le sigh job timeouts","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7445d66e5cb7e5e037a27190ce0c16b674a42d49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f9fc2b4f_1dd7bae6","updated":"2023-02-06 14:34:18.000000000","message":"recheck multiple job timeouts","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9ee3e41a783224ec803a59e4031abe99bae6853e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"098906f6_59d857be","updated":"2023-02-05 22:09:29.000000000","message":"recheck timeout","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d320aa4a8d529c0825c29d841fed21727846fc65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"852bb0eb_bebb5a11","updated":"2023-02-06 17:52:00.000000000","message":"recheck volume failures random functional failures and a neutron failure","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":true,"context_lines":[{"line_number":1562,"context_line":"        happened are:"},{"line_number":1563,"context_line":"          - Our node-local uuid file was regenerated behind our back"},{"line_number":1564,"context_line":"          - Our node-local uuid file was deleted"},{"line_number":1565,"context_line":"          - We were started with a hostname that matches another compute node"},{"line_number":1566,"context_line":"        \"\"\""},{"line_number":1567,"context_line":"        my_node \u003d nova.virt.node.read_local_node_uuid()"},{"line_number":1568,"context_line":"        context \u003d nova.context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"66b61a01_4d9955e2","line":1565,"updated":"2023-01-30 19:39:52.000000000","message":"nit: \"we were started with a CONF.host value ...\"","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":1562,"context_line":"        happened are:"},{"line_number":1563,"context_line":"          - Our node-local uuid file was regenerated behind our back"},{"line_number":1564,"context_line":"          - Our node-local uuid file was deleted"},{"line_number":1565,"context_line":"          - We were started with a hostname that matches another compute node"},{"line_number":1566,"context_line":"        \"\"\""},{"line_number":1567,"context_line":"        my_node \u003d nova.virt.node.read_local_node_uuid()"},{"line_number":1568,"context_line":"        context \u003d nova.context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"625323fa_d930ab4d","line":1565,"in_reply_to":"66b61a01_4d9955e2","updated":"2023-02-01 05:48:48.000000000","message":"Done","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":true,"context_lines":[{"line_number":1569,"context_line":"        db_nodes \u003d objects.ComputeNodeList.get_all_by_host(context, self.host)"},{"line_number":1570,"context_line":"        if any(node.uuid !\u003d my_node for node in db_nodes):"},{"line_number":1571,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1572,"context_line":"                \u0027Hostname conflict detected; my node uuid is %s, but node(s) \u0027"},{"line_number":1573,"context_line":"                \u0027%s exist with my hostname\u0027 % ("},{"line_number":1574,"context_line":"                    my_node,"},{"line_number":1575,"context_line":"                    \u0027,\u0027.join(node.uuid for node in db_nodes"}],"source_content_type":"text/x-python","patch_set":1,"id":"554fc4a9_65910edd","line":1572,"range":{"start_line":1572,"start_character":17,"end_line":1572,"end_character":25},"updated":"2023-01-30 19:39:52.000000000","message":"service host","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":1569,"context_line":"        db_nodes \u003d objects.ComputeNodeList.get_all_by_host(context, self.host)"},{"line_number":1570,"context_line":"        if any(node.uuid !\u003d my_node for node in db_nodes):"},{"line_number":1571,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1572,"context_line":"                \u0027Hostname conflict detected; my node uuid is %s, but node(s) \u0027"},{"line_number":1573,"context_line":"                \u0027%s exist with my hostname\u0027 % ("},{"line_number":1574,"context_line":"                    my_node,"},{"line_number":1575,"context_line":"                    \u0027,\u0027.join(node.uuid for node in db_nodes"}],"source_content_type":"text/x-python","patch_set":1,"id":"2e9f144b_57e03ebe","line":1572,"range":{"start_line":1572,"start_character":17,"end_line":1572,"end_character":25},"in_reply_to":"554fc4a9_65910edd","updated":"2023-02-01 05:48:48.000000000","message":"Done","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":true,"context_lines":[{"line_number":1570,"context_line":"        if any(node.uuid !\u003d my_node for node in db_nodes):"},{"line_number":1571,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1572,"context_line":"                \u0027Hostname conflict detected; my node uuid is %s, but node(s) \u0027"},{"line_number":1573,"context_line":"                \u0027%s exist with my hostname\u0027 % ("},{"line_number":1574,"context_line":"                    my_node,"},{"line_number":1575,"context_line":"                    \u0027,\u0027.join(node.uuid for node in db_nodes"},{"line_number":1576,"context_line":"                             if node.uuid !\u003d my_node)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"6f2e5f2d_50aa2605","line":1573,"range":{"start_line":1573,"start_character":34,"end_line":1573,"end_character":42},"updated":"2023-01-30 19:39:52.000000000","message":"host value","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":1570,"context_line":"        if any(node.uuid !\u003d my_node for node in db_nodes):"},{"line_number":1571,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1572,"context_line":"                \u0027Hostname conflict detected; my node uuid is %s, but node(s) \u0027"},{"line_number":1573,"context_line":"                \u0027%s exist with my hostname\u0027 % ("},{"line_number":1574,"context_line":"                    my_node,"},{"line_number":1575,"context_line":"                    \u0027,\u0027.join(node.uuid for node in db_nodes"},{"line_number":1576,"context_line":"                             if node.uuid !\u003d my_node)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"31a3dd4e_50ce32f2","line":1573,"range":{"start_line":1573,"start_character":34,"end_line":1573,"end_character":42},"in_reply_to":"6f2e5f2d_50aa2605","updated":"2023-02-01 05:48:48.000000000","message":"Done","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"96cb4371b0267be0d67b9c69e5bf62fa7712cf53","unresolved":true,"context_lines":[{"line_number":1583,"context_line":"            # to record a locally-persistent node identity because"},{"line_number":1584,"context_line":"            # we have upgraded from a previous version."},{"line_number":1585,"context_line":"            migrated \u003d self._ensure_existing_node_identity(service_ref)"},{"line_number":1586,"context_line":"            if not migrated:"},{"line_number":1587,"context_line":"                # If we didn\u0027t migrate our node uuid into the persistence"},{"line_number":1588,"context_line":"                # file, we make sure that whatever is there finds us compute"},{"line_number":1589,"context_line":"                # nodes with a hostname matching ours."}],"source_content_type":"text/x-python","patch_set":1,"id":"3b2d03eb_a74a578a","line":1586,"updated":"2023-01-30 23:14:04.000000000","message":"I need to test this (tomorrow), but I wonder if we can simplify all of this and say:\n\n - If we were started with a service ref and we are upgrading, we\n   write our uuid out (once)\n - If we were started without a service ref, we are greenfield, so\n   we generate and write a uuid (once)\n - Otherwise we fail because one of the two already happened and\n   the file has been removed.\n \nIt doesn\u0027t cover the case where the file gets re-written with another random uuid by poorly-written ansible, but I still argue that randomly clobbering other persistent state is generally off the table anyway. Improving the error message we log when the name conflict happens in the RT would help make it clearer what happened there.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":1583,"context_line":"            # to record a locally-persistent node identity because"},{"line_number":1584,"context_line":"            # we have upgraded from a previous version."},{"line_number":1585,"context_line":"            migrated \u003d self._ensure_existing_node_identity(service_ref)"},{"line_number":1586,"context_line":"            if not migrated:"},{"line_number":1587,"context_line":"                # If we didn\u0027t migrate our node uuid into the persistence"},{"line_number":1588,"context_line":"                # file, we make sure that whatever is there finds us compute"},{"line_number":1589,"context_line":"                # nodes with a hostname matching ours."}],"source_content_type":"text/x-python","patch_set":1,"id":"0ff797fd_0b748a00","line":1586,"in_reply_to":"3b2d03eb_a74a578a","updated":"2023-02-01 05:48:48.000000000","message":"Done","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"847d57347c61c1a74e89abf33a6e8964f1c4201c","unresolved":true,"context_lines":[{"line_number":1512,"context_line":"        if \u0027ironic\u0027 in CONF.compute_driver.lower():"},{"line_number":1513,"context_line":"            # We do not persist a single local node identity for"},{"line_number":1514,"context_line":"            # ironic"},{"line_number":1515,"context_line":"            return"},{"line_number":1516,"context_line":""},{"line_number":1517,"context_line":"        if service_ref.version \u003e\u003d service_obj.NODE_IDENTITY_VERSION:"},{"line_number":1518,"context_line":"            # Already new enough, nothing to do here, but make sure that we"}],"source_content_type":"text/x-python","patch_set":7,"id":"4f9cbafd_91d59ce2","line":1515,"updated":"2023-02-02 14:42:57.000000000","message":"ah yes i see.\nya simple fix vs v5","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":36932,"name":"Xiao Feng Ren","display_name":"renxiaof","email":"renxiaof@cn.ibm.com","username":"renxiaof2000"},"change_message_id":"e0dd56be2d3ff2b18f91e8a2d0f4b04bf357ba90","unresolved":true,"context_lines":[{"line_number":1518,"context_line":"            # Already new enough, nothing to do here, but make sure that we"},{"line_number":1519,"context_line":"            # have a UUID file already, as this is not our first time starting."},{"line_number":1520,"context_line":"            if nova.virt.node.read_local_node_uuid() is None:"},{"line_number":1521,"context_line":"                raise exception.InvalidConfiguration("},{"line_number":1522,"context_line":"                    (\u0027No local node identity found, but this is not our \u0027"},{"line_number":1523,"context_line":"                     \u0027first startup on this host. Refusing to start after \u0027"},{"line_number":1524,"context_line":"                     \u0027potentially having lost that state!\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"b300c475_86e21fdf","line":1521,"updated":"2024-03-27 08:03:20.000000000","message":"One confusion here, if the compute_id file is deleted by accident, can we create this file with compute uuid from the database directly like the upgrade behavior in the below?","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5664d0907f96b37325af8c9a4d150bc071fd2055","unresolved":true,"context_lines":[{"line_number":1518,"context_line":"            # Already new enough, nothing to do here, but make sure that we"},{"line_number":1519,"context_line":"            # have a UUID file already, as this is not our first time starting."},{"line_number":1520,"context_line":"            if nova.virt.node.read_local_node_uuid() is None:"},{"line_number":1521,"context_line":"                raise exception.InvalidConfiguration("},{"line_number":1522,"context_line":"                    (\u0027No local node identity found, but this is not our \u0027"},{"line_number":1523,"context_line":"                     \u0027first startup on this host. Refusing to start after \u0027"},{"line_number":1524,"context_line":"                     \u0027potentially having lost that state!\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"67a2a570_9045d346","line":1521,"in_reply_to":"b300c475_86e21fdf","updated":"2024-03-27 13:42:44.000000000","message":"We specifically *don\u0027t* want to do that. The point of this work is to make sure we have a way to positively identify this node. Since we can\u0027t trust that our hostname hasn\u0027t changed, we don\u0027t know which record in the database is ours, and thus which uuid represents us. The upgrade case is specifically to ease migration to this. Since we didn\u0027t have anything before upgrade, and we can hope that during upgrade, everything is correct, we agree to write the uuid one time. But, the checks to make sure we never do it again are there to avoid the \"hmm, my uuid is missing, I guess I\u0027ll just assume my hostname is correct\" case. The latter is specifically the situation this work was designed to prevent, as it ends up quickly corrupting your database.","commit_id":"d892905904fd8ed7b5bb916ca4a119997ea0c9a7"}],"nova/tests/fixtures/nova.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d35de7bf625d433e1222d2e6d09e084b73eff0b0","unresolved":true,"context_lines":[{"line_number":101,"context_line":"            nodename \u003d \u0027fake-mini\u0027"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            nodename \u003d self.service.host"},{"line_number":104,"context_line":"        this_node_uuid \u003d self.uuid_for_hostname(self.service.host, nodename)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        with mock.patch.multiple("},{"line_number":107,"context_line":"                node,"}],"source_content_type":"text/x-python","patch_set":1,"id":"2afa12ab_45d6be1b","line":104,"range":{"start_line":104,"start_character":48,"end_line":104,"end_character":65},"updated":"2023-01-30 19:39:52.000000000","message":"this is not the hostname.","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            nodename \u003d \u0027fake-mini\u0027"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            nodename \u003d self.service.host"},{"line_number":104,"context_line":"        this_node_uuid \u003d self.uuid_for_hostname(self.service.host, nodename)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        with mock.patch.multiple("},{"line_number":107,"context_line":"                node,"}],"source_content_type":"text/x-python","patch_set":1,"id":"cd95cb0a_0a950d4b","line":104,"range":{"start_line":104,"start_character":48,"end_line":104,"end_character":65},"in_reply_to":"2afa12ab_45d6be1b","updated":"2023-02-01 05:48:48.000000000","message":"Ack","commit_id":"4f5da7e9663f1141204864b8eb777b59b21e6770"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":true,"context_lines":[{"line_number":1866,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":1867,"context_line":"            \u0027nova.compute.manager.ComputeManager.\u0027"},{"line_number":1868,"context_line":"            \u0027_ensure_existing_node_identity\u0027,"},{"line_number":1869,"context_line":"            mock.DEFAULT))"}],"source_content_type":"text/x-python","patch_set":5,"id":"491e51ee_987a993d","line":1869,"updated":"2023-02-01 05:48:48.000000000","message":"looks like this is working looking at the the test results so cool\nwe can turn this off if we want to test the functionaliy and for everything else its stubbed since testing this is out of scope of most tests +1","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"847d57347c61c1a74e89abf33a6e8964f1c4201c","unresolved":false,"context_lines":[{"line_number":1866,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":1867,"context_line":"            \u0027nova.compute.manager.ComputeManager.\u0027"},{"line_number":1868,"context_line":"            \u0027_ensure_existing_node_identity\u0027,"},{"line_number":1869,"context_line":"            mock.DEFAULT))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3778de8c_7559b6e0","line":1869,"in_reply_to":"491e51ee_987a993d","updated":"2023-02-02 14:42:57.000000000","message":"Ack","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":true,"context_lines":[{"line_number":91,"context_line":"    # os-brick\u003e\u003d5.1 now uses external file system locks instead of internal"},{"line_number":92,"context_line":"    # locks so we need to set up locking"},{"line_number":93,"context_line":"    REQUIRES_LOCKING \u003d True"},{"line_number":94,"context_line":"    STUB_COMPUTE_ID \u003d False"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def setUp(self):"},{"line_number":97,"context_line":"        super(ComputeManagerUnitTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffd9c229_73a4e9bd","line":94,"updated":"2023-02-01 05:48:48.000000000","message":"cool glad to see this working.","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"847d57347c61c1a74e89abf33a6e8964f1c4201c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    # os-brick\u003e\u003d5.1 now uses external file system locks instead of internal"},{"line_number":92,"context_line":"    # locks so we need to set up locking"},{"line_number":93,"context_line":"    REQUIRES_LOCKING \u003d True"},{"line_number":94,"context_line":"    STUB_COMPUTE_ID \u003d False"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def setUp(self):"},{"line_number":97,"context_line":"        super(ComputeManagerUnitTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"96df5069_97e463bd","line":94,"in_reply_to":"ffd9c229_73a4e9bd","updated":"2023-02-02 14:42:57.000000000","message":"Ack","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c5309cdfc32c52965a3bc392d4ebedee34e19fb","unresolved":true,"context_lines":[{"line_number":6460,"context_line":"        self.assertRaises(exception.InvalidConfiguration,"},{"line_number":6461,"context_line":"                          self.compute._ensure_existing_node_identity,"},{"line_number":6462,"context_line":"                          mock_service)"},{"line_number":6463,"context_line":"        mock_read.assert_called_once_with()"},{"line_number":6464,"context_line":""},{"line_number":6465,"context_line":"    def test_ensure_node_uuid_called_by_init_host(self):"},{"line_number":6466,"context_line":"        # test_init_host() above ensures that we do not call"}],"source_content_type":"text/x-python","patch_set":5,"id":"c334ba76_8db9c799","line":6463,"updated":"2023-02-01 05:48:48.000000000","message":"+1","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"847d57347c61c1a74e89abf33a6e8964f1c4201c","unresolved":false,"context_lines":[{"line_number":6460,"context_line":"        self.assertRaises(exception.InvalidConfiguration,"},{"line_number":6461,"context_line":"                          self.compute._ensure_existing_node_identity,"},{"line_number":6462,"context_line":"                          mock_service)"},{"line_number":6463,"context_line":"        mock_read.assert_called_once_with()"},{"line_number":6464,"context_line":""},{"line_number":6465,"context_line":"    def test_ensure_node_uuid_called_by_init_host(self):"},{"line_number":6466,"context_line":"        # test_init_host() above ensures that we do not call"}],"source_content_type":"text/x-python","patch_set":5,"id":"6a00b487_f03b7e87","line":6463,"in_reply_to":"c334ba76_8db9c799","updated":"2023-02-02 14:42:57.000000000","message":"Ack","commit_id":"82fad1f7c5d83f6b991876973d62103e15d3c9a6"}]}
