[Bug 1336555] Re: ovs-vswitchd crashed with SIGSEGV in nl_attr_get_size()
James Page
james.page at ubuntu.com
Wed Jan 7 09:01:56 UTC 2015
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
More information about the Ubuntu-server-bugs
mailing list