Ghost task data race?
Running the threadsanitizer outputs the following warning:
WARNING: ThreadSanitizer: data race (pid=8306)
Read of size 4 at 0x7f3ce53e9f20 by thread T6:
#0 cache_read_particles_subset swiftsim-master/src/cache.h:319 (swift+0x00000058d1fe)
#1 runner_dopair_subset_density_vec swiftsim-master/src/runner_doiact_vec.c:1854 (swift+0x00000058d1fe)
#2 runner_dopair_subset_branch_density swiftsim-master/src/runner_doiact.h:807 (swift+0x0000004e315e)
#3 runner_dosub_subset_density swiftsim-master/src/runner_doiact.h:3264 (swift+0x0000004f9ca4)
#4 runner_dosub_subset_density swiftsim-master/src/runner_doiact.h:2837 (swift+0x0000004fd6b8)
#5 runner_do_ghost swiftsim-master/src/runner.c:1472 (swift+0x00000055c302)
#6 runner_main swiftsim-master/src/runner.c:3003 (swift+0x000000565ad2)
#7 <null> <null> (libtsan.so.0+0x0000000230d9)
Previous write of size 4 at 0x7f3ce53e9f20 by thread T5:
#0 runner_do_ghost swiftsim-master/src/runner.c:1348 (swift+0x00000055b436)
#1 runner_do_ghost swiftsim-master/src/runner.c:1210 (swift+0x00000055af19)
#2 runner_main swiftsim-master/src/runner.c:3003 (swift+0x000000565ad2)
#3 <null> <null> (libtsan.so.0+0x0000000230d9)
(amongst many...) when running the Sedov blast example. I think we have a case of one
thread reading a value which is being updated by another, in this case the p->h
value
is being updated while the same value is being cached. Probably harmless but worth a quick look.