Project

General

Profile

Bug #12247

segfault on missing wrapper of Assns partner type

Added by Lynn Garren over 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
I/O
Target version:
Start date:
04/11/2016
Due date:
% Done:

100%

Estimated time:
Spent time:
Occurs In:
Scope:
Internal
Experiment:
LArSoft
SSI Package:
art
Duration:

Description

We are getting a segfault when attempting to run dune tests with larsoft built with art v1_18_05.

cd /scratch/garren/larsoft/v06_00_00_rc1/p/build_slf6.x86_64/dunetpc/test/OpDet/optical_reco_dune35t.d
gdb --args lar -c test_optical_reco_dune35t.fcl

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff2b573ec in art::AssnsGroup::resolveProductIfAvailable (this=0x2032fd80, fillOnDemand=false, 
    wanted_wrapper_type=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/AssnsGroup.cc:131
131     /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/AssnsGroup.cc: No such file or directory.
(gdb) bt
#0  0x00007ffff2b573ec in art::AssnsGroup::resolveProductIfAvailable (this=0x2032fd80, fillOnDemand=false, 
    wanted_wrapper_type=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/AssnsGroup.cc:131
#1  0x00007ffff2b69a26 in art::Principal::getResolvedGroup (this=this@entry=0x1f4cc370, bid=..., 
    resolveProd=<optimized out>, fillOnDemand=fillOnDemand@entry=false)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/Principal.cc:427
#2  0x00007ffff2b69bac in art::Principal::getForOutput (this=this@entry=0x1f4cc370, bid=..., 
    resolveProd=<optimized out>)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/Principal.cc:383
#3  0x00007ffff50ca626 in art::RootOutputFile::fillBranches (this=this@entry=0x1e8c7950, 
    bt=bt@entry=@0x7fffffff1970: art::InEvent, principal=..., vpp=0x1e8c7a10)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutputFile.cc:700
#4  0x00007ffff50cab12 in art::RootOutputFile::writeOne (this=0x1e8c7950, e=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutputFile.cc:298
#5  0x00007fffe08eddec in art::RootOutput::write (this=0x4b4ef30, ep=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutput_module.cc:365
#6  0x00007ffff347e4bd in art::OutputModule::doEvent (this=0x4b4ef30, ep=..., cpc=<optimized out>)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Core/OutputModule.cc:207
#7  0x00007ffff3f922a1 in art::Worker::doWork<art::OccurrenceTraits<art::EventPrincipal, (art::BranchActionType)0> > (this=0x4b52a00, ep=..., cpc=cpc@entry=0x7fffffff1f90)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Principal/Worker.h:221
#8  0x00007ffff3f93273 in art::WorkerInPath::runWorker<art::OccurrenceTraits<art::EventPrincipal, (art::BranchActionType)0> > (cpc=0x7fffffff1f90, ep=..., this=0x4af3450)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Core/WorkerInPath.h:80
#9  art::Path::processOneOccurrence<art::OccurrenceTraits<art::EventPrincipal, (art::BranchActionType)0> > (
    this=0x4b51c60, ep=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Core/Path.h:167
#10 0x00007ffff3f9355b in art::EndPathExecutor::processOneOccurrence<art::OccurrenceTraits<art::EventPrincipal, (art::BranchActionType)0> > (this=0x4b4c700, ep=...)
    at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/prof/build/art/v1_18_05/src/art/Framework/Core/EndPathExecutor.h:115

Related issues

Related to LArSoft - Bug #12261: WireGeo has no default constructorClosed2016-04-12

Related to art - Feature #12346: Diagnose missing Assns dictionary at build timeClosed2016-04-18

Related to art - Feature #12347: Check for missing Assns dictionary at run-timeClosed2016-04-18

Associated revisions

Revision c06e2ad6 (diff)
Added by Christopher Green over 3 years ago

Currently-failing test for issue #12247 - segfault on missing wrapper of Assns partner type.

Revision 07dd7a6f (diff)
Added by Christopher Green about 3 years ago

Currently-failing test for issue #12247 - segfault on missing wrapper of Assns partner type.

History

#1 Updated by Lynn Garren over 3 years ago

Attempting to use valgrind:

valgrind --log-file=valgrind.out --leak-check=no --track-origins=yes --num-callers=50 --suppressions=/products/root/v6_04_06/Linux64bit+2.6-2.12-e9-nu-prof/etc/root. lar -c ./test_optical_reco_dune35t.fcl 

#2 Updated by Lynn Garren over 3 years ago

valgrind log file available on woof at /home/garren/valgrind-12247.out

#3 Updated by Christopher Green over 3 years ago

If 'twere me, I'd stop at Principal::getResolvedGroup() (Principal.cc:423) and step from there in a debugger. Something really hinky looks to be going on with the group search.

#4 Updated by Lynn Garren over 3 years ago

  • Related to Bug #12261: WireGeo has no default constructor added

#5 Updated by Gianluca Petrillo over 3 years ago

This may or may not help you -- if not, please ignore.
It is a backtrace in debug mode. It seems to point to the same direction, but a bit deeper.

%MSG-i PhotonLibrary: LArG4:largeant 12-Apr-2016 16:31:32 CDT run: 1 subRun: 0 event: 1
Photon lookup table size : 1000000 voxels, 8 channels
%MSG

Thread 1 "lar" received signal SIGSEGV, Segmentation fault.
0x00007ffff7d22af8 in std::type_info::operator== (this=0x7fffccf82820 <typeinfo for art::Wrapper<art::Assns<recob::OpFlash, recob::OpHit, void> >>, __arg=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/gcc/v4_9_3/Linux64bit+2.6-2.12/include/c++/4.9.3/typeinfo:122
122 /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/gcc/v4_9_3/Linux64bit+2.6-2.12/include/c++/4.9.3/typeinfo: No such file or directory.

(gdb) bt
#0 0x00007ffff7d22af8 in std::type_info::operator== (this=0x7fffccf82820 <typeinfo for art::Wrapper<art::Assns<recob::OpFlash, recob::OpHit, void> >>, __arg=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/gcc/v4_9_3/Linux64bit+2.6-2.12/include/c++/4.9.3/typeinfo:122
#1 0x00007ffff19942e1 in art::TypeID::operator== (this=0x20847468, rhs=...) at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Utilities/TypeID.h:121
#2 0x00007ffff1993f2f in art::AssnsGroup::uniqueProduct (this=0x20847460, wanted_wrapper_type=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/Principal/AssnsGroup.cc:90
#3 0x00007ffff1993f94 in art::AssnsGroup::resolveProductIfAvailable (this=0x20847460, fillOnDemand=false, wanted_wrapper_type=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/Principal/AssnsGroup.cc:131
#4 0x00007ffff19b0d1f in art::Principal::getResolvedGroup (this=0x6683d80, bid=..., resolveProd=true, fillOnDemand=false)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/Principal/Principal.cc:427
#5 0x00007ffff19b081d in art::Principal::getForOutput (this=0x6683d80, bid=..., resolveProd=true)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/Principal/Principal.cc:383
#6 0x00007ffff482a8f9 in art::RootOutputFile::fillBranches (this=0x1ee02c60, bt=@0x7ffffffec09c: art::InEvent, principal=..., vpp=0x1ee02d20)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutputFile.cc:700
#7 0x00007ffff48285b9 in art::RootOutputFile::writeOne (this=0x1ee02c60, e=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutputFile.cc:298
#8 0x00007fffde2dcdc4 in art::RootOutput::write (this=0x4a86670, ep=...)
at /scratch/workspace/nu-release-build/v1_25_00/s31-e9/debug/build/art/v1_18_05/src/art/Framework/IO/Root/RootOutput_module.cc:365

#6 Updated by Christopher Green over 3 years ago

  • Category set to I/O
  • Status changed from New to Feedback
  • Assignee set to Paul Russo
  • Target version set to 2.01.00
  • % Done changed from 0 to 50
  • Experiment LArSoft added
  • Experiment deleted (-)
  • SSI Package art added
  • SSI Package deleted ()

Upon investigation, it appears that the primary problem is that there are several missing dictionaries: notably those for the following art::Assns, and wrappers and sub-components (e.g. pair, vector<pair>) thereof in lardata:

  • art::Assns<recob::Cluster, recob::OpFlash, void>
  • art::Assns<recob::OpHit, recob::OpFlash, void>
  • art::Assns<recob::Track, recob::OpFlash, void>
  • art::Assns<recob::Track, recob::Shower, void>
  • art::Assns<recob::Hit, recob::Track, recob::TrackHitMeta>

We apologize that the first warning of a problem was a segfault: the upcoming 1.19.00 should rectify this deficiency. In the meantime, putting in selections and instantiations for the above-mentioned classes should solve the problem.

Please let us know if adding in the missing dictionaries solves the problem for you.

#7 Updated by Christopher Green over 3 years ago

For posterity: command used to ascertain missing partner dictionary selections:

sort -u lardata/lardata/RecoBase/classes_def.xml | \
grep -e 'Wrapper.*Assns' | \
perl -wane 'BEGIN { @h = (); }
m&.*Wrapper.*Assns\s*<(\S+?),\s*(\S+?)(?:,\s*(\S+?))?\s*>& and
 push @h, [ ${1}, ${2}, ${3} || "void" ];
END { foreach my $f (@h) {
 grep { $_->[0] eq $f->[1] and
  $_->[1] eq $f->[0] and $_->[2] eq $f->[2]; } @h or 
   print "Missing selections for art::Assns<$f->[1], $f->[0], $f->[2]>\n";
 }; }'

#8 Updated by Lynn Garren over 3 years ago

At this time the dune test passes, but production.sh still fails, but in a different place. Investigating.

#9 Updated by Lynn Garren over 3 years ago

There were more missing enums in the dictionaries. Once those were resolved, all tests pass.

#10 Updated by Kyle Knoepfel about 3 years ago

  • Status changed from Feedback to Resolved
  • % Done changed from 50 to 100

Relevant xml files have been appropriately adjusted per Lynn.

#11 Updated by Kyle Knoepfel about 3 years ago

  • Related to Feature #12346: Diagnose missing Assns dictionary at build time added

#12 Updated by Kyle Knoepfel about 3 years ago

  • Related to Feature #12347: Check for missing Assns dictionary at run-time added

#13 Updated by Christopher Green about 3 years ago

  • Subject changed from problem using art v1_18_05 with larsoft to segfault on missing wrapper of Assns partner type

#14 Updated by Kyle Knoepfel about 3 years ago

  • Target version changed from 2.01.00 to 2.00.01

#15 Updated by Kyle Knoepfel about 3 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF