Data race in MSWriter
Using the test measurement set tDDECal.ms, then running:
DP3 msin=tDDECal.MS/ checkparset=1 msout=StationAdded.MS "steps=[stationadder]" "stationadder.stations={AUTO:[RS106HBA,RS208HBA]}" stationadder.autocorr=true stationadder.sumauto=false msout.overwrite=true
valgrind --tool=helgrind DP3 msout.overwrite=true checkparset=1 msin=StationAdded.MS msout=Test.MS steps=[filter,ddecal] filter.baseline=\!AUTO "ddecal.mode=scalar" ddecal.sourcedb=tDDECal.MS/sky ddecal.solint=2 ddecal.nchan=0
This results in (I think correct) reports of race conditions. This is not specific to this run but appears in various DP3 runs; in fact the first DP3 run shows the same thing.
The output of helgrind:
==37166== Possible data race during write of size 8 at 0xF61ACE8 by thread #17
==37166== Locks held: none
==37166== at 0x4BDA4CC: _M_release (shared_ptr_base.h:343)
==37166== by 0x4BDA4CC: _M_release (shared_ptr_base.h:317)
==37166== by 0x4BDA4CC: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) [clone .isra.0] (shared_ptr_base.h:1090)
==37166== by 0x4BE7F19: operator= (shared_ptr_base.h:1523)
==37166== by 0x4BE7F19: operator= (shared_ptr.h:414)
==37166== by 0x4BE7F19: reference (Array.tcc:291)
==37166== by 0x4BE7F19: SetRowNumbers (DPBuffer.h:247)
==37166== by 0x4BE7F19: dp3::steps::MSWriter::ProcessBuffer(dp3::base::DPBuffer&) (MSWriter.cc:173)
==37166== by 0x4BE8964: dp3::steps::MSWriter::WriteQueueProcess() (MSWriter.cc:789)
==37166== by 0x5400432: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32)
==37166== by 0x484B7D6: mythread_wrapper (hg_intercepts.c:406)
==37166== by 0x56283EB: start_thread (pthread_create.c:444)
==37166== by 0x56A896F: clone (clone.S:100)
==37166==
==37166== This conflicts with a previous read of size 4 by thread #1
==37166== Locks held: none
==37166== at 0x4C015AB: _M_release (shared_ptr_base.h:337)
==37166== by 0x4C015AB: ~__shared_count (shared_ptr_base.h:1071)
==37166== by 0x4C015AB: ~__shared_ptr (shared_ptr_base.h:1524)
==37166== by 0x4C015AB: ~shared_ptr (shared_ptr.h:175)
==37166== by 0x4C015AB: ~Array (Array.tcc:187)
==37166== by 0x4C015AB: ~Vector (Vector.h:81)
==37166== by 0x4C015AB: ~DPBuffer (DPBuffer.h:92)
==37166== by 0x4C015AB: operator() (unique_ptr.h:99)
==37166== by 0x4C015AB: reset (unique_ptr.h:211)
==37166== by 0x4C015AB: operator= (unique_ptr.h:191)
==37166== by 0x4C015AB: operator= (unique_ptr.h:243)
==37166== by 0x4C015AB: operator= (unique_ptr.h:414)
==37166== by 0x4C015AB: dp3::steps::MultiResultStep::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MultiResultStep.cc:28)
==37166== by 0x4C194E0: dp3::steps::OnePredict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (OnePredict.cc:665)
==37166== by 0x4C2A9E1: dp3::steps::Predict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Predict.cc:110)
==37166== by 0x49F485E: operator() (DDECal.cc:759)
==37166== by 0x49F485E: __invoke_impl<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:61)
==37166== by 0x49F485E: __invoke_r<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:111)
==37166== by 0x49F485E: std::_Function_handler<void (unsigned long, unsigned long), dp3::steps::DDECal::doPrepare()::{lambda(unsigned long, unsigned long)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&, unsigned long&&) (std_function.h:290)
==37166== by 0x49FFDDA: operator() (std_function.h:591)
==37166== by 0x49FFDDA: Call (recursivefor.h:120)
==37166== by 0x49FFDDA: FinishSpecificPriority (recursivefor.h:182)
==37166== by 0x49FFDDA: Run<dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)> > (recursivefor.h:87)
==37166== by 0x49FFDDA: dp3::steps::DDECal::doPrepare() (DDECal.cc:757)
==37166== by 0x4A010AB: dp3::steps::DDECal::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (DDECal.cc:707)
==37166== by 0x4B5AB24: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:217)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== Address 0xf61ace8 is 8 bytes inside a block of size 24 alloc'd
==37166== at 0x4842F6F: operator new(unsigned long) (vg_replace_malloc.c:422)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:917)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:928)
==37166== by 0x49A184A: __shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr_base.h:1469)
==37166== by 0x49A184A: shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr.h:214)
==37166== by 0x49A184A: casacore::Array<unsigned long long>::Array(casacore::IPosition const&) (Array.tcc:58)
==37166== by 0x49A308D: casacore::Array<unsigned long long>::resize(casacore::IPosition const&, bool) (Array.tcc:722)
==37166== by 0x49A323C: casacore::Vector<unsigned long long>::resize(casacore::IPosition const&, bool) (Vector.tcc:211)
==37166== by 0x4B5ACE1: resize (Vector.h:165)
==37166== by 0x4B5ACE1: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:186)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== by 0x4AAD836: dp3::base::Execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) (DP3.cc:320)
==37166== by 0x10A58C: main (Main.cc:74)
==37166== Block was alloc'd by thread #1
==37166==
...40....50==37166== ----------------------------------------------------------------
==37166==
==37166== Possible data race during write of size 4 at 0x172C9BF8 by thread #1
==37166== Locks held: none
==37166== at 0x4C02497: _M_release (shared_ptr_base.h:343)
==37166== by 0x4C02497: _M_release (shared_ptr_base.h:317)
==37166== by 0x4C02497: ~__shared_count (shared_ptr_base.h:1071)
==37166== by 0x4C02497: ~__shared_ptr (shared_ptr_base.h:1524)
==37166== by 0x4C02497: ~shared_ptr (shared_ptr.h:175)
==37166== by 0x4C02497: ~Array (Array.tcc:187)
==37166== by 0x4C02497: ~Vector (Vector.h:81)
==37166== by 0x4C02497: ~DPBuffer (DPBuffer.h:92)
==37166== by 0x4C02497: operator() (unique_ptr.h:99)
==37166== by 0x4C02497: reset (unique_ptr.h:211)
==37166== by 0x4C02497: operator= (unique_ptr.h:191)
==37166== by 0x4C02497: operator= (unique_ptr.h:243)
==37166== by 0x4C02497: operator= (unique_ptr.h:414)
==37166== by 0x4C02497: dp3::steps::MultiResultStep::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MultiResultStep.cc:28)
==37166== by 0x4C194E0: dp3::steps::OnePredict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (OnePredict.cc:665)
==37166== by 0x4C2A9E1: dp3::steps::Predict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Predict.cc:110)
==37166== by 0x49F485E: operator() (DDECal.cc:759)
==37166== by 0x49F485E: __invoke_impl<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:61)
==37166== by 0x49F485E: __invoke_r<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:111)
==37166== by 0x49F485E: std::_Function_handler<void (unsigned long, unsigned long), dp3::steps::DDECal::doPrepare()::{lambda(unsigned long, unsigned long)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&, unsigned long&&) (std_function.h:290)
==37166== by 0x49FFDDA: operator() (std_function.h:591)
==37166== by 0x49FFDDA: Call (recursivefor.h:120)
==37166== by 0x49FFDDA: FinishSpecificPriority (recursivefor.h:182)
==37166== by 0x49FFDDA: Run<dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)> > (recursivefor.h:87)
==37166== by 0x49FFDDA: dp3::steps::DDECal::doPrepare() (DDECal.cc:757)
==37166== by 0x4A010AB: dp3::steps::DDECal::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (DDECal.cc:707)
==37166== by 0x4B5AB24: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:217)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== by 0x4AAD836: dp3::base::Execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) (DP3.cc:320)
==37166== by 0x10A58C: main (Main.cc:74)
==37166==
==37166== This conflicts with a previous read of size 4 by thread #17
==37166== Locks held: none
==37166== at 0x4BDA45B: _M_release (shared_ptr_base.h:337)
==37166== by 0x4BDA45B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) [clone .isra.0] (shared_ptr_base.h:1090)
==37166== by 0x4BE7F19: operator= (shared_ptr_base.h:1523)
==37166== by 0x4BE7F19: operator= (shared_ptr.h:414)
==37166== by 0x4BE7F19: reference (Array.tcc:291)
==37166== by 0x4BE7F19: SetRowNumbers (DPBuffer.h:247)
==37166== by 0x4BE7F19: dp3::steps::MSWriter::ProcessBuffer(dp3::base::DPBuffer&) (MSWriter.cc:173)
==37166== by 0x4BE8964: dp3::steps::MSWriter::WriteQueueProcess() (MSWriter.cc:789)
==37166== by 0x5400432: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32)
==37166== by 0x484B7D6: mythread_wrapper (hg_intercepts.c:406)
==37166== by 0x56283EB: start_thread (pthread_create.c:444)
==37166== by 0x56A896F: clone (clone.S:100)
==37166== Address 0x172c9bf8 is 8 bytes inside a block of size 24 alloc'd
==37166== at 0x4842F6F: operator new(unsigned long) (vg_replace_malloc.c:422)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:917)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:928)
==37166== by 0x49A184A: __shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr_base.h:1469)
==37166== by 0x49A184A: shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr.h:214)
==37166== by 0x49A184A: casacore::Array<unsigned long long>::Array(casacore::IPosition const&) (Array.tcc:58)
==37166== by 0x49A308D: casacore::Array<unsigned long long>::resize(casacore::IPosition const&, bool) (Array.tcc:722)
==37166== by 0x49A323C: casacore::Vector<unsigned long long>::resize(casacore::IPosition const&, bool) (Vector.tcc:211)
==37166== by 0x4B5ACE1: resize (Vector.h:165)
==37166== by 0x4B5ACE1: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:186)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== by 0x4AAD836: dp3::base::Execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) (DP3.cc:320)
==37166== by 0x10A58C: main (Main.cc:74)
==37166== Block was alloc'd by thread #1
==37166==
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
** On entry to CGELS parameter number 6 had an illegal value
....60...==37166== ----------------------------------------------------------------
==37166==
==37166== Possible data race during write of size 8 at 0x16FCDC88 by thread #1
==37166== Locks held: none
==37166== at 0x4C02497: _M_release (shared_ptr_base.h:343)
==37166== by 0x4C02497: _M_release (shared_ptr_base.h:317)
==37166== by 0x4C02497: ~__shared_count (shared_ptr_base.h:1071)
==37166== by 0x4C02497: ~__shared_ptr (shared_ptr_base.h:1524)
==37166== by 0x4C02497: ~shared_ptr (shared_ptr.h:175)
==37166== by 0x4C02497: ~Array (Array.tcc:187)
==37166== by 0x4C02497: ~Vector (Vector.h:81)
==37166== by 0x4C02497: ~DPBuffer (DPBuffer.h:92)
==37166== by 0x4C02497: operator() (unique_ptr.h:99)
==37166== by 0x4C02497: reset (unique_ptr.h:211)
==37166== by 0x4C02497: operator= (unique_ptr.h:191)
==37166== by 0x4C02497: operator= (unique_ptr.h:243)
==37166== by 0x4C02497: operator= (unique_ptr.h:414)
==37166== by 0x4C02497: dp3::steps::MultiResultStep::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MultiResultStep.cc:28)
==37166== by 0x4C194E0: dp3::steps::OnePredict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (OnePredict.cc:665)
==37166== by 0x4C2A9E1: dp3::steps::Predict::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Predict.cc:110)
==37166== by 0x49F485E: operator() (DDECal.cc:759)
==37166== by 0x49F485E: __invoke_impl<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:61)
==37166== by 0x49F485E: __invoke_r<void, dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)>&, long unsigned int, long unsigned int> (invoke.h:111)
==37166== by 0x49F485E: std::_Function_handler<void (unsigned long, unsigned long), dp3::steps::DDECal::doPrepare()::{lambda(unsigned long, unsigned long)#1}>::_M_invoke(std::_Any_data const&, unsigned long&&, unsigned long&&) (std_function.h:290)
==37166== by 0x49FFDDA: operator() (std_function.h:591)
==37166== by 0x49FFDDA: Call (recursivefor.h:120)
==37166== by 0x49FFDDA: FinishSpecificPriority (recursivefor.h:182)
==37166== by 0x49FFDDA: Run<dp3::steps::DDECal::doPrepare()::<lambda(size_t, size_t)> > (recursivefor.h:87)
==37166== by 0x49FFDDA: dp3::steps::DDECal::doPrepare() (DDECal.cc:757)
==37166== by 0x4A010AB: dp3::steps::DDECal::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (DDECal.cc:707)
==37166== by 0x4B5AB24: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:217)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== by 0x4AAD836: dp3::base::Execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) (DP3.cc:320)
==37166== by 0x10A58C: main (Main.cc:74)
==37166==
==37166== This conflicts with a previous read of size 4 by thread #17
==37166== Locks held: none
==37166== at 0x4BDA45B: _M_release (shared_ptr_base.h:337)
==37166== by 0x4BDA45B: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) [clone .isra.0] (shared_ptr_base.h:1090)
==37166== by 0x4BE7F19: operator= (shared_ptr_base.h:1523)
==37166== by 0x4BE7F19: operator= (shared_ptr.h:414)
==37166== by 0x4BE7F19: reference (Array.tcc:291)
==37166== by 0x4BE7F19: SetRowNumbers (DPBuffer.h:247)
==37166== by 0x4BE7F19: dp3::steps::MSWriter::ProcessBuffer(dp3::base::DPBuffer&) (MSWriter.cc:173)
==37166== by 0x4BE8964: dp3::steps::MSWriter::WriteQueueProcess() (MSWriter.cc:789)
==37166== by 0x5400432: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32)
==37166== by 0x484B7D6: mythread_wrapper (hg_intercepts.c:406)
==37166== by 0x56283EB: start_thread (pthread_create.c:444)
==37166== by 0x56A896F: clone (clone.S:100)
==37166== Address 0x16fcdc88 is 8 bytes inside a block of size 24 alloc'd
==37166== at 0x4842F6F: operator new(unsigned long) (vg_replace_malloc.c:422)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:917)
==37166== by 0x49A184A: __shared_count<casacore::arrays_internal::Storage<long long unsigned int>*> (shared_ptr_base.h:928)
==37166== by 0x49A184A: __shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr_base.h:1469)
==37166== by 0x49A184A: shared_ptr<casacore::arrays_internal::Storage<long long unsigned int> > (shared_ptr.h:214)
==37166== by 0x49A184A: casacore::Array<unsigned long long>::Array(casacore::IPosition const&) (Array.tcc:58)
==37166== by 0x49A308D: casacore::Array<unsigned long long>::resize(casacore::IPosition const&, bool) (Array.tcc:722)
==37166== by 0x49A323C: casacore::Vector<unsigned long long>::resize(casacore::IPosition const&, bool) (Vector.tcc:211)
==37166== by 0x4B5ACE1: resize (Vector.h:165)
==37166== by 0x4B5ACE1: dp3::steps::Filter::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (Filter.cc:186)
==37166== by 0x4BC6388: dp3::steps::MSReader::process(std::unique_ptr<dp3::base::DPBuffer, std::default_delete<dp3::base::DPBuffer> >) (MSReader.cc:409)
==37166== by 0x4AAD836: dp3::base::Execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) (DP3.cc:320)
==37166== by 0x10A58C: main (Main.cc:74)
==37166== Block was alloc'd by thread #1
==37166==