I'm getting the helgrind error below. Is this a false positive?

==27566== ---Thread-Announcement------------------------------------------
==27566==
==27566== Thread #153 was created
==27566==    at 0xD9433DE: clone (clone.S:74)
==27566==    by 0xCB7B149: create_thread (createthread.c:102)
==27566==    by 0xCB7CE83: pthread_create@@GLIBC_2.2.5
(pthread_create.c:679)
==27566==    by 0x4C34BB7: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0x87E2B3D: void
libMesh::Threads::parallel_reduce<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>,
libMesh::GenericProjector<libMesh::OldSolutionValue<doubl
e, &(void libMesh::FEMContext::point_value<double>(unsigned int,
libMesh::Point const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradie
nt<libMesh::VectorValue<double> >(unsigned int, libMesh::Point const&,
double&, double) const)>, double, libMesh::VectorSetAction<double>
>::SortAndCopy>(libMesh::StoredRange<libMesh::MeshBase::const_element_it
erator, libMesh::Elem const*> const&,
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>, l
ibMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double, libMesh::V
ectorSetAction<double> >::SortAndCopy&) (threads_pthread.h:444)
==27566==    by 0x880032A:
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>, libMesh::Old
SolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAct
ion<double>
>::project(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) (generic_projector.h:955)
==27566==    by 0x87BE8AB:
libMesh::System::project_vector(libMesh::NumericVector<double> const&,
libMesh::NumericVector<double>&, int) const (system_projection.C:381)
==27566==    by 0x87BF561:
libMesh::System::project_vector(libMesh::NumericVector<double>&, int) const
(system_projection.C:257)
==27566==    by 0x87991DF: libMesh::System::restrict_vectors()
(system.C:334)
==27566==    by 0x8753C77: libMesh::EquationSystems::reinit_solutions()
(equation_systems.C:210)
==27566==    by 0x87540A0: libMesh::EquationSystems::reinit()
(equation_systems.C:123)
==27566==    by 0x6F38FFD:
FEProblemBase::reinitBecauseOfGhostingOrNewGeomObjects()
(FEProblemBase.C:3284)
==27566==
==27566== ---Thread-Announcement------------------------------------------
==27566==
==27566== Thread #152 was created
==27566==    at 0xD9433DE: clone (clone.S:74)
==27566==    by 0xCB7B149: create_thread (createthread.c:102)
==27566==    by 0xCB7CE83: pthread_create@@GLIBC_2.2.5
(pthread_create.c:679)
==27566==    by 0x4C34BB7: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0x87E2B21: void
libMesh::Threads::parallel_reduce<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>,
libMesh::GenericProjector<libMesh::OldSolutionValue<doubl
e, &(void libMesh::FEMContext::point_value<double>(unsigned int,
libMesh::Point const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradie
nt<libMesh::VectorValue<double> >(unsigned int, libMesh::Point const&,
double&, double) const)>, double, libMesh::VectorSetAction<double>
>::SortAndCopy>(libMesh::StoredRange<libMesh::MeshBase::const_element_it
erator, libMesh::Elem const*> const&,
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>, l
ibMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double, libMesh::V
ectorSetAction<double> >::SortAndCopy&) (threads_pthread.h:444)
==27566==    by 0x880032A:
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>, libMesh::Old
SolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAct
ion<double>
>::project(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) (generic_projector.h:955)
==27566==    by 0x87BE8AB:
libMesh::System::project_vector(libMesh::NumericVector<double> const&,
libMesh::NumericVector<double>&, int) const (system_projection.C:381)
==27566==    by 0x87BF561:
libMesh::System::project_vector(libMesh::NumericVector<double>&, int) const
(system_projection.C:257)
==27566==    by 0x87991DF: libMesh::System::restrict_vectors()
(system.C:334)
==27566==    by 0x8753C77: libMesh::EquationSystems::reinit_solutions()
(equation_systems.C:210)
==27566==    by 0x87540A0: libMesh::EquationSystems::reinit()
(equation_systems.C:123)
==27566==    by 0x6F38FFD:
FEProblemBase::reinitBecauseOfGhostingOrNewGeomObjects()
(FEProblemBase.C:3284)
==27566==
==27566== ---Thread-Announcement------------------------------------------
==27566==
==27566== Thread #1 is the program's root thread
==27566==
==27566== ----------------------------------------------------------------
==27566==
==27566==  Lock at 0x12D10458 was first observed
==27566==    at 0x4C321BC: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0x85B4E8B: __gthread_mutex_lock (gthr-default.h:748)
==27566==    by 0x85B4E8B: lock (std_mutex.h:103)
==27566==    by 0x85B4E8B: lock_guard (std_mutex.h:162)
==27566==    by 0x85B4E8B: libMesh::PetscVector<double>::_get_array(bool)
const (petsc_vector.C:1374)
==27566==    by 0x5934483:
libMesh::PetscVector<double>::get(std::vector<unsigned int,
std::allocator<unsigned int> > const&, double*) const (petsc_vector.h:1090)
==27566==    by 0x87C80BB: get (numeric_vector.h:828)
==27566==    by 0x87C80BB: libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>::eval_old_dofs(libMesh::Elem const&,
unsigned int, unsigned int, std::vector<unsigned int,
std::allocator<unsigned int> >&, std::vector<double, std::allocator<double>
>&) (generic_projector.h:715)
==27566==    by 0x87E0E4A:
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double>
>::SortAndCopy::operator()(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) (generic_projector.h:1441)
==27566==    by 0x87E34B2: void*
libMesh::Threads::run_body<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>,
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double> >::SortAndCopy>(void*)
(threads_pthread.h:236)
==27566==    by 0x4C34DB6: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0xCB7C6B9: start_thread (pthread_create.c:333)
==27566==    by 0xD94341C: clone (clone.S:109)
==27566==  Address 0x12d10458 is 72 bytes inside a block of size 176 alloc'd
==27566==    at 0x4C2F50F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0x85ADAF1: make_unique<libMesh::PetscVector<double>, const
libMesh::Parallel::Communicator&, libMesh::ParallelType> (unique_ptr.h:825)
==27566==    by 0x85ADAF1:
libMesh::NumericVector<double>::build(libMesh::Parallel::Communicator
const&, libMesh::SolverPackage) (numeric_vector.C:62)
==27566==    by 0x87BE4EB:
libMesh::System::project_vector(libMesh::NumericVector<double> const&,
libMesh::NumericVector<double>&, int) const (system_projection.C:342)
==27566==    by 0x87BF561:
libMesh::System::project_vector(libMesh::NumericVector<double>&, int) const
(system_projection.C:257)
==27566==    by 0x87991DF: libMesh::System::restrict_vectors()
(system.C:334)
==27566==    by 0x8753C77: libMesh::EquationSystems::reinit_solutions()
(equation_systems.C:210)
==27566==    by 0x87540A0: libMesh::EquationSystems::reinit()
(equation_systems.C:123)
==27566==    by 0x6F38FFD:
FEProblemBase::reinitBecauseOfGhostingOrNewGeomObjects()
(FEProblemBase.C:3284)
==27566==    by 0x6F3A292: FEProblemBase::initialSetup()
(FEProblemBase.C:770)
==27566==    by 0x71FC4D1: MooseApp::executeExecutioner() (MooseApp.C:849)
==27566==    by 0x59DF420: OutputApp::executeExecutioner() (OutputApp.C:144)
==27566==    by 0x71FC56C: MooseApp::run() (MooseApp.C:961)
==27566==  Block was alloc'd by thread #1
==27566==
==27566== Possible data race during read of size 1 at 0x12D10430 by thread
#153
==27566== Locks held: none
==27566==    at 0x85B4DF7: load (atomic_base.h:396)
==27566==    by 0x85B4DF7: operator bool (atomic:86)
==27566==    by 0x85B4DF7: libMesh::PetscVector<double>::_get_array(bool)
const (petsc_vector.C:1363)
==27566==    by 0x5934483:
libMesh::PetscVector<double>::get(std::vector<unsigned int,
std::allocator<unsigned int> > const&, double*) const (petsc_vector.h:1090)
==27566==    by 0x87C80BB: get (numeric_vector.h:828)
==27566==    by 0x87C80BB: libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>::eval_old_dofs(libMesh::Elem const&,
unsigned int, unsigned int, std::vector<unsigned int,
std::allocator<unsigned int> >&, std::vector<double, std::allocator<double>
>&) (generic_projector.h:715)
==27566==    by 0x87E0E4A:
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double>
>::SortAndCopy::operator()(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) (generic_projector.h:1441)
==27566==    by 0x87E34B2: void*
libMesh::Threads::run_body<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>,
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double> >::SortAndCopy>(void*)
(threads_pthread.h:236)
==27566==    by 0x4C34DB6: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0xCB7C6B9: start_thread (pthread_create.c:333)
==27566==    by 0xD94341C: clone (clone.S:109)
==27566==
==27566== This conflicts with a previous write of size 1 by thread #152
==27566== Locks held: 1, at address 0x12D10458
==27566==    at 0x85B4F39: store (atomic_base.h:374)
==27566==    by 0x85B4F39: store (atomic:103)
==27566==    by 0x85B4F39: libMesh::PetscVector<double>::_get_array(bool)
const (petsc_vector.C:1442)
==27566==    by 0x5934483:
libMesh::PetscVector<double>::get(std::vector<unsigned int,
std::allocator<unsigned int> > const&, double*) const (petsc_vector.h:1090)
==27566==    by 0x87C80BB: get (numeric_vector.h:828)
==27566==    by 0x87C80BB: libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>::eval_old_dofs(libMesh::Elem const&,
unsigned int, unsigned int, std::vector<unsigned int,
std::allocator<unsigned int> >&, std::vector<double, std::allocator<double>
>&) (generic_projector.h:715)
==27566==    by 0x87E0E4A:
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double>
>::SortAndCopy::operator()(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) (generic_projector.h:1441)
==27566==    by 0x87E34B2: void*
libMesh::Threads::run_body<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>,
libMesh::GenericProjector<libMesh::OldSolutionValue<double, &(void
libMesh::FEMContext::point_value<double>(unsigned int, libMesh::Point
const&, double&, double) const)>,
libMesh::OldSolutionValue<libMesh::VectorValue<double>, &(void
libMesh::FEMContext::point_gradient<libMesh::VectorValue<double> >(unsigned
int, libMesh::Point const&, double&, double) const)>, double,
libMesh::VectorSetAction<double> >::SortAndCopy>(void*)
(threads_pthread.h:236)
==27566==    by 0x4C34DB6: ??? (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0xCB7C6B9: start_thread (pthread_create.c:333)
==27566==    by 0xD94341C: clone (clone.S:109)
==27566==  Address 0x12d10430 is 32 bytes inside a block of size 176 alloc'd
==27566==    at 0x4C2F50F: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==27566==    by 0x85ADAF1: make_unique<libMesh::PetscVector<double>, const
libMesh::Parallel::Communicator&, libMesh::ParallelType> (unique_ptr.h:825)
==27566==    by 0x85ADAF1:
libMesh::NumericVector<double>::build(libMesh::Parallel::Communicator
const&, libMesh::SolverPackage) (numeric_vector.C:62)
==27566==    by 0x87BE4EB:
libMesh::System::project_vector(libMesh::NumericVector<double> const&,
libMesh::NumericVector<double>&, int) const (system_projection.C:342)
==27566==    by 0x87BF561:
libMesh::System::project_vector(libMesh::NumericVector<double>&, int) const
(system_projection.C:257)
==27566==    by 0x87991DF: libMesh::System::restrict_vectors()
(system.C:334)
==27566==    by 0x8753C77: libMesh::EquationSystems::reinit_solutions()
(equation_systems.C:210)
==27566==    by 0x87540A0: libMesh::EquationSystems::reinit()
(equation_systems.C:123)
==27566==    by 0x6F38FFD:
FEProblemBase::reinitBecauseOfGhostingOrNewGeomObjects()
(FEProblemBase.C:3284)
==27566==    by 0x6F3A292: FEProblemBase::initialSetup()
(FEProblemBase.C:770)
==27566==    by 0x71FC4D1: MooseApp::executeExecutioner() (MooseApp.C:849)
==27566==    by 0x59DF420: OutputApp::executeExecutioner() (OutputApp.C:144)
==27566==    by 0x71FC56C: MooseApp::run() (MooseApp.C:961)
==27566==  Block was alloc'd by thread #1

_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to