Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
vvalderrv opened this issue Jan 31, 2025 · 1 comment

Comments

@vvalderrv
Copy link
Contributor

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

@vvalderrv
Copy link
Contributor Author

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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant