scripts/runqemu-ifdown: Don't treat the last iptables command as special

Message ID SJ0PR15MB4534A11B25E21BC022D1CBC2BF279@SJ0PR15MB4534.namprd15.prod.outlook.com
State Accepted, archived
Commit 0ebcfb034bcad81efef5f746f0aa0b69772901a0
Headers show
Series scripts/runqemu-ifdown: Don't treat the last iptables command as special | expand

Commit Message

Daniel Mueller Feb. 2, 2022, 5:18 p.m. UTC
The runqemu-ifup script performs a bunch of setup steps that
runqemu-ifdown attempts to undo later on. While a bunch of said setup
operations are considered fatal should they fail, the iptables based NAT
setup notably is not.
The tear down procedure in runqemu-ifdown, however, has the iptables
based tear down as the last operation, with the status of it determining
the overall status of the script. Hence, if this step fails, the script
is considered a failure overall. That is arguably inconsistent: If the
NAT setup did not succeed, the tear down cannot succeed either.
To ensure similarity of the two paths, let's not treat the last iptables
tear down operation any special and allow it to fail the runqemu-ifdown
script, but just ignore failures.

Background: we have seen a NAT related setup problem on the ifup path
(which didn't cause script failure), but then saw an issue bubbled up
when this operation was meant to be undone on the ifdown path.

Signed-off-by: Daniel Müller <muellerd@fb.com>
---
 scripts/runqemu-ifdown | 1 +
 1 file changed, 1 insertion(+)

--
2.34.1

Patch

diff --git a/scripts/runqemu-ifdown b/scripts/runqemu-ifdown
index a104c3..e0eb53 100755
--- a/scripts/runqemu-ifdown
+++ b/scripts/runqemu-ifdown
@@ -64,3 +64,4 @@  n=$[ (`echo $TAP | sed 's/tap//'` * 2) + 1 ]
 dest=$[ (`echo $TAP | sed 's/tap//'` * 2) + 2 ]
 $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$n/32
 $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$dest/32
+true