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 ==================