Symptom
A cEdge router deployed in an SDWAN environment may experience a crash in the "ftmd" process when adding or removing a tunnel "mode" or "route-via" configuration shortly after the tunnel interface is configured. "Show version" will indicate a last reload reason of:
System returned to ROM by Critical process ftmd fault on rp_0_0 (rc=139)
Conditions
- Router is on IOS-XE 17.9.x or 17.10.x code
- Adding or removing either "tunnel mode gre ip", "tunnel mode ipsec ipv4", or "tunnel route-via"
- Tunnel interface was very recently configured
Workaround
Wait a few seconds between configuring the tunnel interface and modifying it. This is believed to be a timing issue.
Further Problem Description
When a tunnel is configured, the FTMd (Forwarding Table Manager daemon) will receive a message from IOSd (IOS daemon) that a tunnel interface has been created, and memory gets allocated for it. If one of the trigger configurations is then entered, FTMd will get a notification from CONFd (Configuration Daemon) that the tunnel was modified. If the commands are entered quickly enough, CONFd may try to send a notification before the memory finished allocating, leading to a timing issue wherein we try to access unallocated memory and perform a "null pointer deference", leading to a crash.
FTMd and CONFd exist and interact with one another as part of configuration "commit" functionality of cEdge routers. For the reasons above, this bug is specific to SDWAN environments.