-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime/race: tracebacks missing symbol/file names #60245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The symbolizer ignore wrappers https://cs.opensource.google/go/go/+/master:src/runtime/race.go;l=179 . But if the symbolizer is given a PC that is in a wrapper, we should probably just give it the wrapper symbol. Maybe we could avoid wrapper PCs in the first place? Not sure if it is possible. For this particular case, I thought the compiler should directly call the ABIInternal |
CL https://golang.org/cl/495478 tries to remove some wrapper PCs. It looks reasonable to me, but it doesn't work... |
Change https://go.dev/cl/495478 mentions this issue: |
It looks like the 1.20 symbolization code tries to skip the wrapper if the wrapper is inlined. It will use the wrapper symbol if it is an outlined wrapper. It seems the code at tip skips wrapper even if it is not inlined, so it fails to symbolize the PC? |
Bisect blames 166e5ee cd $GOROOT
cat >/tmp/x.go <<EOF
package main
import (
"sync"
)
func main() {
for i := 0; i < 100000; i++ {
var wg sync.WaitGroup
go func() {
wg.Add(1)
wg.Done()
}()
wg.Wait()
}
}
EOF
cat >do-bisect <<EOF
#!/bin/zsh
set -e
rm -f src/time/tzdata/zzipdata.go
cd src
./make.bash || exit 125
for ((i = 0; i < 100; i++)); do
echo -n .
go run -race /tmp/x.go >& /tmp/out || true
if grep -q "DATA RACE" /tmp/out; then
if grep -q '??()' /tmp/out; then
echo " fail"
exit 1
fi
echo " pass"
exit 0
fi
done
echo
echo "FAILED TO REPRODUCE"
exit 125
EOF
git bisect start master $(git merge-base master origin/release-branch.go1.20)
git bisect run ./do-bisect |
Change https://go.dev/cl/497235 mentions this issue: |
What version of Go are you using (
go version
)?tip, cce6769
Does this issue reproduce with the latest release?
No, not in 1.20
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Run this program in race mode:
What did you expect to see?
What did you see instead?
The reported PC is in racewrite.abi0:
cc @golang/runtime @aclements @cherrymui
The text was updated successfully, but these errors were encountered: