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