<p dir="auto">On linux/amd64 with <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/golang/go/commit/0b9866fd561d5ecebee14d73c0a4938dec5abe7d/hovercard" href="https://github.com/golang/go/commit/0b9866fd561d5ecebee14d73c0a4938dec5abe7d"><tt>0b9866f</tt></a>. I saw this only once during a test like the following:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="#!/usr/bin/env bash

# go test -c

set -xe
while true; do
        GOMAXPROCS=$[ 1 + $[ RANDOM % 128 ]] ./net.test -test.v=true -test.short=false -test.run=TestVariousDeadlines || exit 255
done"><pre class="notranslate"><code class="notranslate">#!/usr/bin/env bash

# go test -c

set -xe
while true; do
        GOMAXPROCS=$[ 1 + $[ RANDOM % 128 ]] ./net.test -test.v=true -test.short=false -test.run=TestVariousDeadlines || exit 255
done
</code></pre></div>
<p dir="auto">A send on an unbuffered channel to a blocked receiver writes directly to the receiver's stack. This violates the assumption made by the garbage collector that all writes to a stack happen while the receiver is executing and go through write barriers. This causes missed writes and incorrect collection of data.</p>