Skip to content

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

Closed
@vvalderrv

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

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