)]}'
{"neutron/db/extraroute_db.py":[{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"58b9e3791ff63b7bc080528b856f6c74a16d2413","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def update_router(self, context, id, router):"},{"line_number":55,"context_line":"        r \u003d router[\u0027router\u0027]"},{"line_number":56,"context_line":"        if \u0027routes\u0027 in r:"},{"line_number":57,"context_line":"            with db_api.CONTEXT_WRITER.using(context):"},{"line_number":58,"context_line":"                # check if route exists and have permission to access"},{"line_number":59,"context_line":"                router_db \u003d self._get_router(context, id)"},{"line_number":60,"context_line":"                old_router \u003d self._make_router_dict(router_db)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_7b9b2017","line":57,"updated":"2019-05-29 19:07:28.000000000","message":"It will be interesting to see how well this works, given that the switch to the new facade takes place for everything in update_router here, but we are AFAIK not using the new facade for create_router etc.","commit_id":"add17cbb842cfcd45b145e6f26a880a740b1f959"}],"neutron/db/l3_db.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"6004cfd6bd6cdac5ca9fa84936708b325288bd4b","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                 desired_state\u003drouter_db))"},{"line_number":273,"context_line":"            # NOTE(ralonsoh): refresh the router_db data from the DB. Due to"},{"line_number":274,"context_line":"            # the migration to the new engine facade, the router_db object here"},{"line_number":275,"context_line":"            # is not longer attached to a session."},{"line_number":276,"context_line":"            return self._get_router(context, router_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_2ddecc3d","line":275,"range":{"start_line":275,"start_character":14,"end_line":275,"end_character":50},"updated":"2019-06-28 08:46:12.000000000","message":"I haven\u0027t understood what this comment means. It is inside the writer context here, so we are in a session. When exiting the writer context manager, the context manager ensures session.commit(). \n\nDo you mean router_db returned from here cannot be referred from the caller?\n\nIf so, why cannot we refer to it? Is it because the writer context calls commit() and router_db will be out-of-date?\n\nI am in the way to understand the enginefacade, so my question might be silly.","commit_id":"27f3314ad0e6f944e273f59eeed329ee4b7c3f6f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"66cbfac53feac74bd730355d08849633f750c471","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                 desired_state\u003drouter_db))"},{"line_number":273,"context_line":"            # NOTE(ralonsoh): refresh the router_db data from the DB. Due to"},{"line_number":274,"context_line":"            # the migration to the new engine facade, the router_db object here"},{"line_number":275,"context_line":"            # is not longer attached to a session."},{"line_number":276,"context_line":"            return self._get_router(context, router_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_91691226","line":275,"range":{"start_line":275,"start_character":14,"end_line":275,"end_character":50},"in_reply_to":"9fb8cfa7_2ddecc3d","updated":"2019-06-28 10:31:23.000000000","message":"Actually because of your question, I dived into the code and I found where the session was manually expired. This is the problem of this facade transition.\n\nThere are four subscriptions to (resources.ROUTER, events.PRECOMMIT_UPDATE). DriverController._update_router_provider is calling self._stm.add_resource_association, the function which is forcing the expiration of the session.\n\nI\u0027ll submit a patch to solve this problem in a better way.","commit_id":"27f3314ad0e6f944e273f59eeed329ee4b7c3f6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"58812f45f5daede2c10db2c774eaf09dde885302","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                 desired_state\u003drouter_db))"},{"line_number":273,"context_line":"            # NOTE(ralonsoh): refresh the router_db data from the DB. Due to"},{"line_number":274,"context_line":"            # the migration to the new engine facade, the router_db object here"},{"line_number":275,"context_line":"            # is not longer attached to a session."},{"line_number":276,"context_line":"            return self._get_router(context, router_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_beb971cc","line":275,"range":{"start_line":275,"start_character":14,"end_line":275,"end_character":50},"in_reply_to":"9fb8cfa7_91691226","updated":"2019-06-30 08:08:32.000000000","message":"Thanks for digging into the detail. The new change makes sense to me.","commit_id":"27f3314ad0e6f944e273f59eeed329ee4b7c3f6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"96958178e8abebd50e6c859ca7ba6e5774ddfff3","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            # NOTE(ralonsoh): refresh the router_db data from the DB. Due to"},{"line_number":274,"context_line":"            # the migration to the new engine facade, the router_db object here"},{"line_number":275,"context_line":"            # is not longer attached to a session."},{"line_number":276,"context_line":"            return self._get_router(context, router_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":279,"context_line":"    def update_router(self, context, id, router):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_2dac8c9d","line":276,"updated":"2019-06-28 08:50:43.000000000","message":"Another question: When reaching L.275, in my understanding, commit() is not issued yet. Can _get_router() return a new content? Or do we want to return an old content?","commit_id":"27f3314ad0e6f944e273f59eeed329ee4b7c3f6f"}]}
