[ovs-discuss] Segfault in 2.0.2 version of openvswitch
sridhar basam
sridhar.basam at gmail.com
Fri Dec 12 18:47:15 UTC 2014
Hey,
We are experiencing sporadic ovs-vswitchd crashes in our Openstack
environment. We are using the Ubuntu 2.0.2 version of the code.
Kernel: 3.13.0-40-generic
openvswitch: 2.0.2-0ubuntu0.14.04.1
The stack trace is shown below. If you look at the stack frame 2 below, it
looks like 'a' is valid
(gdb) print *(struct nlattr *)0x1484afc
$5 = {nla_len = 6, nla_type = 18}
ma is NULL so i am not sure how the code ever gets to line 1332 in
odp-util.c
Is there any additional information i get provide to help track down the
cause for this crash?
thanks,
Sridhar
940 static void
941 format_odp_key_attr(const struct nlattr *a, const struct nlattr *ma,
942 struct ds *ds, bool verbose)
943 {
944 struct flow_tnl tun_key;
945 enum ovs_key_attr attr = nl_attr_type(a);
946 char namebuf[OVS_KEY_ATTR_BUFSIZE];
947 int expected_len;
948 bool is_exact;
949
950 is_exact = ma ? odp_mask_attr_is_exact(ma) : true;
<snip>
1326 case OVS_KEY_ATTR_UNSPEC:
1327 case __OVS_KEY_ATTR_MAX:
1328 default:
1329 format_generic_odp_key(a, ds);
1330 if (!is_exact) {
1331 ds_put_char(ds, '/');
1332 format_generic_odp_key(ma, ds);
1333 }
1334 break;
1335 }
#0 nl_attr_get_size (nla=nla at entry=0x0) at ../lib/netlink.c:506
506 in ../lib/netlink.c
(gdb) bt full 6
#0 nl_attr_get_size (nla=nla at entry=0x0) at ../lib/netlink.c:506
No locals.
#1 0x0000000000460473 in format_generic_odp_key (a=a at entry=0x0,
ds=ds at entry=0x7fff39eebf40)
at ../lib/odp-util.c:767
len = <optimized out>
#2 0x0000000000460cd2 in format_odp_key_attr (a=a at entry=0x1484afc,
ma=ma at entry=0x0, ds=ds at entry=0x7fff39eebf40, verbose=verbose at entry=true) at
../lib/odp-util.c:1332
tun_key = {tun_id = 0, ip_src = 0, ip_dst = 0, flags = 0, ip_tos =
0 '\000', ip_ttl = 0 '\000'}
attr = <optimized out>
namebuf = "key18\000\377\377\000\000\000\000\000\000"
is_exact = <optimized out>
#3 0x00000000004609d7 in odp_flow_format (key=<optimized out>, key_len=40,
mask=0x0, mask_len=0, ds=0x7fff39eebf40, verbose=true) at
../lib/odp-util.c:1402
is_nested_attr = <optimized out>
is_wildcard = <optimized out>
attr_type = <optimized out>
a = 0x1484afc
ma = 0x0
ofp = {base = 0x1484f90, allocated = 100, source = OFPBUF_MALLOC,
data = 0x1484f90, size = 0, l2 = 0x0, l2_5 = 0x0, l3 = 0x0, l4 = 0x0, l7 =
0x0, list_node = {prev = 0xcccccccccccccccc, next = 0xcccccccccccccccc},
private_p = 0x0}
first_field = <optimized out>
left = 8
has_ethtype_key = true
mask_len = 0
mask = 0x0
key_len = 40
key = 0x1484afc
verbose = <optimized out>
ds = 0x7fff39eebf40
#4 0x0000000000460fc4 in format_odp_key_attr (a=a at entry=0x1484ad8,
ma=ma at entry=0x0, ds=ds at entry=0x7fff39eebf40, verbose=verbose at entry=true) at
../lib/odp-util.c:987
tun_key = {tun_id = 0, ip_src = 0, ip_dst = 0, flags = 0, ip_tos =
0 '\000', ip_ttl = 0 '\000'}
attr = OVS_KEY_ATTR_ENCAP
namebuf = "\377\377\377\377\377\377\377\377\000\000\000\000\000\000"
is_exact = true
#5 0x00000000004609d7 in odp_flow_format (key=key at entry=0x1484aa0,
key_len=key_len at entry=100, mask=mask at entry=0x0, mask_len=mask_len at entry=0,
ds=ds at entry=0x7fff39eebf40, verbose=verbose at entry=true) at
../lib/odp-util.c:1402
is_nested_attr = <optimized out>
is_wildcard = <optimized out>
attr_type = <optimized out>
a = 0x1484ad8
ma = 0x0
ofp = {base = 0x1484b10, allocated = 100, source = OFPBUF_MALLOC,
data = 0x1484b10, size = 0, l2 = 0x0, l2_5 = 0x0, l3 = 0x0, l4 = 0x0, l7 =
0x0, list_node = {prev = 0xcccccccccccccccc, next = 0xcccccccccccccccc},
private_p = 0x0}
first_field = <optimized out>
left = 44
has_ethtype_key = true
mask_len = 0
mask = 0x0
key_len = 100
key = 0x1484ad8
verbose = <optimized out>
ds = 0x7fff39eebf40
(More stack frames follow...)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20141212/c8f3f198/attachment-0002.html>
More information about the discuss
mailing list