third_party/go: patch embedded etcd to prevent spurious panics

This channel double-close tends to panic etcd if we end up calling
server.Close more than once. It seems like a programming bug in etcd
upstream, this function should be otherwise safe to call more than once.

Change-Id: Iba93dc58202f22f966af251b7424d5d4c4e10612
Reviewed-on: https://review.monogon.dev/c/monogon/+/1353
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/third_party/go/patches/etcd-fix-embed-close.patch b/third_party/go/patches/etcd-fix-embed-close.patch
new file mode 100644
index 0000000..99aae88
--- /dev/null
+++ b/third_party/go/patches/etcd-fix-embed-close.patch
@@ -0,0 +1,11 @@
+diff -ur io_etcd_go_etcd_server_v3.orig/embed/etcd.go io_etcd_go_etcd_server_v3/embed/etcd.go
+--- io_etcd_go_etcd_server_v3.orig/embed/etcd.go	2023-03-16 12:53:08.416697099 +0100
++++ io_etcd_go_etcd_server_v3/embed/etcd.go	2023-03-16 12:54:27.376650809 +0100
+@@ -427,6 +426,7 @@
+ 	}
+ 	if e.errc != nil {
+ 		close(e.errc)
++		e.errc = nil
+ 	}
+ }
+