On 02/04/2016 12:37 PM, Numan Siddique wrote:
> Thanks for the review and comments Ben. I agree.
>> > My second concern is larger.  TXN_ERROR is supposed to indicate a hard
>> > error, one for which retrying immediately is not going to help.  What
>> > kind of error did testing actually encounter?  Perhaps the real bug is
>> > that an error is being misclassified as TXN_ERROR.
> I will investigate it further to see why TXN_ERROR is returned.

I did some testing and I am not able to see the TXN_ERROR anymore, but still I 
am able to reproduce
the issue mentioned here - 
http://openvswitch.org/pipermail/discuss/2015-November/019443.html

Just to brief about the issue
 - Suppose Southbound db table Logical_Flows has 8 flows in it
 - And I modify the ovn_northd.c to add a flow (lets say in 
build_lswitch_flows) and
   restart ovn-northd, I don't see the Logical_Flows table updated to 9 flows.
 - Later if i update Northbound db (by running ovn-nbctl), the Logical_Flows 
gets synced up.
 - I am able to reproduce this issue most of the times.

The reason for the issue is the below code

**********************
        if (ovnnb_seqno != ovsdb_idl_get_seqno(ctx.ovnnb_idl)) {
            ovnnb_seqno = ovsdb_idl_get_seqno(ctx.ovnnb_idl);
            ovnnb_db_run(&ctx);
        }
        if (ovnsb_seqno != ovsdb_idl_get_seqno(ctx.ovnsb_idl)) {
            ovnsb_seqno = ovsdb_idl_get_seqno(ctx.ovnsb_idl);
            ovnsb_db_run(&ctx);
        }
********************

When ovnnb_db_run is called, and if ctx->ovnsb_txn is NULL, ovnnb_db_run 
returns immediately without
generating the logical flows.

ovnnb_db_run is not called again until the Northbound db seqno changes.

I think its better to revert this commit - 
f20396e051ea4fd623bfc022cc78d9bd52a850e5


Thanks
Numan




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

Reply via email to