Squashed 'third_party/marl/' changes from e007bd3dd1b..a47a3a5c544

a47a3a5c544 Unpoison `bound` on `setBound()`
680d5495916 Kokoro: fetch submodules outside of docker

git-subtree-dir: third_party/marl
git-subtree-split: a47a3a5c54435751d30e3154fdf17e3b29fc6796
Change-Id: I427fed5e1db5957d8b326ac2385ba880ab751a0a
diff --git a/kokoro/ubuntu/docker.sh b/kokoro/ubuntu/docker.sh
index a21e607..4cba967 100755
--- a/kokoro/ubuntu/docker.sh
+++ b/kokoro/ubuntu/docker.sh
@@ -28,9 +28,6 @@
 
 . /bin/using.sh # Declare the bash `using` function for configuring toolchains.
 
-status "Fetching submodules"
-git submodule update --init
-
 status "Setting up environment"
 using gcc-9 # Always update gcc so we get a newer standard library.
 
diff --git a/kokoro/ubuntu/presubmit.sh b/kokoro/ubuntu/presubmit.sh
index 08627ef..10cccc9 100755
--- a/kokoro/ubuntu/presubmit.sh
+++ b/kokoro/ubuntu/presubmit.sh
@@ -19,6 +19,9 @@
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
 ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )"
 
+# Fetch submodules outside of Docker, to avoid a 'detected dubious ownership in repository' git error
+git -C "${ROOT_DIR}" submodule update --init
+
 # --privileged is required for some sanitizer builds, as they seem to require PTRACE privileges
 docker run --rm -i \
   --privileged \
diff --git a/kokoro/ubuntu/release.sh b/kokoro/ubuntu/release.sh
index 484b1ea..abc4125 100755
--- a/kokoro/ubuntu/release.sh
+++ b/kokoro/ubuntu/release.sh
@@ -19,6 +19,9 @@
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
 ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )"
 
+# Fetch submodules outside of Docker, to avoid a 'detected dubious ownership in repository' git error
+git -C "${ROOT_DIR}" submodule update --init
+
 # --privileged is required for some sanitizer builds, as they seem to require PTRACE privileges
 docker run --rm -i \
   --privileged \
diff --git a/src/scheduler.cpp b/src/scheduler.cpp
index 43c2c1c..2f32582 100644
--- a/src/scheduler.cpp
+++ b/src/scheduler.cpp
@@ -92,7 +92,8 @@
 }
 
 void Scheduler::setBound(Scheduler* scheduler) {
-    bound = scheduler;
+  MSAN_UNPOISON(&bound, sizeof(Scheduler*));
+  bound = scheduler;
 }
 
 void Scheduler::bind() {