We ignored a lot of errors, but now we actually propagate them back
up.
Upgraded the containernetworking plugin package to take advantage of
functions that handle errors correctly when discovering veths, changed
lookup of interface inside of the pod namespace from eth0 to veth0.
Made this ipv4 only. It always was, but made it more so.
Panics that resulted from LockOSThread misuse (more below)
The major logic issue stemmed from a panic being
caused by "inconsistent mutex state." Stack trace from this panic is
below.
I didn't dig too far into why this happens, but my understanding is
this:
cni process used init() to LockOSThread the main goroutine to one process.
eventually, we make a call to netns.Do(), which brings us into a funky locked thread to enter the network namespace.
We call TeardownIPMasq, which eventually spawns a process, which
depends on some mutex, which gets into an inconsistent state.
I haven't looked into exactly why this happens, but we don't need to
really look into it. Do() does all the thread locking we need under
the hood, there's no need to do it in init(). So double checked our
usages and determined we can safely remove it. This removes
the panic.
We ignored a lot of errors, but now we actually propagate them back up.
Upgraded the containernetworking plugin package to take advantage of functions that handle errors correctly when discovering veths, changed lookup of interface inside of the pod namespace from eth0 to veth0.
Made this ipv4 only. It always was, but made it more so.
Panics that resulted from LockOSThread misuse (more below)
The major logic issue stemmed from a panic being caused by "inconsistent mutex state." Stack trace from this panic is below.
I didn't dig too far into why this happens, but my understanding is this:
I haven't looked into exactly why this happens, but we don't need to really look into it. Do() does all the thread locking we need under the hood, there's no need to do it in init(). So double checked our usages and determined we can safely remove it. This removes the panic.
Panic Stacktrace: