[Nfd-dev] NFD face create race condition at startup
Dehart, John
jdd at wustl.edu
Thu Nov 14 08:49:06 PST 2019
All:
I believe I have run into a race condition when starting NFD on the NDN Testbed nodes.
We start NFD with this in its systemd file:
ExecStart=/usr/bin/nfd --config /etc/ndn/nfd.conf
ExecStartPost=/bin/sh -ec 'sleep 2; if [ -f /etc/ndn/nfd-init.sh ]; then . /etc/ndn/nfd-init.sh; fi'
In /etc/ndn/nfd-init.sh we have ‘nfdc face create’ commands to create the faces to the nodes defined neighbors.
Those look something like this (from WU creating a face to Memphis):
nfdc face create udp4://141.225.11.173:6363 persistency permanent reliability on mtu 1450
But what appears to be happening is that while nfd is starting up on WU, other nodes may be in the process of sending
NDN packets to WU. When those packets arrive the newly started NFD will create an on-demand face and the nfdc face create
in nfd-init.sh fails and we lose the face parameters we really want.
I’m currently trying this change:
set +
nfdc face destroy udp4://141.225.11.173:6363; nfdc face create udp4://141.225.11.173:6363 persistency permanent reliability on mtu 1450
This tells bash to ignore erros and then we destroy the face we are about to create and then create it the way we want it.
My concern is that even this may not always work. Packets could still arrive between the two nfdc commands.
Is the only sure way to get this to work to block traffic from that neighbor and then destroy and create the face?
Something like this:
set +
iptables -A INPUT -s 141.225.11.173 -j DROP
nfdc face destroy udp4://141.225.11.173:6363;
nfdc face create udp4://141.225.11.173:6363 persistency permanent reliability on mtu 1450
iptables -D INPUT -s 141.225.11.173 -j DROP
Thanks for any help or suggestions.
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://www.lists.cs.ucla.edu/pipermail/nfd-dev/attachments/20191114/182640af/attachment-0001.sig>
More information about the Nfd-dev
mailing list