Skip to content

[VPP-21] VPP crashes when tap interface is deleted (with a IP6 or IP4 neighbor) #1284

Closed

Description

@vvalderrv

Description

Program received signal SIGABRT, Aborted.

0x00007ffff5acc267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55

55 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt

#0 0x00007ffff5acc267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55

#1 0x00007ffff5acdeca in __GI_abort () at abort.c:89

#2 0x0000000000407914 in os_panic () at /home/otroan/src/vpp/build-data/../vpp/vnet/main.c:266

#3 0x00007ffff66ec978 in debugger () at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/error.c:81

#4 0x00007ffff66ecd88 in _clib_error (how_to_die=2, function_name=0x0, line_number=0, fmt=0x7ffff7272370 "%s:%d (%s) assertion `%s' fails")

at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/error.c:139

#5 0x00007ffff70a98fb in vnet_get_sw_interface (vnm=0x665980 <vnet_main>, sw_if_index=5)

at /home/otroan/src/vpp/build-data/../vnet/vnet/interface_funcs.h:49

#6 0x00007ffff70b307d in ip4_probe_neighbor (vm=0x665240 <vlib_global_main>, dst=0x7fffc53f949e, sw_if_index=5)

at /home/otroan/src/vpp/build-data/../vnet/vnet/ip/ip4_forward.c:2287

#7 0x000000000042e6f3 in resolver_process (vm=0x665240 <vlib_global_main>, rt=0x7fffc5684000, f=0x0) at /home/otroan/src/vpp/build-data/../vpp/api/api.c:704

#8 0x00007ffff753ebfd in vlib_process_bootstrap (_a=140736510655776) at /home/otroan/src/vpp/build-data/../vlib/vlib/main.c:1177

#9 0x00007ffff67016e0 in clib_calljmp () at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/longjmp.S:110

#10 0x00007fffc5b97cf0 in ?? ()

#11 0x00007ffff753ed27 in vlib_process_startup (vm=0x9858d0486e9ac100, p=0xffffffffffffffff, f=0x7fffc5684000)

at /home/otroan/src/vpp/build-data/../vlib/vlib/main.c:1201

#12 0x0000000000665358 in vlib_global_main ()

or with only IPv4

Program received signal SIGABRT, Aborted.

0x00007ffff5acc267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55

55 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

(gdb) bt

#0 0x00007ffff5acc267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55

#1 0x00007ffff5acdeca in __GI_abort () at abort.c:89

#2 0x0000000000407914 in os_panic () at /home/otroan/src/vpp/build-data/../vpp/vnet/main.c:266

#3 0x00007ffff66ec978 in debugger () at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/error.c:81

#4 0x00007ffff66ecd88 in _clib_error (how_to_die=2, function_name=0x0, line_number=0, fmt=0x7ffff7272370 "%s:%d (%s) assertion `%s' fails")

at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/error.c:139

#5 0x00007ffff70a98fb in vnet_get_sw_interface (vnm=0x665980 <vnet_main>, sw_if_index=5)

at /home/otroan/src/vpp/build-data/../vnet/vnet/interface_funcs.h:49

#6 0x00007ffff70b307d in ip4_probe_neighbor (vm=0x665240 <vlib_global_main>, dst=0x7fffc54840da, sw_if_index=5)

at /home/otroan/src/vpp/build-data/../vnet/vnet/ip/ip4_forward.c:2287

#7 0x000000000042e6f3 in resolver_process (vm=0x665240 <vlib_global_main>, rt=0x7fffc5684000, f=0x0) at /home/otroan/src/vpp/build-data/../vpp/api/api.c:704

#8 0x00007ffff753ebfd in vlib_process_bootstrap (_a=140736510655776) at /home/otroan/src/vpp/build-data/../vlib/vlib/main.c:1177

#9 0x00007ffff67016e0 in clib_calljmp () at /home/otroan/src/vpp/build-data/../vppinfra/vppinfra/longjmp.S:110

#10 0x00007fffc5b97cf0 in ?? ()

#11 0x00007ffff753ed27 in vlib_process_startup (vm=0xa023438064492e00, p=0xffffffffffffffff, f=0x7fffc5684000)

at /home/otroan/src/vpp/build-data/../vlib/vlib/main.c:1201

#12 0x0000000000665358 in vlib_global_main ()

To reproduce, steps are something like:

r = vpp_papi.tap_connect(1, b'tap0\0', bytearray.fromhex('000000000000'), 0, 0)

r = vpp_papi.sw_interface_add_del_address(swifindex, is_add, is_ipv6, del_all, address_length, address)

r = vpp_papi.sw_interface_set_flags(swifindex, admin_up_down, link_up_down, deleted)

r = vpp_papi.ip_add_del_route(next_hop_sw_if_index, vrf_id, lookup_in_vrf, resolve_attempts, classify_table_index,

                          create_vrf_if_needed, resolve_if_needed, is_add, is_drop, is_ipv6, is_local,

                          is_classify, is_multipath, not_last, next_hop_weight, dst_address_length,

                          dst_address, next_hop_address)

r = vpp_papi.tap_delete(swifindex)

Where next-hop is out the TAP interface.

Assignee

Deepak jain

Reporter

Ole Trøan

Comments

  • dbarach (Mon, 2 May 2016 19:40:00 +0000): This is a variation on an old theme: we don't keep track of routes by interface. A real fix is coming in the next release - ran out of time for 16.06 - in the meanwhile: shut down interfaces vs. deleting them, specifically so that xxx-interface-output will just drop traffic.

Original issue: https://jira.fd.io/browse/VPP-21

Activity

  1. vvalderrv commented on Jan 31, 2025

    @vvalderrv
    ContributorAuthor

    This is a variation on an old theme: we don't keep track of routes by interface. A real fix is coming in the next release - ran out of time for 16.06 - in the meanwhile: shut down interfaces vs. deleting them, specifically so that xxx-interface-output will just drop traffic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions