Hello,
I am using with OpenVSwitch 2.9.2, controlled by a recent version of
networking-ovn and have problems with segmentation faults in
tun_metadata_to_geneve__ which are apparently caused by DNS requests generated
by the OVN controller. The .tab pointer in the flow variable is NULL, as can be
seen below. For completeness, I have included both the contents of the flow
metadata and the packet data. Last, there are a few log entries with more of
the packet processing data just before the segfault (10.14.33.16, .17 are the
tunnel endpoints, 10.14.30.75 is a virtual router and 128.176.196.36 is a DNS
server). To be sure, that the issue is caused by the DNS requests, I disabled
DNS functionality manually in networking-ovn and removed all DNS entries in the
NB database. Since then, I have observed no more segfaults.
Best regards,
Markus
Program terminated with signal 11, Segmentation fault.
#0 tun_metadata_to_geneve__ (flow=flow@entry=0x7ffc56906c90,
b=b@entry=0x7ffc568ea958, crit_opt=crit_opt@entry=0x7ffc568ea657) at
lib/tun-metadata.c:676
676 opt = ofpbuf_put_uninit(b, sizeof *opt + entry->loc.len);
(gdb) bt
#0 tun_metadata_to_geneve__ (flow=flow@entry=0x7ffc56906c90,
b=b@entry=0x7ffc568ea958, crit_opt=crit_opt@entry=0x7ffc568ea657) at
lib/tun-metadata.c:676
#1 0x000055ed707199ab in tun_metadata_to_geneve_nlattr_flow (b=0x7ffc568ea958,
flow=0x7ffc56906c50) at lib/tun-metadata.c:706
#2 tun_metadata_to_geneve_nlattr (tun=tun@entry=0x7ffc56906c50,
flow=flow@entry=0x7ffc56906c50, key=key@entry=0x0, b=b@entry=0x7ffc568ea958) at
lib/tun-metadata.c:810
#3 0x000055ed7069e0c2 in tun_key_to_attr (a=a@entry=0x7ffc568ea958,
tun_key=tun_key@entry=0x7ffc56906c50,
tun_flow_key=tun_flow_key@entry=0x7ffc56906c50, key_buf=key_buf@entry=0x0,
tnl_type=<optimized out>, tnl_type@entry=0x0) at lib/odp-util.c:2787
#4 0x000055ed706a9592 in odp_key_from_dp_packet (buf=buf@entry=0x7ffc568ea958,
packet=0x7ffc56906b40) at lib/odp-util.c:5674
#5 0x000055ed70729340 in dpif_netlink_encode_execute (buf=0x7ffc568ea958,
d_exec=0x7ffc569067a8, dp_ifindex=<optimized out>) at lib/dpif-netlink.c:1858
#6 dpif_netlink_operate__ (dpif=dpif@entry=0x55ed70bd74e0,
ops=ops@entry=0x7ffc56906798, n_ops=n_ops@entry=1) at lib/dpif-netlink.c:1944
#7 0x000055ed70729996 in dpif_netlink_operate_chunks (n_ops=1,
ops=0x7ffc56906798, dpif=<optimized out>) at lib/dpif-netlink.c:2243
#8 dpif_netlink_operate (dpif_=0x55ed70bd74e0, ops=0x7ffc56906798,
n_ops=<optimized out>) at lib/dpif-netlink.c:2279
#9 0x000055ed706705f3 in dpif_operate (dpif=0x55ed70bd74e0,
ops=ops@entry=0x7ffc56906798, n_ops=n_ops@entry=1) at lib/dpif.c:1359
#10 0x000055ed70670dd8 in dpif_execute (dpif=<optimized out>,
execute=execute@entry=0x7ffc56906830) at lib/dpif.c:1324
#11 0x000055ed70623ca1 in nxt_resume (ofproto_=0x55ed70bb10c0,
pin=0x7ffc569072b0) at ofproto/ofproto-dpif.c:4874
#12 0x000055ed70610206 in handle_nxt_resume
(ofconn=ofconn@entry=0x55ed70c1b2a0, oh=oh@entry=0x55ed70c2c970) at
ofproto/ofproto.c:3607
#13 0x000055ed7061c29b in handle_openflow__ (msg=0x55ed70bb8c50,
ofconn=0x55ed70c1b2a0) at ofproto/ofproto.c:8130
#14 handle_openflow (ofconn=0x55ed70c1b2a0, ofp_msg=0x55ed70bb8c50) at
ofproto/ofproto.c:8251
#15 0x000055ed7064c793 in ofconn_run (handle_openflow=0x55ed7061bfd0
<handle_openflow>, ofconn=0x55ed70c1b2a0) at ofproto/connmgr.c:1432
#16 connmgr_run (mgr=0x55ed70bb1650,
handle_openflow=handle_openflow@entry=0x55ed7061bfd0 <handle_openflow>) at
ofproto/connmgr.c:363
#17 0x000055ed70615fae in ofproto_run (p=0x55ed70bb10c0) at
ofproto/ofproto.c:1816
#18 0x000055ed706034ac in bridge_run__ () at vswitchd/bridge.c:2939
#19 0x000055ed70609528 in bridge_run () at vswitchd/bridge.c:2997
#20 0x000055ed705ff99d in main (argc=10, argv=0x7ffc56908738) at
vswitchd/ovs-vswitchd.c:119
(gdb) print *flow
$1 = {present = {map = 1, len = 1 '\001'}, tab = 0x0, opts = {u8 =
"\000\001\000\003", '\000' <repeats 251 times>, gnv = {{opt_class = 256, type =
0 '\000', length = 3 '\003', r3 = 0 '\000', r2 = 0 '\000', r1 = 0 '\000'},
{opt_class = 0, type = 0 '\000', length = 0 '\000', r3 = 0 '\000',
r2 = 0 '\000', r1 = 0 '\000'} <repeats 62 times>}}}
(gdb) frame 4
#4 0x000055ed706a9592 in odp_key_from_dp_packet (buf=buf@entry=0x7ffc568ea958,
packet=0x7ffc56906b40) at lib/odp-util.c:5674
5674 tun_key_to_attr(buf, &md->tunnel, &md->tunnel, NULL, NULL);
(gdb) print *packet
$2 = {mbuf = {cacheline0 = 0x7ffc56906b40, buf_addr = 0x55ed70c37710, {buf_iova
= 94478281328073, buf_physaddr = 94478281328073}, rearm_data = 0x7ffc56906b50,
data_off = 0, {refcnt_atomic = {cnt = 11395}, refcnt = 11395}, nb_segs = 21997,
port = 0, ol_flags = 0,
rx_descriptor_fields1 = 0x7ffc56906b60, {packet_type = 8, {l2_type = 8,
l3_type = 0, l4_type = 0, tun_type = 0, {inner_esp_next_proto = 0 '\000',
{inner_l2_type = 0 '\000', inner_l3_type = 0 '\000'}}, inner_l4_type = 0}},
pkt_len = 89, data_len = 89, vlan_tci = 28881, hash = {rss = 21997,
fdir = {{{hash = 21997, id = 0}, lo = 21997}, hi = 1891540728}, sched =
{lo = 21997, hi = 1891540728}, usr = 21997}, vlan_tci_outer = 21997, buf_len =
89, timestamp = 94476395610114, cacheline1 = 0x7ffc56906b80, {userdata = 0x0,
udata64 = 0}, pool = 0x55ed70d1a600,
next = 0x55ed70a5c880 <monotonic_clock>, {tx_offload = 94478282098104,
{l2_len = 56, l3_len = 267, l4_len = 113, tso_segsz = 60784, outer_l3_len = 85,
outer_l2_len = 0}}, priv_size = 35952, timesync = 28866, seqn = 21997}, source
= DPBUF_MALLOC, l2_pad_size = 0 '\000', l2_5_ofs = 65535,
l3_ofs = 14, l4_ofs = 34, cutlen = 0, packet_type = 0, {md = {{cacheline0 =
"", {recirc_id = 0, dp_hash = 0, skb_priority = 0, pkt_mark = 0, ct_state = 0
'\000', ct_orig_tuple_ipv6 = false, ct_zone = 0, ct_mark = 0, ct_label = {u32 =
{0, 0, 0, 0}, u64 = {lo = 0, hi = 0}}, in_port = {
odp_port = 4294967295, ofp_port = 4294967295}}, pad0 = '\000'
<repeats 40 times>,
"\377\377\377\377\355U\000\000\320l\220V\374\177\000\000\355Vip\355U\000"},
{cacheline1 = "", {ct_orig_tuple = {ipv4 = {ipv4_src = 0, ipv4_dst = 0,
src_port = 0, dst_port = 0, ipv4_proto = 0 '\000'},
ipv6 = {ipv6_src = {__in6_u = {__u6_addr8 = '\000' <repeats 15
times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
ipv6_dst = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 =
{0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
src_port = 0, dst_port = 0, ipv6_proto = 0 '\000'}}}, pad1 =
'\000' <repeats 40 times>,
"\344\av\003\000\000\000\000\340l\220V\374\177\000\000\000\325\070\071\207\031\230&"},
{cacheline2 = "\n", {tunnel = {ip_dst = 203492874, ipv6_dst = {__in6_u = {
__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip_src = 253824522, ipv6_src =
{__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0,
0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
tun_id = 360287970189639680, flags = 0, ip_tos = 0 '\000', ip_ttl =
0 '\000', tp_src = 0, tp_dst = 0, gbp_id = 0, gbp_flags = 0 '\000', pad1 =
"\000\000\000\000", metadata = {present = {map = 1, len = 1 '\001'}, tab = 0x0,
opts = {
u8 = "\000\001\000\003", '\000' <repeats 251 times>, gnv =
{{opt_class = 256, type = 0 '\000', length = 3 '\003', r3 = 0 '\000', r2 = 0
'\000', r1 = 0 '\000'}, {opt_class = 0, type = 0 '\000', length = 0 '\000', r3
= 0 '\000', r2 = 0 '\000',
r1 = 0 '\000'} <repeats 62 times>}}}}}, pad2 = "\n\016!\f",
'\000' <repeats 16 times>, "\n\016!\017", '\000' <repeats 23 times>, "\005",
'\000' <repeats 16 times>, "\001", '\000' <repeats 16 times>, "\001\000\003",
'\000' <repeats 252 times>...}}, data = {0, 0, 0, 0, 0,
94480690577407, 140721760791760, 94478281561837}}}
2018-07-27T10:20:30.111Z|00780|vconn|DBG|unix: sent (Success): NXT_PACKET_IN2
(OF1.3) (xid=0x0): cookie=0x0 total_len=70
reg11=0x1,reg12=0x5,reg14=0x7,tun_id=0x6,tun_src=10.14.33.16,tun_dst=10.14.33.17,tun_metadata0=0x10003,metadata=0x3,in_port=0
(via action) data_len=70 (unbuffered)
userdata=00.00.00.06.00.00.00.00.00.01.de.10.00.00.00.64
continuation.bridge=61034375-741b-43e2-8b07-4a4d858968ee
continuation.actions=unroll_xlate(table=0, cookie=0),resubmit(,23)
udp,vlan_tci=0x0000,dl_src=fa:16:3e:55:b6:d2,dl_dst=40:b9:3c:46:90:7d,nw_src=10.14.30.75,nw_dst=128.176.196.36,nw_tos=0,nw_ecn=0,nw_ttl=63,tp_src=40121,tp_dst=53
udp_csum:4900
2018-07-27T10:20:30.112Z|00782|vconn|DBG|unix: received: NXT_RESUME (OF1.3)
(xid=0x0): cookie=0x0 total_len=70
reg0=0/0x10,reg11=0x1,reg12=0x5,reg14=0x7,tun_id=0x6,tun_src=10.14.33.16,tun_dst=10.14.33.17,tun_metadata0=0x10003,metadata=0x3,in_port=0
(via action) data_len=70 (unbuffered)
continuation.bridge=61034375-741b-43e2-8b07-4a4d858968ee
continuation.actions=unroll_xlate(table=0, cookie=0),resubmit(,23)
udp,vlan_tci=0x0000,dl_src=fa:16:3e:55:b6:d2,dl_dst=40:b9:3c:46:90:7d,nw_src=10.14.30.75,nw_dst=128.176.196.36,nw_tos=0,nw_ecn=0,nw_ttl=63,tp_src=40121,tp_dst=53
udp_csum:4900
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss