> On Sep 13, 2016, at 5:13 PM, Ben Pfaff <b...@ovn.org> wrote: > > On Tue, Sep 13, 2016 at 02:45:54PM -0700, Jarno Rajahalme wrote: >> >>> On Sep 13, 2016, at 10:56 AM, Ben Pfaff <b...@ovn.org> wrote: >>> >>> On Mon, Sep 12, 2016 at 01:52:31PM -0700, Jarno Rajahalme wrote: >>>> Set ofproto's connmgr pointer to NULL after the connmgr has been >>>> destructed, and check for NULL when sending a flow removed >>>> notification. >>>> >>>> Verified by sending the flow removed message unconditionally and >>>> observing numerous core dumps in the test suite. >>>> >>>> Found by inspection. >>>> >>>> Fixes: f695ebfae5 ("ofproto: Postpone sending flow removed messages.") >>>> Signed-off-by: Jarno Rajahalme <ja...@ovn.org> >>>> --- >>>> v3: New patch for v3. >>> >>> I'm worried a bit that the rules needed to access these structures >>> correctly are getting complicated. Maybe there should be a high-level >>> overview somewhere. >>> >> >> The main complication here is that if we tagged connmgr * with >> OVS_GUARDED_BY(ofproto_mutex), we would need to do widen the scope of >> ofproto_mutex quite a bit. Maybe introducing a rwlock for connmgr separately >> would do it, albeit with the assumption that the main thread remains the >> only writer, all that extra read locking from the main thread would be new >> overhead. It would be more maintainable, though. > > Yes, I recognize that and I don't want to make the scope bigger if we > can avoid it. > > Another option might be to just stick the flow_removed messages on a > list from the callback and then flush them later in the ofproto_run() > loop. They're already asynchronous and unpredictable since RCU can > delay sending them an arbitrary amount of time. >
Even that would have to deal with ofproto disappearing, but I like it as it would simplify locking requirements. I’ll make a note to look at this later. >> I made a note to look into this later. >> >> Do you think we should apply this to branch-2.6 as well as the master? > > It fixes a crash bug right? So, yes, unless you know a simpler fix. I back ported this to 2.6. Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev