)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"97e60618ca287a64c8e970a6ccf0b17218695d5a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Clean nodes stuck in CLEANING state when ir-cond restarts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a conductor managing a node dies abruptly mid cleaing, the"},{"line_number":10,"context_line":"node will get stuck in the CLEAING state."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia7bce4dff57569707de4fcf3002eac241a5aa85b"},{"line_number":13,"context_line":"Partial-Bug: #1461937"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_94c4fb92","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":34},"updated":"2016-08-19 15:58:22.000000000","message":"CLEANING","commit_id":"b1fb72e556660a2c284a5395870c80ce7e6fcbee"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a9cd2dc87dc7a3d861f94796f9a670a3a9227ae1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Clean nodes stuck in CLEANING state when ir-cond restarts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a conductor managing a node dies abruptly mid cleaing, the"},{"line_number":10,"context_line":"node will get stuck in the CLEAING state."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia7bce4dff57569707de4fcf3002eac241a5aa85b"},{"line_number":13,"context_line":"Partial-Bug: #1461937"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a89bdaa_0eba4e0a","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":34},"in_reply_to":"1ac06dbe_94c4fb92","updated":"2016-09-07 03:42:22.000000000","message":"Done","commit_id":"b1fb72e556660a2c284a5395870c80ce7e6fcbee"}],"ironic/conductor/base_manager.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"9943d2acfb4812f0484ac58c34411afe5f069e8f","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANING}"},{"line_number":173,"context_line":"        last_error \u003d (_(\"The cleaning can\u0027t be resumed by conductor \""},{"line_number":174,"context_line":"                        \"%s. Moving to fail state.\") % self.host)"},{"line_number":175,"context_line":"        self._fail_if_in_state(ironic_context.get_admin_context(), filters,"},{"line_number":176,"context_line":"                               states.CLEANING, \u0027provision_updated_at\u0027,"},{"line_number":177,"context_line":"                               last_error\u003dlast_error)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_a69ea304","line":174,"range":{"start_line":174,"start_character":39,"end_line":174,"end_character":43},"updated":"2016-09-16 22:05:22.000000000","message":"CLEANFAIL","commit_id":"1081271869ac4f54fa7f7a39acd33247eda76131"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e28afb87d845554d07330a96eade8c3cd6e3a8c4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                               states.DEPLOYING, \u0027provision_updated_at\u0027,"},{"line_number":168,"context_line":"                               last_error\u003dlast_error)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANING}"},{"line_number":171,"context_line":"        last_error \u003d (_(\"The cleaning can\u0027t be resumed by conductor \""},{"line_number":172,"context_line":"                        \"%s. Moving to fail state.\") % self.host)"},{"line_number":173,"context_line":"        self._fail_if_in_state(ironic_context.get_admin_context(), filters,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_af037b0c","line":170,"updated":"2016-12-19 17:16:23.000000000","message":"There are comments already on your patch with removing \u0027reserved\u0027: False filter with deploying states, I imagine the same thing applies to cleaning. Only the ones that belong to this conductor will have the reservation cleaned, but the conductor will try to process \u0027fail\u0027 event for all nodes mapped to it, so it may be trying to reserve the ones reserved by another dead conductor and be failing.","commit_id":"88839fed6a84ca4a9c65201811e19a8b4267399e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"e28afb87d845554d07330a96eade8c3cd6e3a8c4","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        filters \u003d {\u0027provision_state\u0027: states.CLEANING}"},{"line_number":171,"context_line":"        last_error \u003d (_(\"The cleaning can\u0027t be resumed by conductor \""},{"line_number":172,"context_line":"                        \"%s. Moving to fail state.\") % self.host)"},{"line_number":173,"context_line":"        self._fail_if_in_state(ironic_context.get_admin_context(), filters,"},{"line_number":174,"context_line":"                               states.CLEANING, \u0027provision_updated_at\u0027,"},{"line_number":175,"context_line":"                               last_error\u003dlast_error)"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_ef457317","line":173,"updated":"2016-12-19 17:16:23.000000000","message":"Also, as Ruby mentioned, would be good to have a helper function so that not to copy paste this for every new state.","commit_id":"88839fed6a84ca4a9c65201811e19a8b4267399e"}],"ironic/tests/unit/conductor/test_manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"256c210b9318f1b056dd4c10ab96006ae44b0ea9","unresolved":false,"context_lines":[{"line_number":1747,"context_line":"    def test__do_node_clean_automated_disabled(self, mock_validate):"},{"line_number":1748,"context_line":"        self.config(automated_clean\u003dFalse, group\u003d\u0027conductor\u0027)"},{"line_number":1749,"context_line":""},{"line_number":1750,"context_line":"        self._start_service()"},{"line_number":1751,"context_line":"        node \u003d obj_utils.create_test_node("},{"line_number":1752,"context_line":"            self.context, driver\u003d\u0027fake\u0027,"},{"line_number":1753,"context_line":"            provision_state\u003dstates.CLEANING,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_e0f43c5c","line":1750,"updated":"2016-09-07 13:23:45.000000000","message":"nit: I\u0027d prefer these changes to get mentioned in the commit message","commit_id":"5d64cf4feff3e808265b760a319a0e52c374355e"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"73df1a7ba6f3b74ecac76235ee3c3f61220d6c5b","unresolved":false,"context_lines":[{"line_number":1747,"context_line":"    def test__do_node_clean_automated_disabled(self, mock_validate):"},{"line_number":1748,"context_line":"        self.config(automated_clean\u003dFalse, group\u003d\u0027conductor\u0027)"},{"line_number":1749,"context_line":""},{"line_number":1750,"context_line":"        self._start_service()"},{"line_number":1751,"context_line":"        node \u003d obj_utils.create_test_node("},{"line_number":1752,"context_line":"            self.context, driver\u003d\u0027fake\u0027,"},{"line_number":1753,"context_line":"            provision_state\u003dstates.CLEANING,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_9a78cf2d","line":1750,"in_reply_to":"9a89bdaa_e0f43c5c","updated":"2016-09-09 06:34:11.000000000","message":"Done","commit_id":"5d64cf4feff3e808265b760a319a0e52c374355e"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"9943d2acfb4812f0484ac58c34411afe5f069e8f","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"                                    \u0027provision_updated_at\u0027,"},{"line_number":2438,"context_line":"                                    last_error\u003dmock.ANY)]"},{"line_number":2439,"context_line":"        mock_fail_if_state.assert_has_calls(expected_calls)"},{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"@mgr_utils.mock_record_keepalive"},{"line_number":2443,"context_line":"class ConsoleTestCase(mgr_utils.ServiceSetUpMixin, tests_db_base.DbTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_86c287e7","line":2440,"updated":"2016-09-16 22:05:22.000000000","message":"Is there a unit test that actually has a node in the CLEANING state and then does the startup and then the node is moved to the CLEANFAIL state?","commit_id":"1081271869ac4f54fa7f7a39acd33247eda76131"}],"releasenotes/notes/clean-nodes-stuck-in-cleaning-on-startup-443823ea4f937965.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8e7da724eae3f20c5e4755b10d5decb2469ebb3b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - When a conductor managing a node dies abruptly mid cleaning,"},{"line_number":4,"context_line":"    the node will get stuck in the CLEANING state, this tries to"},{"line_number":5,"context_line":"    clean nodes stuck in CLEANING state when conductor startup."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a8ec9b2_42eee4b4","line":5,"updated":"2016-09-19 16:18:11.000000000","message":"There are some grammatical issues here, but ahh, I\u0027ll let the release manager fix it later. (shhhh...)","commit_id":"1081271869ac4f54fa7f7a39acd33247eda76131"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"9943d2acfb4812f0484ac58c34411afe5f069e8f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - When a conductor managing a node dies abruptly mid cleaning,"},{"line_number":4,"context_line":"    the node will get stuck in the CLEANING state, this tries to"},{"line_number":5,"context_line":"    clean nodes stuck in CLEANING state when conductor startup."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a8ec9b2_26fc533d","line":5,"updated":"2016-09-16 22:05:22.000000000","message":"When a conductor managing a node dies mid-cleaning the node would get stuck in the CLEANING state. Now upon conductor startup nodes in the CLEANING state will be moved to the CLEANFAIL state.","commit_id":"1081271869ac4f54fa7f7a39acd33247eda76131"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"06b14b75986c33641713a5dd2d6466e11ec54450","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - When a conductor managing a node dies abruptly mid cleaning,"},{"line_number":4,"context_line":"    the node will get stuck in the CLEANING state, this tries to"},{"line_number":5,"context_line":"    clean nodes stuck in CLEANING state when conductor startup."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a8ec9b2_a4bbc9c2","line":5,"in_reply_to":"7a8ec9b2_26fc533d","updated":"2016-09-19 12:21:35.000000000","message":"++","commit_id":"1081271869ac4f54fa7f7a39acd33247eda76131"}]}
