On Wed, Jan 27, 2016 at 04:20:39PM -0500, Lance Richardson wrote:
> ----- Original Message -----
> > On Wed, Jan 27, 2016 at 02:46:07PM -0500, Lance Richardson wrote:
> > > A common error scenario with OVN is to attempt to use ovn-nbctl when
> > > the OVN databases have not been created:
> > >    1. ovn-nbctl sends "get_schema" request for OVN db to ovsdb-server.
> > >    2. ovsdb-server fails to lookup requested db, sends error response
> > >       to ovn-nbctl.
> > >    3. ovn-nbctl received the error response in ovsdb_idl_run(), but
> > >       takes no specific action in this case.
> > >    4. ovn-nbctl hangs forever in IDL_S_SCHEMA_REQUESTED state (assuming
> > >       a timeout wasn't requested on the command line).
> > > 
> > > Here is an RFC patch to start the discussion about how handling of this
> > > particular error can be improved.
> > > 
> > > Signed-off-by: Lance Richardson <lrich...@redhat.com>
> > > ---
> > >  lib/ovsdb-idl.c | 10 ++++++++++
> > >  1 file changed, 10 insertions(+)
> > > 
> > > diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
> > > index 7e84138..3f4be51 100644
> > > --- a/lib/ovsdb-idl.c
> > > +++ b/lib/ovsdb-idl.c
> > > @@ -453,6 +453,16 @@ ovsdb_idl_run(struct ovsdb_idl *idl)
> > >                  ovsdb_idl_send_monitor_request(idl);
> > >                  idl->state = IDL_S_MONITOR_REQUESTED;
> > >              }
> > > +        } else if (msg->type == JSONRPC_ERROR
> > > +                   && idl->state == IDL_S_SCHEMA_REQUESTED
> > > +                   && idl->request_id
> > > +                   && json_equal(idl->request_id, msg->id)) {
> > > +                json_destroy(idl->request_id);
> > > +                idl->request_id = NULL;
> > > +                VLOG_ERR("%s: requested schema not found",
> > > +                         jsonrpc_session_get_name(idl->session));
> > > +                ovsdb_idl_destroy(idl);
> > > +                exit(EXIT_FAILURE);
> > 
> > I think that logging the problem is a good place to start, but the IDL
> > definitely shouldn't kill the process.  The IDL's clients include
> > long-running daemons that can and should reasonably recover from this
> > kind of error.
> > 
> OK. Do you see any issues if this were to be resubmitted with the last
> two lines removed?

No.

> To echo Russell's comment, is there an existing mechanism through
> which the client can be notified of this condition, or (if not) should
> one be created?

No.  Yes.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to