Hi Sergey,

It would work if your gre interface were also in the non-default table, i.e.
  set int ip table 10 gre0

/neale

From: Segey Yelantsev <elantse...@yandex.ru>
Date: Thursday 16 January 2020 at 02:16
To: "Neale Ranns (nranns)" <nra...@cisco.com>, "vpp-dev@lists.fd.io" 
<vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface 
#vpp

Hi!

2Neale: my scenario is taking MPLS traffic, routing it to a specific ip table 
based on MPLS label. Then IP packets should be routed within that specific 
table with some routes pointing to virtual devices, including a default. The 
backtrace and reason for firing assert is the same as in this gre scenario. And 
it works for table 0, but I wonder why it doesn't work for a non-zero ip table.

Unfotunately, Aleksander's patch did not help:
```
DBGvpp# ip table add 10
DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2
gre0
DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0
DBGvpp# sh ip fib table 10 0.0.0.0/0
ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 
flags:none locks:[CLI:1, ]
0.0.0.0/0 fib:1 index:7 locks:3
CLI refs:1 entry-flags:attached,import, src-flags:added,contributing,active,
path-list:[16] locks:2 flags:shared, uPRF-list:12 len:1 itfs:[1, ]
path:[16] pl-index:16 ip4 weight=1 pref=0 attached:
gre0

default-route refs:1 entry-flags:drop, src-flags:added,
path-list:[11] locks:1 flags:drop, uPRF-list:7 len:0 itfs:[]
path:[11] pl-index:11 ip4 weight=1 pref=0 special: cfg-flags:drop,
[@0]: dpo-drop ip4

forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]
[0] [@0]: dpo-drop ip4
DBGvpp# ip route del 0.0.0.0/0 table 10 via gre0
/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 
(fib_attached_export_purge) assertion `NULL != fed' fails

Thread 1 "vpp_main" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff5ac9801 in __GI_abort () at abort.c:79
#2 0x000055555555be0b in os_panic () at 
/home/elantsev/vpp/src/vpp/vnet/main.c:355
#3 0x00007ffff5eacde9 in debugger () at 
/home/elantsev/vpp/src/vppinfra/error.c:84
#4 0x00007ffff5ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x7ffff7743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143
#5 0x00007ffff74cbbe9 in fib_attached_export_purge (fib_entry=0x7fffb83886b0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367
#6 0x00007ffff74919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb83886b0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674
#7 0x00007ffff7491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709
#8 0x00007ffff7491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb83886b0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))
at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804
#9 0x00007ffff74923f9 in fib_entry_source_removed (fib_entry=0x7fffb83886b0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992
#10 0x00007ffff74925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072
#11 0x00007ffff747980b in fib_table_entry_path_remove2 (fib_index=1, 
prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a34b0) at 
/home/elantsev/vpp/src/vnet/fib/fib_table.c:680
#12 0x00007ffff6fb870c in vnet_ip_route_cmd (vm=0x7ffff66b6680 
<vlib_global_main>, main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at 
/home/elantsev/vpp/src/vnet/ip/lookup.c:449
#13 0x00007ffff63d402f in vlib_cli_dispatch_sub_commands (vm=0x7ffff66b6680 
<vlib_global_main>, cm=0x7ffff66b68b0 <vlib_global_main+560>, 
input=0x7fffb8382f00, parent_command_index=431)
at /home/elantsev/vpp/src/vlib/cli.c:568
#14 0x00007ffff63d3ead in vlib_cli_dispatch_sub_commands (vm=0x7ffff66b6680 
<vlib_global_main>, cm=0x7ffff66b68b0 <vlib_global_main+560>, 
input=0x7fffb8382f00, parent_command_index=0)
at /home/elantsev/vpp/src/vlib/cli.c:528
#15 0x00007ffff63d4434 in vlib_cli_input (vm=0x7ffff66b6680 <vlib_global_main>, 
input=0x7fffb8382f00, function=0x7ffff646dc89 <unix_vlib_cli_output>, 
function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667
#16 0x00007ffff647476d in unix_cli_process_input (cm=0x7ffff66b7020 
<unix_cli_main>, cli_file_index=0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2572
#17 0x00007ffff647540e in unix_cli_process (vm=0x7ffff66b6680 
<vlib_global_main>, rt=0x7fffb8342000, f=0x0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2688
#18 0x00007ffff64161d4 in vlib_process_bootstrap (_a=140736272894320) at 
/home/elantsev/vpp/src/vlib/main.c:1475
#19 0x00007ffff5eccfbc in clib_calljmp () at 
/home/elantsev/vpp/src/vppinfra/longjmp.S:123
#20 0x00007fffb78d8940 in ?? ()
#21 0x00007ffff64162dc in vlib_process_startup (vm=0x0, p=0x8, f=0x7ffff66b6680 
<vlib_global_main>) at /home/elantsev/vpp/src/vlib/main.c:1497
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)
```

15.01.2020, 01:54, "Neale Ranns via Lists.Fd.Io" <nranns=cisco....@lists.fd.io>:

Hi,



Thanks for the bug report, I’ll fix the crash.



A question for you.

DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0



Says “all destinations in table 10 are reachable via an interface in table 0”. 
It implies therefore that all addresses in table 10 refer to the same device in 
table 0, i.e. there is no difference, or separation, between table 10 and 0. In 
other words it’s not something one normally does 😊

What’s your use case for this config?



Thanks,

Neale





From: <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> on behalf of 
"elantse...@yandex.ru<mailto:elantse...@yandex.ru>" 
<elantse...@yandex.ru<mailto:elantse...@yandex.ru>>
Date: Tuesday 14 January 2020 at 17:35
To: "vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>" 
<vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>>
Subject: [vpp-dev] vpp crashes on deleting route 0.0.0.0/0 via interface #vpp



Hello Everyone!

I've encountered an issue with deleting route to 0.0.0.0/0 via some virtual 
interface: vpp crashed with a SIGABRT. This issue can be reproduced with gre 
interface on the current master 1c6486f7b8a00a1358d5c8f4ea1d874073bbcd6c:

DBGvpp# ip table add 10

DBGvpp# create gre tunnel src 1.1.1.1 dst 2.2.2.2

gre0



DBGvpp# ip route add 0.0.0.0/0 table 10 via gre0

DBGvpp# sh ip fib table 10

ipv4-VRF:10, fib_index:1, flow hash:[src dst sport dport proto ] epoch:0 
flags:none locks:[CLI:1, ]

0.0.0.0/0

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:12 to:[0:0]]

    [0] [@0]: dpo-drop ip4

0.0.0.0/32

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:8 to:[0:0]]

    [0] [@0]: dpo-drop ip4

224.0.0.0/4

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:10 to:[0:0]]

    [0] [@0]: dpo-drop ip4

240.0.0.0/4

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:9 to:[0:0]]

    [0] [@0]: dpo-drop ip4

255.255.255.255/32

  unicast-ip4-chain

  [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:11 to:[0:0]]

    [0] [@0]: dpo-drop ip4



/home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367 
(fib_attached_export_purge) assertion `NULL != fed' fails



Thread 1 "vpp_main" received signal SIGABRT, Aborted.

__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51

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



(gdb) bt

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

#1  0x00007ffff5ac9801 in __GI_abort () at abort.c:79

#2  0x000055555555be0b in os_panic () at 
/home/elantsev/vpp/src/vpp/vnet/main.c:355

#3  0x00007ffff5eacde9 in debugger () at 
/home/elantsev/vpp/src/vppinfra/error.c:84

#4  0x00007ffff5ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x7ffff7743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143

#5  0x00007ffff74cbbe0 in fib_attached_export_purge (fib_entry=0x7fffb4bd2dd0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367

#6  0x00007ffff74919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674

#7  0x00007ffff7491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709

#8  0x00007ffff7491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804

#9  0x00007ffff74923f9 in fib_entry_source_removed (fib_entry=0x7fffb4bd2dd0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992

#10 0x00007ffff74925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072

#11 0x00007ffff747980b in fib_table_entry_path_remove2 (fib_index=1, 
prefix=0x7fffb8382b00, source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_table.c:680

#12 0x00007ffff6fb870c in vnet_ip_route_cmd (vm=0x7ffff66b6680 
<vlib_global_main>, main_input=0x7fffb8382f00, cmd=0x7fffb50373b8) at 
/home/elantsev/vpp/src/vnet/ip/lookup.c:449

#13 0x00007ffff63d402f in vlib_cli_dispatch_sub_commands (vm=0x7ffff66b6680 
<vlib_global_main>, cm=0x7ffff66b68b0 <vlib_global_main+560>, 
input=0x7fffb8382f00, parent_command_index=431)

    at /home/elantsev/vpp/src/vlib/cli.c:568

#14 0x00007ffff63d3ead in vlib_cli_dispatch_sub_commands (vm=0x7ffff66b6680 
<vlib_global_main>, cm=0x7ffff66b68b0 <vlib_global_main+560>, 
input=0x7fffb8382f00, parent_command_index=0)

    at /home/elantsev/vpp/src/vlib/cli.c:528

#15 0x00007ffff63d4434 in vlib_cli_input (vm=0x7ffff66b6680 <vlib_global_main>, 
input=0x7fffb8382f00, function=0x7ffff646dc89 <unix_vlib_cli_output>, 
function_arg=0) at /home/elantsev/vpp/src/vlib/cli.c:667

#16 0x00007ffff647476d in unix_cli_process_input (cm=0x7ffff66b7020 
<unix_cli_main>, cli_file_index=0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2572

#17 0x00007ffff647540e in unix_cli_process (vm=0x7ffff66b6680 
<vlib_global_main>, rt=0x7fffb8342000, f=0x0) at 
/home/elantsev/vpp/src/vlib/unix/cli.c:2688

#18 0x00007ffff64161d4 in vlib_process_bootstrap (_a=140736272894320) at 
/home/elantsev/vpp/src/vlib/main.c:1475

#19 0x00007ffff5eccfbc in clib_calljmp () at 
/home/elantsev/vpp/src/vppinfra/longjmp.S:123

#20 0x00007fffb78d8940 in ?? ()

#21 0x00007ffff64162dc in vlib_process_startup (vm=0x0, p=0x8, f=0x7ffff66b6680 
<vlib_global_main>) at /home/elantsev/vpp/src/vlib/main.c:1497

Backtrace stopped: previous frame inner to this frame (corrupt stack?)





#4  0x00007ffff5ead1b8 in _clib_error (how_to_die=2, function_name=0x0, 
line_number=0, fmt=0x7ffff7743bb8 "%s:%d (%s) assertion `%s' fails") at 
/home/elantsev/vpp/src/vppinfra/error.c:143

        msg = 0x0

        va = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 
0x7fffb8382710, reg_save_area = 0x7fffb8382630}}

#5  0x00007ffff74cbbe0 in fib_attached_export_purge (fib_entry=0x7fffb4bd2dd0) 
at /home/elantsev/vpp/src/vnet/fib/fib_attached_export.c:367

        fed = 0x0

        index = 0

        import_index = 0x0

        export_entry = 0x7fffb4bd2bd8

        import = 0x7fffb818d9b8

        export = 0x7fffb83a3620

        fed = 0x7fffb83a3620

        __FUNCTION__ = "fib_attached_export_purge"

#6  0x00007ffff74919de in fib_entry_post_flag_update_actions 
(fib_entry=0x7fffb4bd2dd0, old_flags=(FIB_ENTRY_FLAG_ATTACHED | 
FIB_ENTRY_FLAG_IMPORT)) at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:674

        fei = 7

        is_import = 0

        was_import = 16

        is_attached = -146163533

        was_attached = 32767

#7  0x00007ffff7491a3c in fib_entry_post_install_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:709

No locals.

#8  0x00007ffff7491d78 in fib_entry_post_update_actions 
(fib_entry=0x7fffb4bd2dd0, source=FIB_SOURCE_DEFAULT_ROUTE, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT))

    at /home/elantsev/vpp/src/vnet/fib/fib_entry.c:804

        bw_ctx = {fnbw_reason = FIB_NODE_BW_REASON_FLAG_EVALUATE, fnbw_flags = 
FIB_NODE_BW_FLAG_NONE, fnbw_depth = 1}

#9  0x00007ffff74923f9 in fib_entry_source_removed (fib_entry=0x7fffb4bd2dd0, 
old_flags=(FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:992

        bsrc = 0x7fffb83a2df0

        best_source = FIB_SOURCE_DEFAULT_ROUTE

#10 0x00007ffff74925e7 in fib_entry_path_remove (fib_entry_index=7, 
source=FIB_SOURCE_CLI, rpaths=0x7fffb83a3520) at 
/home/elantsev/vpp/src/vnet/fib/fib_entry.c:1072

        sflag = FIB_ENTRY_SRC_FLAG_NONE

        best_source = FIB_SOURCE_CLI

        bflags = (FIB_ENTRY_FLAG_ATTACHED | FIB_ENTRY_FLAG_IMPORT)

        fib_entry = 0x7fffb4bd2dd0

        bsrc = 0x7fffb83a2df0

        __FUNCTION__ = "fib_entry_path_remove"

Can you please provide some hints/fixes?
,



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#15186): https://lists.fd.io/g/vpp-dev/message/15186
Mute This Topic: https://lists.fd.io/mt/69689561/21656
Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480452
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to