Project

General

Profile

Bug #22668

Crash when ChannelsStatusService is loaded in Root

Added by David Adams 4 months ago. Updated 4 months ago.

Status:
Feedback
Priority:
Normal
Assignee:
Start date:
05/31/2019
Due date:
% Done:

0%

Estimated time:
Duration:

Description

I get a crash when I try to load the ChannelStatusService in Root:

terminate called after throwing an instance of 'cet::coded_exception<art::errors::ErrorCodes, &art::ExceptionDetail::translate[abi:cxx11]>'
  what():  ---- OtherArt BEGIN
  ServiceCreation
  ---- Type mismatch BEGIN

    Unsuccessful attempt to convert FHiCL parameter 'BadChannels' to type 'std::vector<unsigned int, std::allocator<unsigned int> >'.

    [Specific error:]
    bad any_cast

  ---- Type mismatch END
  cet::exception caught during construction of service type lariov::SimpleChannelStatusService:
---- OtherArt END

The problem first appears in dunetpc v08_17_00, i.e. does not occur in v08_15_01.
This is the first dunetpc release that uses art v3_02_04.

If I @erase the service, the crash goes away but so does the service and I need it. I tried explicitly setting the field to "[]" or "[1, 2]" at the end of the top fcl but the problem remains.

Kyle, can you have a look at this?

History

#1 Updated by David Adams 4 months ago

The problem can be reproduced as follows:

# setup dune: v08_127_00 or later
source ~dladams/bin/setup_dune.sh v08_20_00

cd somedir
git clone https://github.com/dladams/protodune-adc-calib.git
mkdir test
cd test
source ../protodune-adc-calib/setup.sh
root.exe
.
.
.
root> q
root.exe

Error occurs on second and subsequent attempts to start root.

#2 Updated by David Adams 4 months ago

If I dump the same to fcl file, I do not see an error (in any release):

> fcldump load_dataprep.fcl 6
.
.
.
services: {
  ChannelStatusService: {
    BadChannels: [4411, 4412, 9990, 11842, 1, 400, 401, 800, 801, 876, 1200, 2961, 5321, 5363, 6132, 7058, 7295, 7681, 8080, 8328, 8480, 9282, 9283, 9736, 9854, 10800, 11024, 11457, 11459, 11463, 11469, 11517, 11669, 11679, 12756, 12801, 13001, 13081, 4410, 1719, 5125, 7551, 7190, 7194, 7918, 2, 7680, 5361, 4, 1632, 2169, 3541, 3543, 3661, 3663, 4061, 4063, 4141, 4143, 4377, 4379, 4381, 4383, 4385, 4387, 4521, 4523, 4525, 4527, 4529, 4531, 4652, 4654, 4656, 4658, 4660, 4658, 4748, 4750, 4752, 4754, 4756, 4758, 8501, 8503, 8821, 8823, 9261, 9263, 9305, 9307, 9309, 9311, 9313, 9315, 9689, 9691, 9693, 9695, 9697, 9699, 9772, 9774, 9776, 9778, 9780, 9782, 10102, 10189, 10697, 10907, 11203, 11270, 11902, 12324, 12333, 12744, 13363, 200, 202, 204, 206, 208, 991, 993, 995, 997, 999, 1829, 1831, 1833, 1835, 1837, 1839]
    NoisyChannels: [9569, 2318, 4, 94, 442, 447, 453, 455, 456, 472, 477, 571, 573, 1534, 1539, 1546, 1864, 2135, 2146, 2158, 2161, 2674, 2833, 4377, 4654, 4658, 4662, 4752, 5271, 5377, 5400, 5423, 7220, 7334, 7347, 7396, 8341]
    service_provider: "SimpleChannelStatusService" 
  }
.
.
.

#3 Updated by Kyle Knoepfel 4 months ago

  • Status changed from New to Feedback

David, if I use dunetpc v08_21_00, I don't have any problems (modulo the TFileService which is giving me a weird error). Taking your GitHub repository:

$ setup dunetpc v08_21_00 -q e17:debug
$ source setup_protodune-adc-calib.sh

# Make local file to remove TFileService, which is causing me problems
$ fhicl-dump load_dataprep.fcl > full.fcl

# After removing TFileService from full.fcl
$ rm rootLogon.C
$ root.exe
root [0] .x pkginit.C
Welcome to the protoDUNE ADC calibration package.
ACLiC build dir: /dune/app/users/knoepfel/issue-22668/test/.aclic/v08_21_00
Util library dir: /dune/app/users/knoepfel/issue-22668/test/.aclic/v08_21_00/lib
Tool library dir: /dune/app/users/knoepfel/issue-22668/test/.aclic/v08_21_00/lib
Dunetpc include dir: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/include
Dune_raw data include dir: /cvmfs/dune.opensciencegrid.org/products/dune/dune_raw_data/v1_17_33/include
AddLinkedLibs: /cvmfs/larsoft.opensciencegrid.org/products/fhiclcpp/v4_09_03/slf6.x86_64.e17.debug/lib/libfhiclcpp.so
AddLinkedLibs: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/slf6.x86_64.e17.debug/lib/libdune_ArtSupport.so
AddLinkedLibs: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/slf6.x86_64.e17.debug/lib/libdune_DuneServiceAccess.so
AddLinkedLibs: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/slf6.x86_64.e17.debug/lib/libdune_DuneCommon.so
AddLinkedLibs: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/slf6.x86_64.e17.debug/lib/libdune_Geometry.so
AddLinkedLibs: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/slf6.x86_64.e17.debug/lib/libdune_DataPrep_Utility.so
Loading dunetpc classes.
Loading local libraries.
Building utilities.
Building tools.
Local startup file not found: startup.C
Finished loading.
(int) 0

root [1] ArtServiceHelper::load("full.fcl");
Info in <TGeoManager::Import>: Reading geometry from file: /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v08_21_00/gdml/protodune_v5.gdml
Info in <TGeoManager::TGeoManager>: Geometry GDMLImport, Geometry imported from GDML created
...
%MSG-i SignalShapingServiceDUNE: 
Getting Filter from .fcl file
%MSG
%MSG-i SignalShapingServiceDUNE: 
 using the field response provided from a .root file 
%MSG
Warning in <TFile::Append>: Replacing existing TH1: FieldResponse_U (Potential memory leak).
Warning in <TFile::Append>: Replacing existing TH1: FieldResponse_V (Potential memory leak).
Warning in <TFile::Append>: Replacing existing TH1: FieldResponse_Y (Potential memory leak).
root [2] DuneToolManager::instance("full.fcl");
DuneToolManager::instance: Configuration file: full.fcl
root [3] .q

And I get the same behavior when trying on subsequent attempts. Hmmm....

#4 Updated by David Adams 4 months ago

Kyle:

I suspect there is a fcl path problem and you have circumvented it by constructing a new fcl file with fhicl-dump. Could you instead include load_dataprep in you top-level fcl and @erase the file service.

In the meantime, I will see if I reproduce your result.

Thanks.

da

#5 Updated by David Adams 4 months ago

I tried to reproduce what you did: create a new top-level fcl with fhicl-dump, execute pkginit and then load the lervices at the command line. Both with and without commenting the file service from the new fcl file, I get the conversion error I reported above.

da

#6 Updated by David Adams 4 months ago

I tried again in a fresh build area following your prescription. The first time I enter root and do pkginit and load, all is fine. But on any subsequent attempt, I get my same crash.

If I delete the root build area (.aclic), I see the same: all is fine the first entry but the BadChannel crash on subsequent entries to root.

My root are is /nashome/dladams/data2/svctest/run. Maybe if you copy it, you can reproduce the problem.

Thanks again.

da



Also available in: Atom PDF