Project

General

Profile

Bug #22219

Task #22198: Address various issues in protodune-sp reconstruction

Acess invalid element of array in Calorimetry reconstruction

Added by Tingjun Yang 9 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Start date:
03/26/2019
Due date:
% Done:

0%

Estimated time:
Duration:

Description

==22281== Invalid read of size 8
==22281==    at 0x3E9F27AD: calo::Calorimetry::produce(art::Event&) (Calorimetry_module.cc:471)
==22281==    by 0x66C0BE0: art::EDProducer::produceWithFrame(art::Event&, art::ProcessingFrame const&) (EDProducer.cc:91)
==22281==    by 0x6797845: art::detail::Producer::doEvent(art::EventPrincipal&, art::ModuleContext const&, std::atomic<unsigned long>&, std::atomic<unsigned long>&, std::atomic<unsigned long>&) (Producer.cc:125)
==22281==    by 0x275B7D37: art::WorkerT<art::EDProducer>::implDoProcess(art::EventPrincipal&, art::ModuleContext const&) (WorkerT.h:198)
==22281==    by 0x8F9FC26: art::Worker::runWorker(art::EventPrincipal&, art::ModuleContext const&) (Worker.cc:586)
==22281==    by 0x8F9F96B: art::(anonymous namespace)::RunWorkerFunctor::operator()() const (Worker.cc:564)
==22281==    by 0x8FA30CC: void hep::concurrency::SerialTaskQueueChain::runFunc<art::(anonymous namespace)::RunWorkerFunctor>(art::(anonymous namespace)::RunWorkerFunctor const&) (SerialTaskQueueChain.h:83)
==22281==    by 0x8FA2E8F: void hep::concurrency::SerialTaskQueueChain::push<art::(anonymous namespace)::RunWorkerFunctor>(art::(anonymous namespace)::RunWorkerFunctor const&)::{lambda()#1}::operator()() (SerialTaskQueueChain.h:54)
==22281==    by 0x8FA4362: hep::concurrency::QueuedTask<void hep::concurrency::SerialTaskQueueChain::push<art::(anonymous namespace)::RunWorkerFunctor>(art::(anonymous namespace)::RunWorkerFunctor const&)::{lambda()#1}>::execute() (SerialTaskQueue.h:87)
==22281==    by 0x9950892: tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task&, tbb::task*) (custom_scheduler.h:509)
==22281==    by 0x993B70A: tbb::task::spawn_and_wait_for_all(tbb::task_list&) (task.cpp:245)
==22281==    by 0x5A14400: void art::EventProcessor::process<(art::Level)4>() (EventProcessor.cc:530)
==22281==  Address 0x551afaf8 is 0 bytes after a block of size 8 alloc'd
==22281==    at 0x4C2A243: operator new(unsigned long) (vg_replace_malloc.c:334)
==22281==    by 0x72495DE: allocate (new_allocator.h:111)
==22281==    by 0x72495DE: allocate (alloc_traits.h:436)
==22281==    by 0x72495DE: _M_allocate (stl_vector.h:172)
==22281==    by 0x72495DE: void std::vector<double, std::allocator<double> >::_M_realloc_insert<double>(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, double&&) (vector.tcc:406)
==22281==    by 0xD6EE68B: double& std::vector<double, std::allocator<double> >::emplace_back<double>(double&&) (vector.tcc:105)
==22281==    by 0xD6EB8B1: std::vector<double, std::allocator<double> >::push_back(double&&) (stl_vector.h:954)
==22281==    by 0x3E9F1A0F: calo::Calorimetry::produce(art::Event&) (Calorimetry_module.cc:375)
==22281==    by 0x66C0BE0: art::EDProducer::produceWithFrame(art::Event&, art::ProcessingFrame const&) (EDProducer.cc:91)
==22281==    by 0x6797845: art::detail::Producer::doEvent(art::EventPrincipal&, art::ModuleContext const&, std::atomic<unsigned long>&, std::atomic<unsigned long>&, std::atomic<unsigned long>&) (Producer.cc:125)
==22281==    by 0x275B7D37: art::WorkerT<art::EDProducer>::implDoProcess(art::EventPrincipal&, art::ModuleContext const&) (WorkerT.h:198)
==22281==    by 0x8F9FC26: art::Worker::runWorker(art::EventPrincipal&, art::ModuleContext const&) (Worker.cc:586)
==22281==    by 0x8F9F96B: art::(anonymous namespace)::RunWorkerFunctor::operator()() const (Worker.cc:564)
==22281==    by 0x8FA30CC: void hep::concurrency::SerialTaskQueueChain::runFunc<art::(anonymous namespace)::RunWorkerFunctor>(art::(anonymous namespace)::RunWorkerFunctor const&) (SerialTaskQueueChain.h:83)
==22281==    by 0x8FA2E8F: void hep::concurrency::SerialTaskQueueChain::push<art::(anonymous namespace)::RunWorkerFunctor>(art::(anonymous namespace)::RunWorkerFunctor const&)::{lambda()#1}::operator()() (SerialTaskQueueChain.h:54)
==22281== 

History

#1 Updated by Tingjun Yang 9 months ago

  • Parent task set to #22198

#2 Updated by Tingjun Yang 9 months ago

  • Status changed from Assigned to Resolved

This was caused by an issue that there is only one hit associated with a track in one plane. This only happens with pmtrack (not pandora). I added a protection to require at least two hits per view in calorimetry module.

#3 Updated by Tingjun Yang 4 months ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF