)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef2d55dee03c5734014b46591de1c52f9ff792b6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"unquiesce instance after quiesce failure"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the call to compute_rpcapi.quisece_instance() raises an exception,"},{"line_number":10,"context_line":"any uncaught exception will break out of the function"},{"line_number":11,"context_line":"snapshot_volume_backed(). This can leave the instance in frozen state."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch adds a blanket Exception catch to the try block and calls"},{"line_number":14,"context_line":"compute_rpcapi.unquiesce_instance() before reraising."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_b9b580cf","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":70},"updated":"2018-03-12 23:08:27.000000000","message":"Without reading into the bug details, this is a head-scratcher because the quiesce_instance method is so sparse within the compute manager code. You hit an RPC call timeout, so please mention that as a possible scenario of something that can cause this.","commit_id":"ea05b425d1a15d519b91bf47c66834942370d5c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9083d816dbc97bfc7e61e186fb4ecd486b7c308c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This patch adds a blanket Exception catch to the try block and calls"},{"line_number":14,"context_line":"compute_rpcapi.unquiesce_instance() before reraising."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This has been seen in the wild with RPC timeouts, but this is not the"},{"line_number":17,"context_line":"only possible genesis for an unknown error from quiesce_instance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Idca5998da8bb42b29a8fffdf52b4af3a043c6326"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_dce8c5b4","line":16,"range":{"start_line":16,"start_character":36,"end_line":16,"end_character":48},"updated":"2018-06-15 21:18:53.000000000","message":"This might be an RPC call that we should consider using the new long_rpc_timeout config option with heartbeating:\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.long_rpc_timeout\n\nIt wouldn\u0027t be backportable so it would have to go on top of this change, but definitely something worth thinking about if quiesce can take over a minute depending on the size and activity of the VM.","commit_id":"dc02716f1409bedc5181706ce9b6f7bb0c89e4c1"}],"nova/compute/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef2d55dee03c5734014b46591de1c52f9ff792b6","unresolved":false,"context_lines":[{"line_number":2911,"context_line":"            #               after the instance has been frozen. catch and thaw."},{"line_number":2912,"context_line":"            except Exception:"},{"line_number":2913,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":2914,"context_line":"                    LOG.error(\"Uncaught exception dusing quiesce of instance\","},{"line_number":2915,"context_line":"                              context\u003dcontext, instance\u003dinstance)"},{"line_number":2916,"context_line":"                    LOG.info(\"Unquiescing instance to ensure thawed after \""},{"line_number":2917,"context_line":"                             \"quiesce failure\", instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_39ef30b1","line":2914,"range":{"start_line":2914,"start_character":31,"end_line":2914,"end_character":39},"updated":"2018-03-12 23:08:27.000000000","message":"Well, we just caught it. :)\n\nMaybe reword the error message to be:\n\nexcept Exception as ex:\n  with excutils.save_and_reraise_exception():\n    LOG.error(\"An error occurred while quiescing instance. \"\n              \"Unquiescing to ensure thawed. Error: %s\",\n              six.text_type(ex), instance\u003dinstance)\n    self.compute_rpcapi.unquiesce_instance(...)","commit_id":"ea05b425d1a15d519b91bf47c66834942370d5c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef2d55dee03c5734014b46591de1c52f9ff792b6","unresolved":false,"context_lines":[{"line_number":2911,"context_line":"            #               after the instance has been frozen. catch and thaw."},{"line_number":2912,"context_line":"            except Exception:"},{"line_number":2913,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":2914,"context_line":"                    LOG.error(\"Uncaught exception dusing quiesce of instance\","},{"line_number":2915,"context_line":"                              context\u003dcontext, instance\u003dinstance)"},{"line_number":2916,"context_line":"                    LOG.info(\"Unquiescing instance to ensure thawed after \""},{"line_number":2917,"context_line":"                             \"quiesce failure\", instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_79c7e846","line":2914,"range":{"start_line":2914,"start_character":50,"end_line":2914,"end_character":56},"updated":"2018-03-12 23:08:27.000000000","message":"during","commit_id":"ea05b425d1a15d519b91bf47c66834942370d5c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef2d55dee03c5734014b46591de1c52f9ff792b6","unresolved":false,"context_lines":[{"line_number":2913,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":2914,"context_line":"                    LOG.error(\"Uncaught exception dusing quiesce of instance\","},{"line_number":2915,"context_line":"                              context\u003dcontext, instance\u003dinstance)"},{"line_number":2916,"context_line":"                    LOG.info(\"Unquiescing instance to ensure thawed after \""},{"line_number":2917,"context_line":"                             \"quiesce failure\", instance\u003dinstance)"},{"line_number":2918,"context_line":"                    self.compute_rpcapi.unquiesce_instance(context, instance,"},{"line_number":2919,"context_line":"                                                           mapping\u003dNone)"},{"line_number":2920,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_b9ea60a9","line":2917,"range":{"start_line":2916,"start_character":20,"end_line":2917,"end_character":66},"updated":"2018-03-12 23:08:27.000000000","message":"Just build this into the error log above.","commit_id":"ea05b425d1a15d519b91bf47c66834942370d5c2"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9083d816dbc97bfc7e61e186fb4ecd486b7c308c","unresolved":false,"context_lines":[{"line_number":3263,"context_line":"                                          quiesce_unsupported\u003dFalse)"},{"line_number":3264,"context_line":""},{"line_number":3265,"context_line":"    def test_snaphost_volume_backed_with_quiesce_failure(self):"},{"line_number":3266,"context_line":"        self.assertRaises(exception.NovaException,"},{"line_number":3267,"context_line":"                          self._test_snapshot_volume_backed,"},{"line_number":3268,"context_line":"                          quiesce_required\u003dTrue,"},{"line_number":3269,"context_line":"                          quiesce_fails\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1c2dddfc","line":3266,"range":{"start_line":3266,"start_character":36,"end_line":3266,"end_character":49},"updated":"2018-06-15 21:18:53.000000000","message":"Could be a bit more realistic if you used the oslo_messaging.MessagingTimeout exception, and that would also guard us against someone thinking Exception is too broad and thinks it should be NovaException.","commit_id":"dc02716f1409bedc5181706ce9b6f7bb0c89e4c1"}]}
