SubDomainCCLocalAssembler: constructor yields undefined state
Apparently, constructing a SubDomainCCLocalAssembler
in the context of the new staggered implementation leaves the object in an undefined state. Running a modified test_ff_navierstokes_angeli_new
from !2573 (closed) with address sanitizer gives
bernd@majestix:/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli$ ASAN_OPTIONS=new_delete_type_mismatch=0 ./test_ff_navierstokes_angeli_new
No parameter file given. Defaulting to 'params.input' for input file.
Reading parameters from file params.input.
Writing output for problem "test_angeli". Took 0.082 seconds.
Instantiated assembler for an instationary problem.
AddressSanitizer:DEADLYSIGNAL
=================================================================
==1102263==ERROR: AddressSanitizer: SEGV on unknown address 0x63133294e188 (pc 0x5639fb7bc733 bp 0x7ffeccc61050 sp 0x7ffeccc61040 T0)
==1102263==The signal is caused by a READ memory access.
#0 0x5639fb7bc733 in __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >::__normal_iterator(unsigned int const* const&) (/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli/test_ff_navierstokes_angeli_new+0xdd733)
#1 0x5639fb78dfdd in std::vector<unsigned int, std::allocator<unsigned int> >::end() const (/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli/test_ff_navierstokes_angeli_new+0xaefdd)
#2 0x5639fb763513 in Dumux::scvfs(Dumux::CCTpfaFVElementGeometry<Dumux::CCTpfaFVGridGeometry<Dune::GridView<Dune::DefaultLeafGridViewTraits<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2> > const> >, true, Dumux::CCTpfaDefaultGridGeometryTraits<Dune::GridView<Dune::DefaultLeafGridViewTraits<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2> > const> >, Dumux::DefaultMapperTraits<Dune::GridView<Dune::DefaultLeafGridViewTraits<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2> > const> >, Dune::MultipleCodimMultipleGeomTypeMapper<Dune::GridView<Dune::DefaultLeafGridViewTraits<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2> > const> > >, Dune::MultipleCodimMultipleGeomTypeMapper<Dune::GridView<Dune::DefaultLeafGridViewTraits<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2> > const> > > > > >, true> const&) (/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli/test_ff_navierstokes_angeli_new+0x84513)
#3 0x5639fb7246bf in main /temp/bernd/DUNE28/dumux/test/freeflow/navierstokes/angeli/main_new.cc:209
#4 0x7fc060ca4cb1 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28cb1)
#5 0x5639fb70f35d in _start (/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli/test_ff_navierstokes_angeli_new+0x3035d)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/temp/bernd/DUNE28/dumux/build-debug/test/freeflow/navierstokes/angeli/test_ff_navierstokes_angeli_new+0xdd733) in __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >::__normal_iterator(unsigned int const* const&)
==1102263==ABORTING
Calling localAssembler.bindLocalViews()
explicitly fixes the issue but should not have to be done user-side.