Bug 1719759

Summary: iproute executes commands with the wrong VRF conxext
Product: Red Hat Enterprise Linux 8 Reporter: Matteo Croce <mcroce>
Component: iprouteAssignee: Andrea Claudi <aclaudi>
Status: CLOSED ERRATA QA Contact: Jaroslav Aster <jaster>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: atragler, jaster, rkhan
Target Milestone: rc   
Target Release: 8.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: iproute-4.18.0-15.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 22:26:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matteo Croce 2019-06-12 13:30:35 UTC
When running in batch mode, iproute can run commands with the wrong VRF associations.

	# ip -b - <<-'EOF'
		link add type vrf table 100
		link set vrf0 up
		link add type dummy
		link set dummy0 vrf vrf0 up
		netns add ns1
	EOF
	# ip -all -b - <<-'EOF'
		vrf exec vrf0 true
		netns exec setsid -f sleep 1h
	EOF
	# ip vrf pids vrf0
	  314  sleep
	# ps 314
	  PID TTY      STAT   TIME COMMAND
	  314 ?        Ss     0:00 sleep 1h

The last batch command should run 'true' with the vrf0 VRF context, and 'sleep 1h' in the default context, in the 'ns1' netns.
But the command later shows that sleep is running with the vrf0 associations.

A series, not yet merged, was posted upstream to fix this:

https://lore.kernel.org/netdev/20190611161031.12898-1-mcroce@redhat.com/T/

Comment 1 Andrea Claudi 2019-06-26 09:59:41 UTC
Fixed upstream. Commits to be backported:

commit 903818fbf9c73dd71793e5829775d2ccc1775af5
Author: Matteo Croce <mcroce>
Date:   Tue Jun 18 16:49:33 2019 +0200

    netns: switch netns in the child when executing commands

commit d81d4ba15d74a51f23f61a2ddb792689e5db95f0
Author: Matteo Croce <mcroce>
Date:   Tue Jun 18 16:49:34 2019 +0200

    ip vrf: use hook to change VRF in the child

commit b2e2922373a6c65ed08b57926e61f3621d89a70a
Author: Matteo Croce <mcroce>
Date:   Tue Jun 18 16:49:35 2019 +0200

    netns: make netns_{save,restore} static

Comment 6 errata-xmlrpc 2019-11-05 22:26:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:3602