[Bug libgomp/67303] New: libgomp: ThreadSanitizer: data race in libgomp
Joost.VandeVondele at mat dot ethz.ch
gcc-bugzilla@gcc.gnu.org
Fri Aug 21 07:47:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67303
Bug ID: 67303
Summary: libgomp: ThreadSanitizer: data race in libgomp
Product: gcc
Version: 5.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: Joost.VandeVondele at mat dot ethz.ch
CC: jakub at gcc dot gnu.org
Target Milestone: ---
After compiling libgomp with -fsanitize=thread, the following testcase triggers
a warning, which might indicate a problem in libgomp/iter.c:304
> cat test.f90
SUBROUTINE foo()
END SUBROUTINE
!$OMP PARALLEL DO SCHEDULE(guided)
DO i=1,1000
CALL foo()
ENDDO
END
> gfortran -fsanitize=thread -fopenmp -g test.f90
> OMP_NUM_THREADS=4 ./a.out
==================
WARNING: ThreadSanitizer: data race (pid=5740)
Read of size 8 at 0x7d740001eb48 by thread T2:
#0 gomp_iter_guided_next
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/iter.c:304
(libgomp.so.1+0x00000000c123)
#1 gomp_loop_guided_next
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:328
(libgomp.so.1+0x00000000df00)
#2 MAIN__._omp_fn.0 /data/vjoost/gnu/bugs/test.f90:4 (a.out+0x000000400ad5)
#3 gomp_thread_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/team.c:118
(libgomp.so.1+0x0000000177a8)
Previous atomic write of size 8 at 0x7d740001eb48 by thread T3:
#0 __tsan_atomic64_compare_exchange_weak
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libsanitizer/tsan/tsan_interface_atomic.cc:814
(libtsan.so.0+0x00000005d3e3)
#1 gomp_iter_guided_next
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/iter.c:327
(libgomp.so.1+0x00000000c1d4)
#2 gomp_loop_guided_next
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:328
(libgomp.so.1+0x00000000df00)
#3 MAIN__._omp_fn.0 /data/vjoost/gnu/bugs/test.f90:4 (a.out+0x000000400ad5)
#4 gomp_thread_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/team.c:118
(libgomp.so.1+0x0000000177a8)
Location is heap block of size 2080 at 0x7d740001ea00 allocated by main
thread:
#0 malloc
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libsanitizer/tsan/tsan_interceptors.cc:491
(libtsan.so.0+0x0000000250a3)
#1 gomp_malloc
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/alloc.c:37
(libgomp.so.1+0x00000000abba)
#2 gomp_new_team
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/team.c:149
(libgomp.so.1+0x00000001780a)
#3 gomp_parallel_loop_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:448
(libgomp.so.1+0x00000000cdfc)
#4 GOMP_parallel_loop_guided
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:519
(libgomp.so.1+0x00000000e6eb)
#5 MAIN__ /data/vjoost/gnu/bugs/test.f90:4 (a.out+0x000000400a49)
#6 main /data/vjoost/gnu/bugs/test.f90:8 (a.out+0x000000400a96)
Thread T2 (tid=5743, running) created by main thread at:
#0 pthread_create
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libsanitizer/tsan/tsan_interceptors.cc:895
(libtsan.so.0+0x000000026c94)
#1 gomp_team_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/team.c:796
(libgomp.so.1+0x000000017fee)
#2 gomp_parallel_loop_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:450
(libgomp.so.1+0x00000000ce95)
#3 GOMP_parallel_loop_guided
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:519
(libgomp.so.1+0x00000000e6eb)
#4 MAIN__ /data/vjoost/gnu/bugs/test.f90:4 (a.out+0x000000400a49)
#5 main /data/vjoost/gnu/bugs/test.f90:8 (a.out+0x000000400a96)
Thread T3 (tid=5744, running) created by main thread at:
#0 pthread_create
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libsanitizer/tsan/tsan_interceptors.cc:895
(libtsan.so.0+0x000000026c94)
#1 gomp_team_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/team.c:796
(libgomp.so.1+0x000000017fee)
#2 gomp_parallel_loop_start
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:450
(libgomp.so.1+0x00000000ce95)
#3 GOMP_parallel_loop_guided
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/loop.c:519
(libgomp.so.1+0x00000000e6eb)
#4 MAIN__ /data/vjoost/gnu/bugs/test.f90:4 (a.out+0x000000400a49)
#5 main /data/vjoost/gnu/bugs/test.f90:8 (a.out+0x000000400a96)
SUMMARY: ThreadSanitizer: data race
/data/vjoost/toolchain-tsan/build/gcc-5.1.0/libgomp/iter.c:304
gomp_iter_guided_next
==================
More information about the Gcc-bugs
mailing list