Skip to content

runtime: MSAN failed to run on arm64 with non-PIE builds #33712

Closed
@zhangfannie

Description

@zhangfannie

What version of Go are you using (go version)?

$ go version
go version devel +0dd120df7e Sun Aug 18 01:16:33 2019 +0000 linux/arm64

Does this issue reproduce with the latest release?

yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/home/fanzha02/.cache/go-build"
GOENV="/home/fanzha02/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/fanzha02/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/fanzha02/work/go_project/golang"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/fanzha02/work/go_project/golang/pkg/tool/linux_arm64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/fanzha02/work/go_project/golang/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build281474518=/tmp/go-build -gno-record-gcc-switches"

What did you do?

cd golang/src
CC=clang ../bin/go tool dist test testsanitizers/msan
clang --version
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

What did you expect to see?

the msan tests report errors:
--- FAIL: TestMSAN/msan (4.06s)
msan_test.go:53: /tmp/TestMSAN490720188/msan exited with exit status 77
FATAL: Code 0x00000041d7a0 is out of application range. Non-PIE build?
FATAL: MemorySanitizer can not mmap the shadow memory.
FATAL: Make sure to compile with -fPIE and to link with -pie.
FATAL: Disabling ASLR is known to cause this error.
FATAL: If running under GDB, try 'set disable-randomization off'.
==20194==Process memory map follows:
0x000000400000-0x000000636000 /tmp/TestMSAN490720188/msan
0x000000646000-0x00000064b000 /tmp/TestMSAN490720188/msan
0x00000064b000-0x000000662000 /tmp/TestMSAN490720188/msan
0x000000662000-0x000002ba7000
0xffff905dc000-0xffff9094e000
0xffff9094e000-0xffff90a8e000 /lib/aarch64-linux-gnu/libc-2.27.so
0xffff90a8e000-0xffff90a9d000 /lib/aarch64-linux-gnu/libc-2.27.so
0xffff90a9d000-0xffff90aa1000 /lib/aarch64-linux-gnu/libc-2.27.so
0xffff90aa1000-0xffff90aa3000 /lib/aarch64-linux-gnu/libc-2.27.so
0xffff90aa3000-0xffff90aa7000
0xffff90aa7000-0xffff90aba000 /lib/aarch64-linux-gnu/libgcc_s.so.1
0xffff90aba000-0xffff90ac9000 /lib/aarch64-linux-gnu/libgcc_s.so.1
0xffff90ac9000-0xffff90aca000 /lib/aarch64-linux-gnu/libgcc_s.so.1
0xffff90aca000-0xffff90acb000 /lib/aarch64-linux-gnu/libgcc_s.so.1
0xffff90acb000-0xffff90ace000 /lib/aarch64-linux-gnu/libdl-2.27.so
0xffff90ace000-0xffff90ade000 /lib/aarch64-linux-gnu/libdl-2.27.so
0xffff90ade000-0xffff90adf000 /lib/aarch64-linux-gnu/libdl-2.27.so
0xffff90adf000-0xffff90ae0000 /lib/aarch64-linux-gnu/libdl-2.27.so
0xffff90ae0000-0xffff90b89000 /lib/aarch64-linux-gnu/libm-2.27.so
0xffff90b89000-0xffff90b98000 /lib/aarch64-linux-gnu/libm-2.27.so
0xffff90b98000-0xffff90b99000 /lib/aarch64-linux-gnu/libm-2.27.so
0xffff90b99000-0xffff90b9a000 /lib/aarch64-linux-gnu/libm-2.27.so
0xffff90b9a000-0xffff90ba0000 /lib/aarch64-linux-gnu/librt-2.27.so
0xffff90ba0000-0xffff90baf000 /lib/aarch64-linux-gnu/librt-2.27.so
0xffff90baf000-0xffff90bb0000 /lib/aarch64-linux-gnu/librt-2.27.so
0xffff90bb0000-0xffff90bb1000 /lib/aarch64-linux-gnu/librt-2.27.so
0xffff90bb1000-0xffff90bc8000 /lib/aarch64-linux-gnu/libpthread-2.27.so
0xffff90bc8000-0xffff90bd7000 /lib/aarch64-linux-gnu/libpthread-2.27.so
0xffff90bd7000-0xffff90bd8000 /lib/aarch64-linux-gnu/libpthread-2.27.so
0xffff90bd8000-0xffff90bd9000 /lib/aarch64-linux-gnu/libpthread-2.27.so
0xffff90bd9000-0xffff90bdd000
0xffff90bdf000-0xffff90bf3000
0xffff90bf3000-0xffff90c10000 /lib/aarch64-linux-gnu/ld-2.27.so
0xffff90c10000-0xffff90c1d000
0xffff90c1d000-0xffff90c1e000 [vvar]
0xffff90c1e000-0xffff90c1f000 [vdso]
0xffff90c1f000-0xffff90c20000 /lib/aarch64-linux-gnu/ld-2.27.so
0xffff90c20000-0xffff90c22000 /lib/aarch64-linux-gnu/ld-2.27.so
0xffffeace2000-0xffffead12000 [stack]
==20194==End of process memory map.

What did you see instead?

pass

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions