After a closer look at this, it turns out udp-ping-local registers itself as a handler for hop-by-hop options and in doing so it “steals” MLDv2 listener reports. I suspect the latter should be handled by icmpv6 but, because the reports are generated with ip proto IP_PROTOCOL_IP6_HOP_BY_HOP_OPTIONS instead of IP_PROTOCOL_ICMP6, they end up in udp-ping-local.
So, since I expect more people to depend on MLDv2, I guess that the short term solution is this [1], i.e., disable udp-ping. Long term, I guess we want to add a demux node for hop-by-hop options. Opinions? Florin [1] https://gerrit.fd.io/r/#/c/19816/ <https://gerrit.fd.io/r/#/c/19816/> > On May 22, 2019, at 9:35 AM, Florin Coras via Lists.Fd.Io > <[email protected]> wrote: > > Hi Nathan, > > Just a quick reply. I regularly run make test-debug TEST=vcl so please > continue to do that and please report any issues you may encounter. > > Something is weird because packets make it to udp-ping-local which shouldn’t > be hit at all. Will take a look as soon as I can. > > Thanks, > Florin > > >> On May 21, 2019, at 3:41 PM, Nathan Skrzypczak <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi vpp-devs, >> >> I ran into an issue while running VCL hoststack tests on master >> make test-debug >> TEST=test_vcl.VCLIpv6ThruHostStackEcho.test_vcl_ipv6_thru_host_stack_echo >> fails on an assert (trace below), but running make test TEST=... passes as >> asserts are disabled in release mode. >> >> (1) Concerning the test infra, as far as I understand, jenkins only runs >> test in release mode (the reason why this issue got through). So shouldn’t >> enable debug while running tests ? >> >> (2) Concerning this specific issue : >> >> Reverting f8d50682cd <https://gerrit.fd.io/r/#/c/19623/> seems to resolve >> it, but I don’t think it caused it in the first place. >> What happens is that on udp_ping_node.c:612 we set the local next node index >> for udp-ping-local to lm->local_next_by_ip_protocol[hbh0->protocol] which is >> a local next node index for the ip6-local-node. So it breaks the assert >> We can add a udp-ping-local node registration in the ip6_register_protocol >> function (but that’s quite ugly) >> We could also register all ip6-local-node nodes into udp-ping-local but that >> would require knowing when they’re all registered >> My setup is ubuntu18.04.1 on x86_64 >> >> #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 >> #1 0x00007f88365db801 in __GI_abort () at abort.c:79 >> #2 0x0000556bc57c87cd in os_panic () at >> /usr/share/vpp/src/vpp/vnet/main.c:355 >> #3 0x00007f88369c2020 in debugger () at >> /usr/share/vpp/src/vppinfra/error.c:84 >> #4 0x00007f88369c245b in _clib_error (how_to_die=2, function_name=0x0, >> line_number=0, fmt=0x7f8836fcf538 "%s:%d (%s) assertion `%s' fails") >> at /usr/share/vpp/src/vppinfra/error.c:143 >> #5 0x00007f8836f46154 in vlib_node_runtime_get_next_frame >> (vm=0x7f88371f2c80 <vlib_global_main>, n=0x7f87f66cd580, next_index=7) at >> /usr/share/vpp/src/vlib/node_funcs.h:300 >> #6 0x00007f8836f48081 in vlib_get_next_frame_internal (vm=0x7f88371f2c80 >> <vlib_global_main>, node=0x7f87f66cd580, next_index=7, >> allocate_new_next_frame=0) >> at /usr/share/vpp/src/vlib/main.c:371 >> #7 0x00007f87f2c5ecec in udp_ping_local_node_fn (vm=0x7f88371f2c80 >> <vlib_global_main>, node=0x7f87f66cd580, frame=0x7f87f70cc2c0) >> at /usr/share/vpp/src/plugins/ioam/udp-ping/udp_ping_node.c:782 >> #8 0x00007f8836f4b9b5 in dispatch_node (vm=0x7f88371f2c80 >> <vlib_global_main>, node=0x7f87f66cd580, type=VLIB_NODE_TYPE_INTERNAL, >> dispatch_state=VLIB_NODE_STATE_POLLING, >> frame=0x7f87f70cc2c0, last_time_stamp=734672943877552) at >> /usr/share/vpp/src/vlib/main.c:1213 >> #9 0x00007f8836f4c190 in dispatch_pending_node (vm=0x7f88371f2c80 >> <vlib_global_main>, pending_frame_index=23, last_time_stamp=734672943877552) >> at /usr/share/vpp/src/vlib/main.c:1381 >> #10 0x00007f8836f4debc in vlib_main_or_worker_loop (vm=0x7f88371f2c80 >> <vlib_global_main>, is_main=1) at /usr/share/vpp/src/vlib/main.c:1825 >> #11 0x00007f8836f4e737 in vlib_main_loop (vm=0x7f88371f2c80 >> <vlib_global_main>) at /usr/share/vpp/src/vlib/main.c:1927 >> #12 0x00007f8836f4f4ab in vlib_main (vm=0x7f88371f2c80 <vlib_global_main>, >> input=0x7f87f616dfb0) at /usr/share/vpp/src/vlib/main.c:2116 >> #13 0x00007f8836fbbf57 in thread0 (arg=140223017069696) at >> /usr/share/vpp/src/vlib/unix/main.c:640 >> #14 0x00007f88369e5304 in clib_calljmp () from >> /usr/share/vpp/build-root/install-vpp_debug-native/vpp/lib/libvppinfra.so.19.04 >> #15 0x00007ffd530aa390 in ?? () >> #16 0x00007f8836fbc513 in vlib_unix_main (argc=56, argv=0x7ffd530ab6a8) at >> /usr/share/vpp/src/vlib/unix/main.c:710 >> #17 0x0000556bc57c7fd0 in main (argc=56, argv=0x7ffd530ab6a8) at >> /usr/share/vpp/src/vpp/vnet/main.c:280 >> Thanks a lot in advance >> >> Cheers >> >> -Nathan >> >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> >> View/Reply Online (#13104): https://lists.fd.io/g/vpp-dev/message/13104 >> <https://lists.fd.io/g/vpp-dev/message/13104> >> Mute This Topic: https://lists.fd.io/mt/31696737/675152 >> <https://lists.fd.io/mt/31696737/675152> >> Group Owner: [email protected] <mailto:[email protected]> >> Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub >> <https://lists.fd.io/g/vpp-dev/unsub> [[email protected] >> <mailto:[email protected]>] >> -=-=-=-=-=-=-=-=-=-=-=- > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > > View/Reply Online (#13112): https://lists.fd.io/g/vpp-dev/message/13112 > Mute This Topic: https://lists.fd.io/mt/31696737/675152 > Group Owner: [email protected] > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]] > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13139): https://lists.fd.io/g/vpp-dev/message/13139 Mute This Topic: https://lists.fd.io/mt/31696737/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
