Lock goroutine to OS thread while changing NS
Prevents an issue where the goroutine may jump to a new OS thread during execution putting it into a mount/network NS that is unexpected. Signed-off-by: Brian Goff <cpuguy83@gmail.com> (cherry picked from commit 6d8617d8757a759d806a3307ca04d4d588c04aed) Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
parent
690b9ced49
commit
663672b8c7
|
@ -8,6 +8,7 @@ import (
|
|||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
@ -81,6 +82,10 @@ func setDefaultVlan() {
|
|||
logrus.Error("insufficient number of arguments")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
runtime.LockOSThread()
|
||||
defer runtime.UnlockOSThread()
|
||||
|
||||
nsPath := os.Args[1]
|
||||
ns, err := netns.GetFromPath(nsPath)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue