)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"86d9e1ae1254219e7284ba3e19b3f6367b98b8e3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"fault of the sudden spike of DBDeadlock errors."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1] d6a55c17360d1aa8ca91849199987ae71e8600ee"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I021e94e322f9b5eca665ea3aede41e034d3047cc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba7be1f8_115895f9","line":13,"updated":"2015-02-27 20:45:47.000000000","message":"Closes-Bug: #1426543","commit_id":"425ea2ee6671999b21c34753ea6ac2988bb21dc1"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"080ae8e00c10f6a2ee62fb46d79c034e6fea6699","unresolved":false,"context_lines":[{"line_number":12,"context_line":"[1] d6a55c17360d1aa8ca91849199987ae71e8600ee"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I021e94e322f9b5eca665ea3aede41e034d3047cc"},{"line_number":15,"context_line":"Closed-Bug: #1426543"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_7fb993ca","line":15,"updated":"2015-02-28 03:19:16.000000000","message":"we should have said Related-bug, this is no right way to close a bug...it\u0027s cheating :)\n\nMy intention was only to smoke the mouse out of the hole","commit_id":"294019139d575bd7144cfcc229c98c8497bfbf7c"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0ab09ab177cf4cb794dcf8ffea72b02cb49c0404","unresolved":false,"context_lines":[{"line_number":1188,"context_line":"            # fact that an error occurred."},{"line_number":1189,"context_line":"            LOG.error(_LE(\"mechanism_manager.delete_port_postcommit failed for\""},{"line_number":1190,"context_line":"                          \" port %s\"), id)"},{"line_number":1191,"context_line":"        self.notifier.port_delete(context, id)"},{"line_number":1192,"context_line":"        self.notify_security_groups_member_updated(context, port)"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"    def get_bound_port_context(self, plugin_context, port_id, host\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_b37fca65","side":"PARENT","line":1191,"updated":"2015-02-27 23:31:24.000000000","message":"So, when this delete_port method is called from _delete_floatingip in neutron/db/l3_db.py, this entire method is wrapped in a transaction.  It seems this extra notification may have opened a window (or made a wider opening) which allows another thread to deadlock on the floating ip being deleted.","commit_id":"ee166eb5e5ae8d44b86b62285ab62eef2d77da88"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"a70640723d7007a742138c49985059694d57ca98","unresolved":false,"context_lines":[{"line_number":1188,"context_line":"            # fact that an error occurred."},{"line_number":1189,"context_line":"            LOG.error(_LE(\"mechanism_manager.delete_port_postcommit failed for\""},{"line_number":1190,"context_line":"                          \" port %s\"), id)"},{"line_number":1191,"context_line":"        self.notifier.port_delete(context, id)"},{"line_number":1192,"context_line":"        self.notify_security_groups_member_updated(context, port)"},{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"    def get_bound_port_context(self, plugin_context, port_id, host\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_93dd6645","side":"PARENT","line":1191,"in_reply_to":"ba7be1f8_b37fca65","updated":"2015-02-27 23:37:08.000000000","message":"We\u0027re not supposed to have *any* code in L3 or advanced services call to ml2 create/delete port or other methods that send notifications while under a transaction. We took a lot of care to do that with the L3 HA work... It was a serious pain since you have to compensate manually in case there\u0027s an error, and even then, notifications might have already gone out. Every time we encounter these timeout issues I remember just how incredibly broken Neutron\u0027s transactions and notifications design is.","commit_id":"ee166eb5e5ae8d44b86b62285ab62eef2d77da88"}]}
