On Wed, Sep 23, 2015 at 11:31:31AM +0000, Daniel Swahn wrote:
> (gdb) frame 0
> #0  0x00000000004291ca in rstp_run (ofproto=<optimized out>, 
> ofproto=<optimized out>) at ofproto/ofproto-dpif.c:2278
> 2278                bundle_move(((struct ofport_dpif 
> *)rstp_get_old_root_aux(ofproto->rstp))->bundle,

Thanks for the report.

Jarno and Daniele, the code around line 2278 in v2.4.0 is this:

        if (rstp_shift_root_learned_address(ofproto->rstp)) {
            bundle_move(((struct ofport_dpif 
*)rstp_get_old_root_aux(ofproto->rstp))->bundle,
                        ((struct ofport_dpif 
*)rstp_get_new_root_aux(ofproto->rstp))->bundle);
            rstp_reset_root_changed(ofproto->rstp);
        }

Looking at lib/rstp*.[ch], I see some code that sets 'old_root_aux' and
'new_root_aux'.  I don't see any code that clears them or updates them
if something happens to invalidate them (that is, if a port gets deleted
or if its aux gets updated).  I suspect that this may be the problem
here.

Jarno or Daniele, can you confirm this?
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to