Upstream references:

http://openvswitch.org/pipermail/discuss/2014-December/015931.html
http://openvswitch.org/pipermail/discuss/2014-October/015360.html

Plus comment from Ben (upstream developer):

"""This backtrace doesn't quite add up.

We can see from frames 4 and 3 that we've got a nonnull 'key', which
becomes a nonnull nlattr 'a' in frame 2.  Along the same chain, we
have a null 'mask' that becomes a null 'ma'.  I often don't trust GDB
to give me correct arguments in backtraces but all of that adds up
nicely so I tend to believe it.

Take a look at the code for format_odp_key_attr().  It always
dereferences 'a' to get its type 'attr':

    enum ovs_key_attr attr = nl_attr_type(a);

A few lines later we can see 'is_exact' getting set to true (since
'ma' is NULL):

    bool is_exact;

    is_exact = ma ? odp_mask_attr_is_exact(ma) : true;

We're evidently hitting the default case in the switch statement given
the line number cited in the backtrace, which runs this code:

    case OVS_KEY_ATTR_UNSPEC:
    case __OVS_KEY_ATTR_MAX:
    default:
        format_generic_odp_key(a, ds);
        if (!is_exact) {
            ds_put_char(ds, '/');
            format_generic_odp_key(ma, ds);      <---- line 1332
        }
        break;

but that doesn't make sense--we should never get there, because
is_exact is true.  So--WTF?"""

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to openvswitch in Ubuntu.
https://bugs.launchpad.net/bugs/1336555

Title:
  ovs-vswitchd crashed with SIGSEGV in nl_attr_get_size()

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1336555/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to