Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on multicore jobs when running on condor with CMSSW_11_3_0_pre6 #33466

Closed
srimanob opened this issue Apr 19, 2021 · 69 comments
Closed

Crash on multicore jobs when running on condor with CMSSW_11_3_0_pre6 #33466

srimanob opened this issue Apr 19, 2021 · 69 comments

Comments

@srimanob
Copy link
Contributor

srimanob commented Apr 19, 2021

Here is the report from https://hypernews.cern.ch/HyperNews/CMS/get/edmFramework/3920.html

With the following cmsDrivers (*), I found the issue when trying to run on the condor. Note that, everything runs fine on lxplus.

  1. If I run ZEE, I got (**). Issue also happens when I register with nTherads=8.
  2. If I run ZEE locally, then read the root file from the SIM step. SIM and DIGI steps run fine. All jobs fail at the RECO step with (***). No more information printout apart from what I posted.

(*)
cmsDriver.py ZEE_14TeV_TuneCP5_cfi --mc --conditions auto:phase1_2021_realistic -n 500 --era Run3 --eventcontent FEVTDEBUG -s GEN --datatier GEN --geometry DB:Extended --beamspot Run3RoundOptics25ns13TeVLowSigmaZ --python step1_ZEE_GEN_temp.py --no_exec --fileout file:step1_GEN.root --nThreads 1 --customise_commands "from IOMC.RandomEngine.RandomServiceHelper import RandomNumberServiceHelper ; randSvc = RandomNumberServiceHelper(process.RandomNumberGeneratorService) ; randSvc.populate()\n process.source.firstLuminosityBlock = cms.untracked.uint32(3)"

cmsDriver.py step2 --mc --conditions auto:phase1_2021_realistic -n -1 --era Run3 --eventcontent FEVTDEBUG -s SIM --datatier GEN-SIM --beamspot Run3RoundOptics25ns13TeVLowSigmaZ --geometry DB:Extended --python step2_SIM_GFlashNo.py --no_exec --filein file:step1_GEN.root --fileout file:step2_SIM.root --nThreads 8 --customise_commands "from IOMC.RandomEngine.RandomServiceHelper import RandomNumberServiceHelper ; randSvc = RandomNumberServiceHelper(process.RandomNumberGeneratorService) ; randSvc.populate()" --customise Configuration/DataProcessing/Utils.addMonitoring

cmsDriver.py step3 --mc --conditions auto:phase1_2021_realistic -s DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2021 --datatier GEN-SIM-DIGI-RAW -n -1 --geometry DB:Extended --era Run3 --eventcontent FEVTDEBUGHLT --python step3_DIGIL1HLT.py --no_exec --filein file:step2_SIM.root --fileout file:step3_DIGIL1HLT.root --nThreads 8 --customise_commands "from IOMC.RandomEngine.RandomServiceHelper import RandomNumberServiceHelper ; randSvc = RandomNumberServiceHelper(process.RandomNumberGeneratorService) ; randSvc.populate()"

cmsDriver.py step4 --mc --conditions auto:phase1_2021_realistic -n -1 --era Run3 --eventcontent MINIAODSIM,DQM -s RAW2DIGI,L1Reco,RECO,RECOSIM,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM --datatier MINIAODSIM,DQMIO --geometry DB:Extended --python step4_RECO.py --no_exec --filein file:step3_DIGIL1HLT.root --fileout file:step4_RECO.root --nThreads 8

(**)

Thread 2 (Thread 0x2b1e8e0f3700 (LWP 233)):
#0  0x00002b1e6f48a1d9 in waitpid () from /lib64/libpthread.so.0
#1  0x00002b1e7582a8d7 in edm::service::cmssw_stacktrace_fork() () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginFWCoreServicesPlugins.so
#2  0x00002b1e7582b49a in edm::service::InitRootHandlers::stacktraceHelperThread() () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginFWCoreServicesP
lugins.so
#3  0x00002b1e6f054af0 in std::execute_native_thread_routine (__p=0x2b1e8d48e4e0) at ../../../../../libstdc++-v3/src/c++11/thread.cc:80
#4  0x00002b1e6f482ea5 in start_thread () from /lib64/libpthread.so.0
#5  0x00002b1e6f7959fd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x2b1e71391a80 (LWP 215)):
#0  0x00002b1e6f78accd in poll () from /lib64/libc.so.6
#1  0x00002b1e7582acd7 in full_read.constprop () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginFWCoreServicesPlugins.so
#2  0x00002b1e7582b56c in edm::service::InitRootHandlers::stacktraceFromThread() () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginFWCoreServicesPlu
gins.so
#3  0x00002b1e7582c922 in sig_dostack_then_abort () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginFWCoreServicesPlugins.so
#4  <signal handler called>
#5  0x00002b1e6f6cd3d7 in raise () from /lib64/libc.so.6
#6  0x00002b1e6f6ceac8 in abort () from /lib64/libc.so.6
#7  0x00002b1e6f01f683 in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#8  0x00002b1e6f02b0a6 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#9  0x00002b1e6f02a1a9 in __cxa_call_terminate (ue_header=ue_header@entry=0x2b1e98ca1de0) at ../../../../libstdc++-v3/libsupc++/eh_call.cc:54
#10 0x00002b1e6f02aad4 in __cxxabiv1::__gxx_personality_v0 (version=<optimized out>, actions=6, exception_class=5138137972254386944, ue_header=0x2b1e98ca1de0, context=<optimized out>) at ../../../../
libstdc++-v3/libsupc++/eh_personality.cc:677
#11 0x00002b1e6f4717b3 in _Unwind_RaiseException_Phase2 (exc=0x2b1e98ca1de0, context=0x7ffe85db3e00, frames_p=0x7ffe85db3d08) at ../../../libgcc/unwind.inc:64
#12 0x00002b1e6f472016 in _Unwind_Resume (exc=0x2b1e98ca1de0) at ../../../libgcc/unwind.inc:241
#13 0x00002b1e9eff8738 in _GLOBAL__sub_I_TGClient.cxx.cold () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/external/slc7_amd64_gcc900/lib/libGui.so
#14 0x00002b1e6cab89c3 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#15 0x00002b1e6cabd59e in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#16 0x00002b1e6cab87d4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#17 0x00002b1e6cabcb8b in _dl_open () from /lib64/ld-linux-x86-64.so.2
#18 0x00002b1e6eb61fab in dlopen_doit () from /lib64/libdl.so.2
#19 0x00002b1e6cab87d4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#20 0x00002b1e6eb625ad in _dlerror_run () from /lib64/libdl.so.2
#21 0x00002b1e6eb62041 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#22 0x00002b1e6cc66167 in edmplugin::SharedLibrary::SharedLibrary(std::filesystem::__cxx11::path const&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900
/libFWCorePluginManager.so
#23 0x00002b1e6cc60676 in edmplugin::PluginManager::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char
>, std::allocator<char> > const&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCorePluginManager.so
#24 0x00002b1e6cc5a7f5 in edmplugin::PluginFactoryBase::findPMaker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const () from /cvmfs/cms.cern.ch/slc7_amd64_
gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCorePluginManager.so
#25 0x00002b1e6ced4b78 in edm::Factory::findMaker(edm::MakeModuleParams const&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework
.so
#26 0x00002b1e6ced4d72 in edm::Factory::makeModule(edm::MakeModuleParams const&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription c
onst&)>&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#27 0x00002b1e6cee66e8 in edm::ModuleRegistry::getModule(edm::MakeModuleParams const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, edm::signalslot::Signal<
void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/
libFWCoreFramework.so
#28 0x00002b1e6cf91c01 in edm::WorkerRegistry::getWorker(edm::WorkerParams const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /cvmfs/cms.cern.ch/s
lc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#29 0x00002b1e6cf8fe16 in edm::WorkerManager::getWorker(edm::ParameterSet&, edm::ProductRegistry&, edm::PreallocationConfiguration const*, std::shared_ptr<edm::ProcessConfiguration const>, std::__cxx
11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#30 0x00002b1e6cf90aa9 in edm::WorkerManager::addToUnscheduledWorkers(edm::ParameterSet&, edm::ProductRegistry&, edm::PreallocationConfiguration const*, std::shared_ptr<edm::ProcessConfiguration>, st
d::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_
string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_str
ing<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) () from /cvmfs/cms.cern.ch/slc7_amd64_gc
c900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#31 0x00002b1e6cf6e52a in edm::StreamSchedule::StreamSchedule(std::shared_ptr<edm::TriggerResultInserter>, std::vector<edm::propagate_const<std::shared_ptr<edm::PathStatusInserter> >, std::allocator<
edm::propagate_const<std::shared_ptr<edm::PathStatusInserter> > > >&, std::vector<edm::propagate_const<std::shared_ptr<edm::EndPathStatusInserter> >, std::allocator<edm::propagate_const<std::shared_p
tr<edm::EndPathStatusInserter> > > >&, std::shared_ptr<edm::ModuleRegistry>, edm::ParameterSet&, edm::service::TriggerNamesService const&, edm::PreallocationConfiguration const&, edm::ProductRegistry
&, edm::BranchIDListHelper&, edm::ExceptionToActionTable const&, std::shared_ptr<edm::ActivityRegistry>, std::shared_ptr<edm::ProcessConfiguration>, bool, edm::StreamID, edm::ProcessContext const*) (
) from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#32 0x00002b1e6cf4eda3 in edm::Schedule::Schedule(edm::ParameterSet&, edm::service::TriggerNamesService const&, edm::ProductRegistry&, edm::BranchIDListHelper&, edm::ThinnedAssociationsHelper&, edm::
SubProcessParentageHelper const*, edm::ExceptionToActionTable const&, std::shared_ptr<edm::ActivityRegistry>, std::shared_ptr<edm::ProcessConfiguration>, bool, edm::PreallocationConfiguration const&,
 edm::ProcessContext const*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#33 0x00002b1e6cf5f8cc in edm::ScheduleItems::initSchedule(edm::ParameterSet&, bool, edm::PreallocationConfiguration const&, edm::ProcessContext const*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/c
ms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#34 0x00002b1e6ce7402a in edm::EventProcessor::init(std::shared_ptr<edm::ProcessDesc>&, edm::ServiceToken const&, edm::serviceregistry::ServiceLegacy) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms
/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#35 0x00002b1e6ce75eda in edm::EventProcessor::EventProcessor(std::shared_ptr<edm::ProcessDesc>, edm::ServiceToken const&, edm::serviceregistry::ServiceLegacy) () from /cvmfs/cms.cern.ch/slc7_amd64_g
cc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#36 0x000000000040ba11 in tbb::interface7::internal::delegated_function<main::{lambda()#1}::operator()() const::{lambda()#1} const, void>::operator()() const ()
#37 0x00002b1e6e65c552 in tbb::interface7::internal::task_arena_base::internal_execute (this=0x7ffe85db6150, d=...) at ../../src/tbb/arena.cpp:1105
#38 0x000000000040ca13 in main::{lambda()#1}::operator()() const ()
#39 0x000000000040b62c in main ()

(***)

----- Begin Fatal Exception 18-Apr-2021 18:51:02 CEST-----------------------
An exception of category 'FatalRootError' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=RecoTauCleaner label='pfTausProducerSansRefs'
   Additional Info:
      [a] Fatal Root Error: @SUB=TSystem::ExpandFileName
input: $HOME/.root.mimes, output: $HOME/.root.mimes

----- End Fatal Exception -------------------------------------------------
@cmsbuild
Copy link
Contributor

A new Issue was created by @srimanob Phat Srimanobhas.

@Dr15Jones, @dpiparo, @silviodonato, @smuzaffar, @makortel, @qliphy can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@makortel
Copy link
Contributor

assign core

@cmsbuild
Copy link
Contributor

New categories assigned: core

@Dr15Jones,@smuzaffar,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks

@makortel
Copy link
Contributor

@srimanob Do I understand correctly that yout get the stack trace (**) with a single-thread run? Does the job have any relevant printouts before the crash?

On (***) I have no idea. The message comes from ROOT (that we convert to an exception by default). @pcanal, do you have idea on that? @srimanob Do you have HOME/.root.mimes file?

@makortel
Copy link
Contributor

makortel commented Apr 19, 2021

On (***) it might be interesting to see the stack trace of the exception. You can obtain it with

gdb cmsRun
(gdb) catch throw
(gdb) run <your_config>
# wait until the breakpoint hits, possibly 'continue' if some exceptions are thrown before
(gdb) where

@srimanob
Copy link
Contributor Author

srimanob commented Apr 19, 2021

Hi @makortel

@srimanob Do I understand correctly that yout get the stack trace (**) with a single-thread run? Does the job have any relevant printouts before the crash?

No, I don't have it. This is the error I got back from condor. I can try run again with printout. The issue I face comes from both ntherads = 1 or 8. The strange is that I can't reproduce it when I try to run on lxplus using the same script.

On (***) I have no idea. The message comes from ROOT (that we convert to an exception by default). @pcanal, do you have idea on that? @srimanob Do you have HOME/.root.mimes file?

I don't have HOME/.root.mimes file.

Regarding gdb, is it possible to put in shell script if I would like to try to do it on condor? As I can't reproduce both issues on lxplus.

Thanks very much.

@dan131riley
Copy link

wrt (***) see https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideCrabFaq#Exit_code_6_with_Fatal_Root_Erro

Apparently condor doesn't set the HOME environment variable. You could either follow the advice on the wiki, or do something like export HOME=/tmp in your script.

@dan131riley
Copy link

also wrt (**) there should have been some kind of error message just before the stack trace. You'll probably find it is something similar, as from the stack trace it looks to be in the initialization of libgui. In general, you shouldn't be linking to libgui in a batch job.

@srimanob
Copy link
Contributor Author

Thanks very much, @dan131riley

I am trying to solve ROOT, will let you know. I still have no idea on libgui as I don't call it (at least from myself). the script is basically run cmsDriver config.

I used the same submission script with 11_2 and everything work out-of-box, any idea what actually changes in 11_3 which may cause this?

@srimanob
Copy link
Contributor Author

By the way for the ROOT issue, does it mean RecoTauCleaner/pfTausProducerSansRefs module tries to use ROOT which makes reference to $HOME somehow? If that is the case, it should be fixed I think.

@srimanob
Copy link
Contributor Author

Confirm that with setting $HOME to the job, the RECO step works well.

@pcanal
Copy link
Contributor

pcanal commented Apr 19, 2021

libgui is being loaded via the plugin mechanism:

21 0x00002b1e6eb62041 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#22 0x00002b1e6cc66167 in edmplugin::SharedLibrary::SharedLibrary(std::filesystem::__cxx11::path const&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900
/libFWCorePluginManager.so
#23 0x00002b1e6cc60676 in edmplugin::PluginManager::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char
>, std::allocator<char> > const&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCorePluginManager.so
#24 0x00002b1e6cc5a7f5 in edmplugin::PluginFactoryBase::findPMaker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const () from /cvmfs/cms.cern.ch/slc7_amd64_
gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCorePluginManager.so
#25 0x00002b1e6ced4b78 in edm::Factory::findMaker(edm::MakeModuleParams const&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework
.so
#26 0x00002b1e6ced4d72 in edm::Factory::makeModule(edm::MakeModuleParams const&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription c
onst&)>&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#27 0x00002b1e6cee66e8 in edm::ModuleRegistry::getModule(edm::MakeModuleParams const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, edm::signalslot::Signal<
void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/
libFWCoreFramework.so

so some CMSSW module is needing it. (or so it seems).

@makortel
Copy link
Contributor

How could we figure out which plugin would be pulling in the dependence on libGui? (I did not spot anything suspicious in BuildFiles with git grep rootgui etc)

@pcanal
Copy link
Contributor

pcanal commented Apr 19, 2021

From the stack trace, I would say that examine the function parameter in those frames:

#25 0x00002b1e6ced4b78 in edm::Factory::findMaker(edm::MakeModuleParams const&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework
.so
#26 0x00002b1e6ced4d72 in edm::Factory::makeModule(edm::MakeModuleParams const&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription c
onst&)>&) const () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/libFWCoreFramework.so
#27 0x00002b1e6cee66e8 in edm::ModuleRegistry::getModule(edm::MakeModuleParams const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, edm::signalslot::Signal<
void (edm::ModuleDescription const&)>&, edm::signalslot::Signal<void (edm::ModuleDescription const&)>&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/
libFWCoreFramework.so

should give the answer.

@Dr15Jones
Copy link
Contributor

If you add

	process.add_(cms.Service("PrintLoadingPlugins"))

it will print each time a plugin is loaded and will say what was requested.

@makortel
Copy link
Contributor

If you add

	process.add_(cms.Service("PrintLoadingPlugins"))

it will print each time a plugin is loaded and will say what was requested.

@srimanob Could you repeat (**) with the PrintLoadingPlugins Service and post (a link to the) the full log of the job?

@srimanob
Copy link
Contributor Author

srimanob commented Apr 20, 2021

Hi All,

Thanks for all information. I found that for the GEN step in my local test, it crashed due to ROOT without HOME env also. With this set, everything runs fine.

Is this an expected change? Why does running CMSSW job without any private modules need $HOME for root? My condor script worked well before with 10_6 and 11_2 without the need to set HOME. I just try to run 10_6 with unset HOME interactively, everything seems to work properly in all steps.

@makortel
Copy link
Contributor

Is this an expected change?

Combined (or caused by?) the evidence for the job loading ROOT's libGUI I'd say "no, not expected". Let's first figure out what causes the loading of libGUI and then see if addressing that also removes the issue with setting or not $HOME.

@srimanob
Copy link
Contributor Author

Here is the log file from PrintLoadingPlugins without HOME env,
/afs/cern.ch/user/s/srimanob/public/GitIssue33466/run-withoutHOME.log

To reproduce the issue, one can use cmsDriver above (ZEE one), with CMSSW_11_3_0_pre6. unsetenv HOME first.

@makortel
Copy link
Contributor

Thanks @srimanob, quoting here the printouts before exception

Getting> 'CMS EDM Framework Module' PoolOutputModule
         from Not found
Loading> /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginIOPoolOutputPlugins.so
Getting> 'CMS EDM Framework Module' PPSSimTrackProducer
         from Not found
Loading> /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/lib/slc7_amd64_gcc900/pluginSimPPSPPSSimTrackProducerAuto.so
terminate called after throwing an instance of 'edm::Exception'
  what():  An exception of category 'FatalRootError' occurred.
   Additional Info:
      [a] Fatal Root Error: @SUB=TSystem::ExpandFileName
input: $HOME/.root.mimes, output: $HOME/.root.mimes

(plus a similar stack trace as in the issue description).

@makortel
Copy link
Contributor

The SimPPS/PPSSimTrackProducer/plugins depends on hector


and

$ ldd $(scram tool tag hector LIBDIR)/libHector.so | fgrep Gui
        libGui.so => /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre6/external/slc7_amd64_gcc900/lib/libGui.so (0x00007f46015fa000)

so hector seems to depend on libGui.

Can the libGui dependence be removed from hector?

FYI @cms-sw/simulation-l2 @cms-sw/ctpps-dpg-l2

@makortel
Copy link
Contributor

assign simulation

@cmsbuild
Copy link
Contributor

New categories assigned: simulation

@civanch,@mdhildreth you have been requested to review this Pull request/Issue and eventually sign? Thanks

@jan-kaspar
Copy link
Contributor

FYI @clemencia @mundim

@dan131riley
Copy link

Odd, nothing seems to have changed. The hector Makefile does

ROOTLIBS= $(shell root-config --libs --glibs)

and root-config --libs --glibs always includes -lGui. I guess the thing to do is remove the --glibs and see if it's really needed.

@dan131riley
Copy link

The selector to reco::parser::cutParser() is

signalPiZeroCandidates().size() = 0 | signalPiZeroCandidates()[0].pt > 2.5

and the args to reco::findMethod()

#31 0x00007fd5768e9673 in reco::findMethod (t=..., name="operator[]", args=std::vector of length 1, capacity 1 = {...}, fixuppedArgs=std::vector of length 0, capacity 0, iIterator=0x7fd557b6c7fe "[0].pt > 2.5", oError=@0x7fff62b7fb6c: 1) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/findMethod.cc:170

(gdb) p t
$1 = (const edm::TypeWithDict &) @0x7fff62b7fb90: {
  ti_ = 0x7fd577567088 <typeinfo for std::vector<reco::RecoTauPiZero, std::allocator<reco::RecoTauPiZero> >>,
  class_ = 0x7fd557773600,
  enum_ = 0x0,
  dataType_ = 0x0,
  arrayDimensions_ = {
    myP = {
      m_value = 0x0
    }
  },
  property_ = 1114112
}
(gdb) p name
$2 = "operator[]"
(gdb) p iIterator 
$5 = 0x7fd557b6c7fe "[0].pt > 2.5"

Stack trace (-70 lines of boost::spirit):

#0  0x00007fd5abf8932e in __cxxabiv1::__cxa_throw (obj=0x7fd557b31e80, tinfo=0x7fd5adf43e60 <typeinfo for edm::Exception>, dest=0x7fd5adebcfc2 <edm::Exception::~Exception()>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:78
#1  0x00007fd590feddd2 in (anonymous namespace)::RootErrorHandlerImpl (level=3000, location=0x7fd5ad2da5c7 "TSystem::ExpandFileName", message=0x7fff62b7b930 "input: $HOME/.root.mimes, output: $HOME/.root.mimes") at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/FWCore/Services/plugins/InitRootHandlers.cc:284
#2  0x00007fd590fee2ea in (anonymous namespace)::RootErrorHandler (level=3000, location=0x7fd5ad2da5c7 "TSystem::ExpandFileName", message=0x7fff62b7b930 "input: $HOME/.root.mimes, output: $HOME/.root.mimes") at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/FWCore/Services/plugins/InitRootHandlers.cc:306
#3  0x00007fd5ad1339d6 in ErrorHandler () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#4  0x00007fd5ad133a78 in Error(char const*, char const*, ...) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#5  0x00007fd5ad1787cf in TSystem::ExpandFileName(char const*, char*, int) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#6  0x00007fd5ad1788bd in TSystem::ExpandFileName(TString&) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#7  0x00007fd5462e4625 in TGResourcePool::TGResourcePool(TGClient*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libGui.so
#8  0x00007fd546238fea in TGClient::TGClient(char const*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libGui.so
#9  0x00007fd5461cb574 in _GLOBAL__sub_I_TGClient.cxx () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libGui.so
#10 0x00007fd5ae4d19c3 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#11 0x00007fd5ae4d659e in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#12 0x00007fd5ae4d17d4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#13 0x00007fd5ae4d5b8b in _dl_open () from /lib64/ld-linux-x86-64.so.2
#14 0x00007fd5ac2defab in dlopen_doit () from /lib64/libdl.so.2
#15 0x00007fd5ae4d17d4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#16 0x00007fd5ac2df5ad in _dlerror_run () from /lib64/libdl.so.2
#17 0x00007fd5ac2df041 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#18 0x00007fd58b42a8b5 in cling::utils::platform::DLOpen(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#19 0x00007fd58b340cd6 in cling::DynamicLibraryManager::loadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#20 0x00007fd58b2b2224 in TCling::Load(char const*, bool) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#21 0x00007fd5ad1792a0 in TSystem::Load(char const*, char const*, bool) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#22 0x00007fd5ad109b61 in TROOT::LoadClass(char const*, char const*, bool) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#23 0x00007fd58b2b0303 in TCling::ShallowAutoLoadImpl(char const*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#24 0x00007fd58b2bf7f6 in TCling::DeepAutoLoadImpl(char const*) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#25 0x00007fd58b2bfe0c in TCling::AutoLoad(char const*, bool) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCling.so
#26 0x00007fd5ad214f0f in TEnum::GetEnum(char const*, TEnum::ESearchAction) () from /cvmfs/cms.cern.ch/slc7_amd64_gcc900/cms/cmssw/CMSSW_11_3_0_pre1/external/slc7_amd64_gcc900/lib/libCore.so
#27 0x00007fd5ae516f0e in edm::TypeWithDict::byName (name="vector<ROOT::Experimental::REveTableEntry>::size_type", property=32) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/FWCore/Reflection/src/TypeWithDict.cc:170
#28 0x00007fd5ae517bd9 in edm::TypeWithDict::TypeWithDict (this=0x7fff62b7efa0, arg=0x7fd557b3b7b0, property=0) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/FWCore/Reflection/src/TypeWithDict.cc:345
#29 0x00007fd5ae517b5c in edm::TypeWithDict::TypeWithDict (this=0x7fff62b7efa0, arg=0x7fd557b3b7b0) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/FWCore/Reflection/src/TypeWithDict.cc:342
#30 0x00007fd5768e8559 in reco::checkMethod (mem=..., type=..., args=std::vector of length 1, capacity 1 = {...}, fixuppedArgs=std::vector of length 0, capacity 0) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/findMethod.cc:85
#31 0x00007fd5768e9673 in reco::findMethod (t=..., name="operator[]", args=std::vector of length 1, capacity 1 = {...}, fixuppedArgs=std::vector of length 0, capacity 0, iIterator=0x7fd557b6c7fe "[0].pt > 2.5", oError=@0x7fff62b7fb6c: 1) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/findMethod.cc:170
#32 0x00007fd5768b08e4 in reco::parser::MethodSetter::push (this=0x7fd55764bc70, name="operator[]", args=std::vector of length 1, capacity 1 = {...}, begin=0x7fd557b6c7fe "[0].pt > 2.5", deep=true) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/MethodSetter.cc:61
#33 0x00007fd5768b077d in reco::parser::MethodSetter::operator() (this=0x7fd55764bc70, begin=0x7fd557b6c7fe "[0].pt > 2.5", end=0x7fd557b6c801 ".pt > 2.5") at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/MethodSetter.cc:51
#34 0x00007fd5768d9cb4 in boost::spirit::classic::attributed_action_policy<boost::spirit::classic::nil_t>::call<reco::parser::MethodSetter, char const*> (actor=..., first=@0x7fff62b81590: 0x7fd557b6c7fe "[0].pt > 2.5", last=@0x7fff62b825a0: 0x7fd557b6c801 ".pt > 2.5") at /cvmfs/cms.cern.ch/slc7_amd64_gcc900/external/boost/1.72.0-ghbfee4/include/boost/spirit/home/classic/core/scanner/scanner.hpp:147
[...]
#108 0x00007fd5768bda62 in boost::spirit::classic::parse<char, boost::spirit::classic::sequence<boost::spirit::classic::impl::entry_grammar<reco::parser::Grammar, 0, boost::spirit::classic::parser_context<boost::spirit::classic::nil_t> >, boost::spirit::classic::end_parser>, boost::spirit::classic::space_parser> (str=0x7fd557b6c7c0 "signalPiZeroCandidates().size() = 0 | signalPiZeroCandidates()[0].pt > 2.5", p=..., skip=...) at /cvmfs/cms.cern.ch/slc7_amd64_gcc900/external/boost/1.72.0-ghbfee4/include/boost/spirit/home/classic/core/scanner/impl/skipper.ipp:173
#109 0x00007fd5768b9147 in reco::parser::cutParser (t=..., cut="signalPiZeroCandidates().size() = 0 | signalPiZeroCandidates()[0].pt > 2.5", sel=std::shared_ptr<reco::parser::SelectorBase> (empty) = {...}, lazy=false) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/cutParser.cc:24
#110 0x00007fd552d7a8d3 in reco::parser::cutParser<reco::PFTau> (cut="signalPiZeroCandidates().size() = 0 | signalPiZeroCandidates()[0].pt > 2.5", sel=std::shared_ptr<reco::parser::SelectorBase> (empty) = {...}, lazy=false) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/interface/cutParser.h:14
#111 0x00007fd552d79161 in StringCutObjectSelector<reco::PFTau, false>::StringCutObjectSelector (this=0x7fd557b5d238, cut="signalPiZeroCandidates().size() = 0 | signalPiZeroCandidates()[0].pt > 2.5", lazy=false) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/interface/StringCutObjectSelector.h:18
#112 0x00007fd552ea1553 in reco::tau::RecoTauStringCleanerPlugin::RecoTauStringCleanerPlugin (this=0x7fd557b5d200, pset=..., iC=...) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/RecoTauTag/RecoTau/plugins/RecoTauStringCleanerPlugin.cc:41

@Dr15Jones
Copy link
Contributor

And the argment type passed to std::vector<T>::operator[] is std::vector<T>::size_type.
https://en.cppreference.com/w/cpp/container/vector/operator_at

@Dr15Jones
Copy link
Contributor

So looking at the TypeWithDict code we can see that the string "vector<ROOT::Experimental::REveTableEntry>::size_type" comes from TMethodArg::GetTypeName()

TypeWithDict::TypeWithDict(TMethodArg* arg, long property)
: TypeWithDict(byName(arg->GetTypeName(), arg->Property() | property)) {}

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

and instead just picks one convenient one

That would be bad :(

But the again I am still a bit confused. The type give to findMethod is std::vector<reco::RecoTauPiZero, std::allocator<reco::RecoTauPiZero> >> and reco::RecoTauPiZero seems to be a class and the search is attempted on the type:

 edm::FunctionWithDict f = type.functionMemberByName(name, theArgs, true);

@dan131riley what is the content of theArgs?

@dan131riley
Copy link

(gdb) up
#31 0x00007fd5768e9673 in reco::findMethod (t=..., name="operator[]", args=std::vector of length 1, capacity 1 = {...}, fixuppedArgs=std::vector of length 0, capacity 0, iIterator=0x7fd557b6c7fe "[0].pt > 2.5", oError=@0x7fff62b7fb6c: 1) at /mnt/data1/dsr/tmp/CMSSW_11_3_0_pre1/src/CommonTools/Utils/src/findMethod.cc:170
170	      int casts = checkMethod(f, type, args, fixuppedArgs);
(gdb) p theArgs
$17 = "int"
(gdb) p f
$18 = {
  function_ = 0x7fd556f43c60,
  funcptr_ = {
    fKind = TInterpreter::CallFuncIFacePtr_t::kGeneric,
    {
      fGeneric = 0x7fd5468a9000,
      fCtor = 0x7fd5468a9000,
      fDtor = 0x7fd5468a9000
    }
  }
}
(gdb) p name
$19 = "operator[]"

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

And what about

type.class_ 

@Dr15Jones
Copy link
Contributor

So findMethod calls

edm::FunctionWithDict f = type.functionMemberByName(name, theArgs, true);

which calls

FunctionWithDict TypeWithDict::functionMemberByName(std::string const& functionName,
std::string const& proto,
bool isConst) const {

TClass::GetMethodWithPrototype

TMethod* meth = class_->GetMethodWithPrototype(
functionName.c_str(), proto.c_str(), /*objectIsConst=*/isConst, /*mode=*/ROOT::kConversionMatch);

@Dr15Jones
Copy link
Contributor

So the final call to the constructor is here:

for (auto const& param : mem) {
edm::TypeWithDict parameter(param);

with the input mem is the FunctionWithDict using the iterator

IterWithDict<TMethodArg> FunctionWithDict::begin() const {
if (function_ == nullptr) {
return IterWithDict<TMethodArg>();
}
return IterWithDict<TMethodArg>(function_->GetListOfMethodArgs());
}

so it is just using TMethodArg

@Dr15Jones
Copy link
Contributor

type.class_ would be the TClass for std::vector<reco::RecoTauPiZero>

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

TClass::GetMethodWithPrototype

TMethod* meth = class_->GetMethodWithPrototype(
functionName.c_str(), proto.c_str(), /*objectIsConst=*/isConst, /*mode=*/ROOT::kConversionMatch);

And it seems that this is "suprisingly" failing. The question is (of course) why. So one additional piece of information is to have the name of the TClass object this called for and verify the arguments.

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

type.class_ would be the TClass for std::vectorreco::RecoTauPiZero

It should be :) but is it. If it isn't then we need to figure out why, if it is then it is even more puzzling (why would a search that is (intended to be) restricted to that class find something completely different.

@dan131riley
Copy link

For some reason gdb keeps insisting

(gdb) p *type.class_
$2 = <incomplete type>

despite including TClass.h, so I called Print() and Dump() on the object:

OBJ: TClass	vector<reco::RecoTauPiZero>	
==> Dumping object at: 0x00007ff84aa11000, name=vector<reco::RecoTauPiZero>, class=TClass

fPersistentRef                ->7ff84aa11050      !Persistent address of pointer to this TClass object and its successors.
fPersistentRef._M_b           ->7ff84aa11050      
fPersistentRef._M_b.*_M_p     ->7ff88b1c6cf0      
*fStreamerInfo                ->7ff84a524240      Array of TVirtualStreamerInfo
fConversionStreamerInfo       ->7ff84aa11060      Array of the streamer infos derived from another class.
fConversionStreamerInfo._M_b  ->7ff84aa11060      
fConversionStreamerInfo._M_b.*->0                 
*fRealData                    ->7ff88b5251e0      linked list for persistent members including base classes
fBase                         ->7ff84aa11070      linked list for base classes
fBase._M_b                    ->7ff84aa11070      
fBase._M_b.*_M_p              ->7ff88b525170      
fData                         ->7ff84aa11078      linked list for data members; non-owning.
fData._M_b                    ->7ff84aa11078      
fData._M_b.*_M_p              ->7ff88b56ab20      
fUsingData                    ->7ff84aa11080      linked list for data members pulled in through using decls.
fUsingData._M_b               ->7ff84aa11080      
fUsingData._M_b.*_M_p         ->0                 
fEnums                        ->7ff84aa11088      linked list for the enums
fEnums._M_b                   ->7ff84aa11088      
fEnums._M_b.*_M_p             ->7ff84a4255a0      
*fFuncTemplate                ->0                 linked list for function templates [Not public until implemented as active list]
fMethod                       ->7ff84aa11098      linked list for methods
fMethod._M_b                  ->7ff84aa11098      
fMethod._M_b.*_M_p            ->7ff84a486b80      
*fAllPubData                  ->0                 all public data members (including from base classes)
*fAllPubMethod                ->0                 all public methods (including from base classes)
*fClassMenuList               ->0                 list of class menu items
*fDeclFileName                vector
*fImplFileName                
fDeclFileLine                 386                 line of class declaration
fImplFileLine                 0                   line of class implementation
fInstanceCount                0                   number of instances of this class
fOnHeap                       0                   number of instances on heap
fCheckSum                     ->7ff84aa110d4      checksum of data members and base classes
fCheckSum._M_i                0                   
*fCollectionProxy             ->7ff84adc0480      Collection interface
fClassVersion                 6                   Class version Identifier
*fClassInfo                   ->7ff8481535c0      pointer to CINT class info class
fContextMenuTitle                                 context menu title
fContextMenuTitle.fRep        ->7ff84aa110f8      ! String data
*fTypeInfo                    ->7ff868e79088      pointer to the C++ type information.
*fShowMembers                 ->0                 pointer to the class's ShowMembers function
*fStreamer                    ->7ff88b56f630      pointer to streamer function
fSharedLibs                                       shared libraries containing class code
fSharedLibs.fRep              ->7ff84aa11128      ! String data
*fIsA                         ->7ff88b5575d0      !pointer to the class's IsA proxy.
*fGlobalIsA                   ->0                 pointer to a global IsA function.
fIsAMethod                    ->7ff84aa11148      !saved info to call a IsA member function
fIsAMethod._M_b               ->7ff84aa11148      
fIsAMethod._M_b.*_M_p         ->0                 
*fMerge                       ->0                 pointer to a function implementing Merging objects of this class.
*fResetAfterMerge             ->0                 pointer to a function implementing Merging objects of this class.
*fNew                         ->7ff868db7593      pointer to a function newing one object.
*fNewArray                    ->7ff868db74fb      pointer to a function newing an array of objects.
*fDelete                      ->7ff868dbb3eb      pointer to a function deleting one object.
*fDeleteArray                 ->7ff868dbb3af      pointer to a function deleting an array of objects.
*fDestructor                  ->7ff868dbb3aa      pointer to a function call an object's destructor.
*fDirAutoAdd                  ->0                 pointer which implements the Directory Auto Add feature for this class.']'
*fStreamerFunc                ->0                 Wrapper around this class custom Streamer member function.
*fConvStreamerFunc            ->0                 Wrapper around this class custom conversion Streamer member function.
fSizeof                       24                  Sizeof the class.
fCanSplit                     -1717986921         !Indicates whether this class can be split or not. Values are -1, 0, 1, 2
fIsSyntheticPair              true                !
fProperty                     ->7ff84aa111a8      !Property See TClass::Property() for details
fProperty._M_i                1074003969          
fClassProperty                465                 !C++ Property of the class (is abstract, has virtual table, etc.)
fHasRootPcmInfo               ->7ff84aa111b8      !Whether info was loaded from a root pcm.
fHasRootPcmInfo._M_base       ->7ff84aa111b8      
fHasRootPcmInfo._M_base._M_i  true                
fCanLoadClassInfo             ->7ff84aa111b9      !Indicates whether the ClassInfo is supposed to be available.
fCanLoadClassInfo._M_base     ->7ff84aa111b9      
fCanLoadClassInfo._M_base._M_ifalse               
fIsOffsetStreamerSet          ->7ff84aa111ba      !saved remember if fOffsetStreamer has been set.
fIsOffsetStreamerSet._M_base  ->7ff84aa111ba      
fIsOffsetStreamerSet._M_base._false               
fVersionUsed                  ->7ff84aa111bb      !Indicates whether GetClassVersion has been called
fVersionUsed._M_base          ->7ff84aa111bb      
fVersionUsed._M_base._M_i     true                
fRuntimeProperties            ->7ff84aa111bc      ! Properties that can only be evaluated at run-time
fRuntimeProperties._M_i                           
fOffsetStreamer               0                   !saved info to call Streamer
fStreamerType                 16                  !cached of the streaming method to use
fState                        4                   !Current 'state' of the class (Emulated,Interpreted,Loaded)
fCurrentInfo                  ->7ff84aa111d0      !cached current streamer info.
fCurrentInfo._M_b             ->7ff84aa111d0      
fCurrentInfo._M_b.*_M_p       ->0                 
fLastReadInfo                 ->7ff84aa111d8      !cached streamer info used in the last read.
fLastReadInfo._M_b            ->7ff84aa111d8      
fLastReadInfo._M_b.*_M_p      ->0                 
*fRefProxy                    ->0                 !Pointer to reference proxy if this class represents a reference
*fSchemaRules                 ->7ff84a439080      ! Schema evolution rules
fStreamerImpl                 ->7ff84aa111f0      ! Pointer to the function implementing streaming for this class
fStreamerImpl._M_b            ->7ff84aa111f0      
fStreamerImpl._M_b.*_M_p      ->7ff89ea13e20      
*fAttributeMap                ->0                 pointer to a class attribute map
fUpdatingTransactionCount     0                   !the Cling ID of the transaction that last updated the object
fName                         vector<reco::RecoTauobject identifier
fName.fRep                    ->7ff84aa11018      ! String data
fTitle                                            object title
fTitle.fRep                   ->7ff84aa11030      ! String data
fUniqueID                     1165                object unique identifier
fBits                         0x030c0000          bit field status word

@Dr15Jones
Copy link
Contributor

Dr15Jones commented Apr 21, 2021

Here is what I did in ROOT

root [1] auto cls = TClass::GetClass("std::vector<reco::RecoTauPiZero>")
(TClass *) @0x7ffd9a7348e8

root [5] auto meth = cls->GetMethodWithPrototype("operator[]","int",true,ROOT::kConversionMatch);

root [6] auto args = meth->GetListOfMethodArgs()

root [9] auto methArg = dynamic_cast<TMethodArg*>(args->First())
(TMethodArg *) @0x7ffd9a7348e8

root [15] args->GetEntries()
(int) 1

root [16] methArg->GetTypeName()
(const char *) "vector<ROOT::Experimental::REveTableEntry>::size_type"

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

@Dr15Jones Cool :) or :( I should say. We need to open a github issue on the ROOT side for this :(

@Dr15Jones
Copy link
Contributor

Dr15Jones commented Apr 21, 2021

Similarly

root [0] auto cls = TClass::GetClass("std::vector<int>")
(TClass *) @0x7ffd85e57568
root [1] auto meth = cls->GetMethodWithPrototype("operator[]","int",true,ROOT::kConversionMatch);
root [3] auto args = meth->GetListOfMethodArgs()
(TList *) @0x7ffd85e57568
root [4] auto methArg = dynamic_cast<TMethodArg*>(args->First())
(TMethodArg *) @0x7ffd85e57568
root [5] args->GetEntries()
(int) 1
root [6] methArg->GetTypeName()
(const char *) "vector<TClass*>::size_type"

@pcanal
Copy link
Contributor

pcanal commented Apr 21, 2021

Thanks for all the inline debugging :)

You can follow the eventual resolution at root-project/root#7955

@civanch
Copy link
Contributor

civanch commented Jun 9, 2021

@srimanob , it seems , that ROOT upgrade is in CMSSW, so the issue is fixed?

@makortel
Copy link
Contributor

makortel commented Jun 9, 2021

The issue is not fixed in ROOT yet. On the other hand, maybe there isn't much point in keeping this issue open since there is an issue in ROOT and there is a workaround.

@civanch
Copy link
Contributor

civanch commented Jun 9, 2021

+1

@srimanob
Copy link
Contributor Author

Yeah, agree. As the issue is in ROOT side, we can monitor from that. And when the ROOT is available and in CMSSW, we can check again. Thanks All.

@makortel
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

This issue is fully signed and ready to be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests