)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b83cfdde38488af8cf166e6e4aee67c5dc09ccdc","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Instead of calling set-manager every init, only call it when"},{"line_number":10,"context_line":"getting the schema fails inside of Connection.start() which is"},{"line_number":11,"context_line":"only called once."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ib28cd912e1f2eba318a6b0a82269919a1c95312d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a1a9d01_c37ea269","line":12,"updated":"2015-09-29 13:52:11.000000000","message":"Closes-Bug: #1499784","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"}],"neutron/agent/ovsdb/native/connection.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"36c74eb72a0312f4a26cf64c414c9214b8f6ad94","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            try:"},{"line_number":67,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":68,"context_line":"                                                    self.schema_name)"},{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_91cd55b9","line":69,"updated":"2015-09-29 13:03:33.000000000","message":"I wondered if there was a more specific exception you could catch here, but idlutils raises Exception so this is right.","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b83cfdde38488af8cf166e6e4aee67c5dc09ccdc","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            try:"},{"line_number":67,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":68,"context_line":"                                                    self.schema_name)"},{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_e3d16658","line":69,"in_reply_to":"9a1a9d01_91cd55b9","updated":"2015-09-29 13:52:11.000000000","message":"Then shouldn\u0027t we make get_schema_helper to return something  more specific for that case?","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1d750a39543783d66fd58158cb3d9b6c72df17f3","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            try:"},{"line_number":67,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":68,"context_line":"                                                    self.schema_name)"},{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_f916b84a","line":69,"in_reply_to":"9a1a9d01_e3d16658","updated":"2015-09-30 16:38:33.000000000","message":"Unfortunately, we are basically just getting back a generic \u0027err\u0027 from the ovsdb lib, which I think is just an (errno, errstring). I could try to make some kind of mapping, or make things a little more specific, but right now we just kind of know that \"something bad happened, here\u0027s a string describing it\". I\u0027d prefer treating more specific exceptions as a future improvement since it isn\u0027t directly necessary for this fix, and doing it right might require some though.","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"36c74eb72a0312f4a26cf64c414c9214b8f6ad94","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"},{"line_number":73,"context_line":"            helper.register_all()"},{"line_number":74,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"},{"line_number":75,"context_line":"            idlutils.wait_for_change(self.idl, self.timeout)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_1172a549","line":72,"updated":"2015-09-29 13:03:33.000000000","message":"It seems this may be slightly racy.  get_schema_helper() is running at the same time as ovsdb-server setting up its new listener that you just configured.  It *could* fail because you tried to connect too soon here.\n\nHow about a little retry loop with some backoff.  Try 3 times with sleeps of 2, 4, 8 seconds in between or something.","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b83cfdde38488af8cf166e6e4aee67c5dc09ccdc","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"},{"line_number":73,"context_line":"            helper.register_all()"},{"line_number":74,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"},{"line_number":75,"context_line":"            idlutils.wait_for_change(self.idl, self.timeout)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_634d563d","line":72,"in_reply_to":"9a1a9d01_1172a549","updated":"2015-09-29 13:52:11.000000000","message":"Do you mean ovs-vsctl is async?","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"7d932018e5ec83487c5f922e763f5543afe12b55","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"},{"line_number":73,"context_line":"            helper.register_all()"},{"line_number":74,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"},{"line_number":75,"context_line":"            idlutils.wait_for_change(self.idl, self.timeout)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_63d31605","line":72,"in_reply_to":"9a1a9d01_634d563d","updated":"2015-09-29 13:58:18.000000000","message":"kind of... What ovs-vsctl is doing here is just adding a row to an ovsdb database.  The response to that row getting added is asynchronous and async from the ovs-vsctl call.","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"bf50ee34ae64a41a3d80e823d8f51d018415bf24","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            except Exception:"},{"line_number":70,"context_line":"                helpers.enable_connection_uri(self.connection)"},{"line_number":71,"context_line":"                helper \u003d idlutils.get_schema_helper(self.connection,"},{"line_number":72,"context_line":"                                                    self.schema_name)"},{"line_number":73,"context_line":"            helper.register_all()"},{"line_number":74,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"},{"line_number":75,"context_line":"            idlutils.wait_for_change(self.idl, self.timeout)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_028ecb78","line":72,"in_reply_to":"9a1a9d01_63d31605","updated":"2015-09-29 16:59:18.000000000","message":"Terry asked about this in #openvswitch and blp (ovs maintainer) confirmed that there is a small race window here, so it seems a bit of retry safety is indeed needed.","commit_id":"8ba8f87f27aa5e4c6c8363b87b52adf45f038aff"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"91b1a14f1bb127c864d3deee1469ee7a5dc2df7f","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from ovs.db import idl"},{"line_number":21,"context_line":"from ovs import poller"},{"line_number":22,"context_line":"import retrying"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron.agent.ovsdb.native import helpers"},{"line_number":25,"context_line":"from neutron.agent.ovsdb.native import idlutils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_92b9b2ce","line":22,"updated":"2015-09-30 06:33:05.000000000","message":"retrying is system lib, we should put it in first section","commit_id":"5306d390b7177273ff30b6bedce4ff0773bb69ee"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01adab66a7519070c53962b8f62d40fd04c2dad6","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from ovs.db import idl"},{"line_number":21,"context_line":"from ovs import poller"},{"line_number":22,"context_line":"import retrying"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron.agent.ovsdb.native import helpers"},{"line_number":25,"context_line":"from neutron.agent.ovsdb.native import idlutils"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_8cd0aeca","line":22,"in_reply_to":"9a1a9d01_92b9b2ce","updated":"2015-09-30 11:39:14.000000000","message":"?? It\u0027s a 3party lib, its position in the patch is correct.","commit_id":"5306d390b7177273ff30b6bedce4ff0773bb69ee"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"91b1a14f1bb127c864d3deee1469ee7a5dc2df7f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                def do_get_schema_helper():"},{"line_number":78,"context_line":"                    return idlutils.get_schema_helper(self.connection,"},{"line_number":79,"context_line":"                                                      self.schema_name)"},{"line_number":80,"context_line":"                helper \u003d do_get_schema_helper()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            helper.register_all()"},{"line_number":83,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_92e0d2ce","line":80,"updated":"2015-09-30 06:33:05.000000000","message":"why not call  idlutils.get_schema_helper directly?","commit_id":"5306d390b7177273ff30b6bedce4ff0773bb69ee"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01adab66a7519070c53962b8f62d40fd04c2dad6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                def do_get_schema_helper():"},{"line_number":78,"context_line":"                    return idlutils.get_schema_helper(self.connection,"},{"line_number":79,"context_line":"                                                      self.schema_name)"},{"line_number":80,"context_line":"                helper \u003d do_get_schema_helper()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"            helper.register_all()"},{"line_number":83,"context_line":"            self.idl \u003d idl.Idl(self.connection, helper)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a1a9d01_6cdafae9","line":80,"in_reply_to":"9a1a9d01_92e0d2ce","updated":"2015-09-30 11:39:14.000000000","message":"So that we retry...","commit_id":"5306d390b7177273ff30b6bedce4ff0773bb69ee"}]}
