)]}'
{"neutron/db/securitygroups_db.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"749cd66b6e6fbd42454bfc863e5bbb4da7263b39","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                LOG.debug(\"Duplicate default security group %s was \""},{"line_number":748,"context_line":"                          \"not created\", ex.value)"},{"line_number":749,"context_line":"                raise db_exc.RetryRequest(ex)"},{"line_number":750,"context_line":"            raise"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    def _get_security_groups_on_port(self, context, port):"},{"line_number":753,"context_line":"        \"\"\"Check that all security groups on port belong to tenant."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_12e9f380","line":750,"range":{"start_line":750,"start_character":12,"end_line":750,"end_character":17},"updated":"2016-07-05 11:18:00.000000000","message":"Why you don\u0027t use excutils.save_and_reraise_exception() here?\n\n     ...\n     except db_exc.DBError as e:\n        with excutils.save_and_reraise_exception() as ctx:\n             if isinstance(e.inner_exception, sql_exc.IntegrityError):\n                 ctx.reraise \u003d False\n                 raise db_exc.RetryRequest(ex)","commit_id":"55b7daa67cd07c03ffd77b51ccac071f5943422a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9245cf6331ab6b2f6f7592540fd9c449e7bc6148","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                LOG.debug(\"Duplicate default security group %s was \""},{"line_number":748,"context_line":"                          \"not created\", ex.value)"},{"line_number":749,"context_line":"                raise db_exc.RetryRequest(ex)"},{"line_number":750,"context_line":"            raise"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    def _get_security_groups_on_port(self, context, port):"},{"line_number":753,"context_line":"        \"\"\"Check that all security groups on port belong to tenant."}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_2d9f7251","line":750,"range":{"start_line":750,"start_character":12,"end_line":750,"end_character":17},"in_reply_to":"1aa78d24_12e9f380","updated":"2016-07-05 11:40:05.000000000","message":"Done","commit_id":"55b7daa67cd07c03ffd77b51ccac071f5943422a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"050907f7519ae3fdf299628044eae6daf9e7605b","unresolved":false,"context_lines":[{"line_number":745,"context_line":"            raise db_exc.RetryRequest(ex)"},{"line_number":746,"context_line":"        except db_exc.DBError as ex:"},{"line_number":747,"context_line":"            with excutils.save_and_reraise_exception() as ctx:"},{"line_number":748,"context_line":"                if isinstance(ex.inner_exception, sql_exc.IntegrityError):"},{"line_number":749,"context_line":"                    ctx.reraise \u003d False"},{"line_number":750,"context_line":"                    raise db_exc.RetryRequest(ex)"},{"line_number":751,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_fadcece5","line":748,"updated":"2016-07-05 16:03:12.000000000","message":"Before we go ahead, we need to understand why the DuplicateEntry error is raised as IntegrityError, we should not retry blindly like this, it\u0027s gonna be problematic for sure, because for genuine integrity errors we\u0027re gonna retry for nothing.","commit_id":"293df1ed14ea6c22f997ad9cfdd15853eb3cf5a1"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1f035c0fdcaad3a1fa55f56d82f213520bce787b","unresolved":false,"context_lines":[{"line_number":745,"context_line":"            raise db_exc.RetryRequest(ex)"},{"line_number":746,"context_line":"        except db_exc.DBError as ex:"},{"line_number":747,"context_line":"            with excutils.save_and_reraise_exception() as ctx:"},{"line_number":748,"context_line":"                if isinstance(ex.inner_exception, sql_exc.IntegrityError):"},{"line_number":749,"context_line":"                    ctx.reraise \u003d False"},{"line_number":750,"context_line":"                    raise db_exc.RetryRequest(ex)"},{"line_number":751,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_7f48e987","line":748,"in_reply_to":"1aa78d24_15c1cb2e","updated":"2016-07-05 17:22:15.000000000","message":"if there are other instances of this in the code, I question the validity of those too. I am not opposed to this approach per se, I am only puzzled that certain duplicate entry errors are reported as DBDuplicateEntry and others as DBError. There\u0027s gotta be an explanation for it. Let me look into it.","commit_id":"293df1ed14ea6c22f997ad9cfdd15853eb3cf5a1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f64b266e68884106776acf6486528e7d965b16d3","unresolved":false,"context_lines":[{"line_number":745,"context_line":"            raise db_exc.RetryRequest(ex)"},{"line_number":746,"context_line":"        except db_exc.DBError as ex:"},{"line_number":747,"context_line":"            with excutils.save_and_reraise_exception() as ctx:"},{"line_number":748,"context_line":"                if isinstance(ex.inner_exception, sql_exc.IntegrityError):"},{"line_number":749,"context_line":"                    ctx.reraise \u003d False"},{"line_number":750,"context_line":"                    raise db_exc.RetryRequest(ex)"},{"line_number":751,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_15c1cb2e","line":748,"in_reply_to":"1aa78d24_fadcece5","updated":"2016-07-05 16:16:56.000000000","message":"@Armando - this is done in a number of places in the ML2 and the HA for L3 code.\nIf you want we can parse and check for the duplicate entry in the Integrity exception, which is actually better and more robust.\nActually I would expect oslo.db to raise this but thats not the case.\nLook at the exception trace on the bug","commit_id":"293df1ed14ea6c22f997ad9cfdd15853eb3cf5a1"}]}
