)]}'
{"midonet/neutron/plugin_v2.py":[{"author":{"_account_id":8858,"name":"Brandon Berg","email":"bberg@midokura.jp","username":"bberg"},"change_message_id":"e55ff6fdc313a8c4ad5af2eff2898d00487e42ad","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            db_network \u003d self._get_network(context, id)"},{"line_number":191,"context_line":"            # Expire the db_network in current transaction, so that the join"},{"line_number":192,"context_line":"            # relationship can be updated."},{"line_number":193,"context_line":"            context.session.expire(db_network)"},{"line_number":194,"context_line":"            net \u003d self._make_network_dict(db_network, context\u003dcontext)"},{"line_number":195,"context_line":"            registry.notify(resources.NETWORK, events.PRECOMMIT_UPDATE, self,"},{"line_number":196,"context_line":"                            context\u003dcontext, request\u003dnet_data, network\u003dnet,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_c96697ee","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":46},"updated":"2017-04-25 05:32:28.000000000","message":"Could you elaborate on what problem this solves? What caused the cached version to get out of sync with the stored version?","commit_id":"4bc936e30dc7b030178f63b16e78bddb1591adc2"},{"author":{"_account_id":13196,"name":"Xavier León","email":"xleon.mail@gmail.com","username":"xavileon"},"change_message_id":"7a9777b0fa2ac7b3528041a973d863f6e2a7e38f","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            db_network \u003d self._get_network(context, id)"},{"line_number":191,"context_line":"            # Expire the db_network in current transaction, so that the join"},{"line_number":192,"context_line":"            # relationship can be updated."},{"line_number":193,"context_line":"            context.session.expire(db_network)"},{"line_number":194,"context_line":"            net \u003d self._make_network_dict(db_network, context\u003dcontext)"},{"line_number":195,"context_line":"            registry.notify(resources.NETWORK, events.PRECOMMIT_UPDATE, self,"},{"line_number":196,"context_line":"                            context\u003dcontext, request\u003dnet_data, network\u003dnet,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_e7ee1787","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":46},"in_reply_to":"5ff73747_09d11f55","updated":"2017-04-25 09:46:52.000000000","message":"Shouldn\u0027t this expiration be done by the update_network method of the super class? Looks like it\u0027s leaking the qos-network relationship abstraction, reading the bug description and the linked patch in neutron.","commit_id":"4bc936e30dc7b030178f63b16e78bddb1591adc2"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1391c7986e41c0709bedb44fd1ba2c4043446ea8","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            db_network \u003d self._get_network(context, id)"},{"line_number":191,"context_line":"            # Expire the db_network in current transaction, so that the join"},{"line_number":192,"context_line":"            # relationship can be updated."},{"line_number":193,"context_line":"            context.session.expire(db_network)"},{"line_number":194,"context_line":"            net \u003d self._make_network_dict(db_network, context\u003dcontext)"},{"line_number":195,"context_line":"            registry.notify(resources.NETWORK, events.PRECOMMIT_UPDATE, self,"},{"line_number":196,"context_line":"                            context\u003dcontext, request\u003dnet_data, network\u003dnet,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_09d11f55","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":46},"in_reply_to":"5ff73747_c96697ee","updated":"2017-04-25 06:01:38.000000000","message":"have you looked at bugs linked in the commit message?\n\ni don\u0027t pretend to understand sqlalchemy. but let me try to explain what i know.\ndepending on the way the relationship is defined in the models and how they are updated, sqla can\u0027t update cached objects automatically.  in this particular case, the relationship between networks and qos policies updated in L179 somehow falls into the category.\nthis expire() call ensures that sqla reload them from the backing db next time it\u0027s used.  ie. in the following _make_network_dict.","commit_id":"4bc936e30dc7b030178f63b16e78bddb1591adc2"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"b5726954206ad38a9b403f668de47b94aa32cba8","unresolved":false,"context_lines":[{"line_number":190,"context_line":"            db_network \u003d self._get_network(context, id)"},{"line_number":191,"context_line":"            # Expire the db_network in current transaction, so that the join"},{"line_number":192,"context_line":"            # relationship can be updated."},{"line_number":193,"context_line":"            context.session.expire(db_network)"},{"line_number":194,"context_line":"            net \u003d self._make_network_dict(db_network, context\u003dcontext)"},{"line_number":195,"context_line":"            registry.notify(resources.NETWORK, events.PRECOMMIT_UPDATE, self,"},{"line_number":196,"context_line":"                            context\u003dcontext, request\u003dnet_data, network\u003dnet,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_62ed55ee","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":46},"in_reply_to":"5ff73747_e7ee1787","updated":"2017-04-25 10:06:28.000000000","message":"the relationship is updated (L179) after calling the super class\u0027 method. (L177)\nbesides that, the super class\u0027 method doesn\u0027t have any direct knowledge about qos.\n\nwhile i agree this isn\u0027t an ideal solution, i don\u0027t want to make larger changes, given that we want to retire this plugin anyway. (hopefully soon)","commit_id":"4bc936e30dc7b030178f63b16e78bddb1591adc2"}]}
