)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c7879957a7475902c77add598bee211e229b9dfe","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Julia Kreger \u003cjuliaashleykreger@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-09 13:13:48 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove locks before RPC bus is started"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Incoming RPC requests can come in during the initialization window"},{"line_number":10,"context_line":"and as such we should not remove locks while the conductor could"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_ad529965","line":7,"updated":"2020-07-10 12:20:33.000000000","message":"I agree that this patch is useful, but this is not what this patch is doing. RPC is started in ironic.common.rpc_service before init_host is even called.\n\nWhat if instead we introduce a new call prepare_host that does all the stuff that can happen without the RPC running? Which likely includes everything before registering the conductor in the database.","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"30bf002e98cf838453ca43effd4eac3d78f1d1a0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Julia Kreger \u003cjuliaashleykreger@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-07-09 13:13:48 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove locks before RPC bus is started"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Incoming RPC requests can come in during the initialization window"},{"line_number":10,"context_line":"and as such we should not remove locks while the conductor could"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_21bccdda","line":7,"in_reply_to":"bf51134e_ad529965","updated":"2020-07-10 18:21:47.000000000","message":"shoot, I forgot it gets started there. Ugh.","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c7879957a7475902c77add598bee211e229b9dfe","unresolved":false,"context_lines":[{"line_number":15,"context_line":"the very first thing the conductor starts going upon"},{"line_number":16,"context_line":"initialization."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"rhbz# 1847305"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8e759168f1dc81cdcf430f3e33be990731595ec3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_0d4c65c6","line":18,"updated":"2020-07-10 12:20:33.000000000","message":"This won\u0027t work and is probably unclear to anyone outside of Red Hat. Let\u0027s use full links?","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"30bf002e98cf838453ca43effd4eac3d78f1d1a0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"the very first thing the conductor starts going upon"},{"line_number":16,"context_line":"initialization."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"rhbz# 1847305"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8e759168f1dc81cdcf430f3e33be990731595ec3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_212e8d42","line":18,"in_reply_to":"bf51134e_0d4c65c6","updated":"2020-07-10 18:21:47.000000000","message":"I semi-agree with you, but why the sudden change? We\u0027ve had rhbz# tagged changes roll through on occasion for a while. Which makes it cleaner to backport the same commit sha instead of ammending it and having a new sha","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"e0f925db1af1ebd175cc1539a8a5264d40cf28ea","unresolved":false,"context_lines":[{"line_number":15,"context_line":"the very first thing the conductor starts going upon"},{"line_number":16,"context_line":"initialization."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"rhbz# 1847305"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8e759168f1dc81cdcf430f3e33be990731595ec3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_c4007f05","line":18,"in_reply_to":"bf51134e_212e8d42","updated":"2020-07-10 21:26:02.000000000","message":"Gah, it is also private. *revises commit message*","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"34d6489c3a6a9a86d5337378d02154d615f5a7cd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"the very first thing the conductor starts going upon"},{"line_number":16,"context_line":"initialization."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"rhbz# 1847305"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8e759168f1dc81cdcf430f3e33be990731595ec3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf51134e_b0de5a3b","line":18,"in_reply_to":"bf51134e_c4007f05","updated":"2020-07-13 08:30:22.000000000","message":"Have we really used it? I think this way of tagging is specific to our downstream purposes.","commit_id":"1a77740a1d8e73ae94ebd6cfb17c7a65a8eb3318"}],"ironic/conductor/base_manager.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"dab1427493aeada367d93ec38112955d816e0c51","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        \"\"\"Prepares host for initialization"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        Removes existing database entries involved with node locking for nodes"},{"line_number":89,"context_line":"        in an transitory power state and nodes that are presently locked by"},{"line_number":90,"context_line":"        the hostname of this conductor."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        Under normal operation, this is also when the initial database"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_cd502936","line":89,"range":{"start_line":89,"start_character":11,"end_line":89,"end_character":13},"updated":"2020-07-28 07:00:01.000000000","message":"nit: a","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"dab1427493aeada367d93ec38112955d816e0c51","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # if we do not then we may squash our *new* locks from new work."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if not self.dbapi:"},{"line_number":102,"context_line":"            LOG.debug(\u0027Initializing database client.\u0027)"},{"line_number":103,"context_line":"            self.dbapi \u003d dbapi.get_instance()"},{"line_number":104,"context_line":"        LOG.debug(\u0027Removing stale locks from the database matching \u0027"},{"line_number":105,"context_line":"                  \u0027this conductor\\\u0027s hostname: %s\u0027, self.host)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_ad2e95a2","line":102,"updated":"2020-07-28 07:00:01.000000000","message":"nit: I would\u0027ve added self.host here as well","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b6a67ca81110fdae2344948f19d8a65f43cab598","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self._shutdown \u003d False"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        if not self.dbapi:"},{"line_number":128,"context_line":"            self.dbapi \u003d dbapi.get_instance()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self._keepalive_evt \u003d threading.Event()"},{"line_number":131,"context_line":"        \"\"\"Event for the keepalive thread.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_50ed3eee","line":128,"updated":"2020-07-13 08:33:29.000000000","message":"nit: we can just assume it\u0027s done in prepare_host","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b6a67ca81110fdae2344948f19d8a65f43cab598","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self._periodic_tasks_worker.add_done_callback("},{"line_number":203,"context_line":"            self._on_periodic_tasks_stop)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for state in states.STUCK_STATES_TREATED_AS_FAIL:"},{"line_number":206,"context_line":"            self._fail_transient_state("},{"line_number":207,"context_line":"                state,"},{"line_number":208,"context_line":"                _(\"The %(state)s state can\u0027t be resumed by conductor \""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_90bcf6dc","line":205,"updated":"2020-07-13 08:33:29.000000000","message":"I wonder if this should be moved as well.","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"14177fc65d87e47d98894605cb3ff6a8bb9d0ee1","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self._periodic_tasks_worker.add_done_callback("},{"line_number":203,"context_line":"            self._on_periodic_tasks_stop)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for state in states.STUCK_STATES_TREATED_AS_FAIL:"},{"line_number":206,"context_line":"            self._fail_transient_state("},{"line_number":207,"context_line":"                state,"},{"line_number":208,"context_line":"                _(\"The %(state)s state can\u0027t be resumed by conductor \""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_ebdd6b41","line":205,"in_reply_to":"bf51134e_22731918","updated":"2020-07-14 17:45:09.000000000","message":"I started digging down this rabbit hole. It starts becoming a larger change quite quickly because hash ring initialization needs to move... and thus driver initialization needs to move, and then carrying them across and getting everything to work with the split initialziaiton. Normally I wouldn\u0027t think too much about it, but the way the hash ring code works, it may just not be a good idea. :\\\n\nWe could fire up the hash ring, and fire it up again or maybe even fire it up as we start the service. The latter likely being the least negatively impacting.","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4d668a78aafc948309d0d6cc1004dca84d8674b9","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self._periodic_tasks_worker.add_done_callback("},{"line_number":203,"context_line":"            self._on_periodic_tasks_stop)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for state in states.STUCK_STATES_TREATED_AS_FAIL:"},{"line_number":206,"context_line":"            self._fail_transient_state("},{"line_number":207,"context_line":"                state,"},{"line_number":208,"context_line":"                _(\"The %(state)s state can\u0027t be resumed by conductor \""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_22731918","line":205,"in_reply_to":"bf51134e_90bcf6dc","updated":"2020-07-13 17:36:58.000000000","message":"I think so, but likely as a separate change","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f65b3a14a719394f2d7d5b51f620181e2d0890b8","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        self._periodic_tasks_worker.add_done_callback("},{"line_number":203,"context_line":"            self._on_periodic_tasks_stop)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for state in states.STUCK_STATES_TREATED_AS_FAIL:"},{"line_number":206,"context_line":"            self._fail_transient_state("},{"line_number":207,"context_line":"                state,"},{"line_number":208,"context_line":"                _(\"The %(state)s state can\u0027t be resumed by conductor \""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_fd84060d","line":205,"in_reply_to":"bf51134e_ebdd6b41","updated":"2020-07-15 08:33:21.000000000","message":"Ugh. Yeah. Ignore it for now.","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"}],"releasenotes/notes/remove-locks-first-d12ac27106f800f8.yaml":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"dab1427493aeada367d93ec38112955d816e0c51","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue where ``ironic-conductor`` initialization could return a"},{"line_number":5,"context_line":"    ``NodeNotLocked`` error for requests requiring locks when the conductor"},{"line_number":6,"context_line":"    was starting. This was due to the conductor was removing locks after"},{"line_number":7,"context_line":"    beginning accepting new work. The lock removal has been moved to after"},{"line_number":8,"context_line":"    the Database connectivity has been established but before the RPC bus"},{"line_number":9,"context_line":"    is initialized."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f560f44_2d3ba5eb","line":6,"range":{"start_line":6,"start_character":48,"end_line":6,"end_character":51},"updated":"2020-07-28 07:00:01.000000000","message":"nit: remove \u0027was\u0027","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b6a67ca81110fdae2344948f19d8a65f43cab598","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue where ``ironic-conductor`` initialization could return a"},{"line_number":5,"context_line":"    ``NodeNotLocked`` error for requests requiring locks when the conductor"},{"line_number":6,"context_line":"    was starting. This was due to the conductor was removing locks after"},{"line_number":7,"context_line":"    beginning accepting new work. The lock removal has been moved to after"},{"line_number":8,"context_line":"    the Database connectivity has been established but before the RPC bus"},{"line_number":9,"context_line":"    is initialized."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf51134e_d0b2ee05","line":6,"updated":"2020-07-13 08:33:29.000000000","message":"nit: s/starting/restarting/ I assume? Requests cannot be routed to a newly started conductor, it\u0027s not registered in the hash ring.","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4d668a78aafc948309d0d6cc1004dca84d8674b9","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue where ``ironic-conductor`` initialization could return a"},{"line_number":5,"context_line":"    ``NodeNotLocked`` error for requests requiring locks when the conductor"},{"line_number":6,"context_line":"    was starting. This was due to the conductor was removing locks after"},{"line_number":7,"context_line":"    beginning accepting new work. The lock removal has been moved to after"},{"line_number":8,"context_line":"    the Database connectivity has been established but before the RPC bus"},{"line_number":9,"context_line":"    is initialized."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf51134e_a258c989","line":6,"in_reply_to":"bf51134e_d0b2ee05","updated":"2020-07-13 17:36:58.000000000","message":"Restarting is more technically correct, however requests can still be routed with-in the ?30? second window, so I was thinking more of stop/start being a case as well.","commit_id":"d99aa632f72e63e3f60dfab5826c2446e6b9efdd"}]}
