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

Reply via email to