--
AmnonHarel - 03 Oct 2008
Relevant links
My hints
Build Failures
- For checking build problems:
- Useful command showtags -r -t
-
undefined reference to
something sensible means that the BuildFile
doesn't import that something, e.g. to fix undefined reference to `vtable for reco::MET'
put <use name=DataFormats/METReco>
both in the main part of the BuildFile
and in the export section
- can't include the ROOT header files - perhaps the
BuildFile
is missing or misnamed?
Runtime Failures
Runtime configuration errors
This are marked by:
Problem with configuration file mca.py
---- Configuration BEGIN
XXX
---- Configuration END
- a python include / load fails to find a file that exists: perhaps you never run "scram b" in the directory where you're trying to run form? (so python symlinks are missing)
- XXX =
python encountered the error: exceptions.RuntimeError An entry in sequence YYY has no label
happens when the entry is not part of the "process" object
- happens when I use
from MODULE.SUBMODULE.USEFULSTUFF_cfi import *
(a-la official configs) instead of process.load("RecoJets.JetProducers.ak5CaloJets_cfi")
.
- XXX =
python encountered the error: exceptions.TypeError can't multiply sequence by non-int
there's a "step" (i.e. a cms.Path
) inside a sequence definition, instead of another sequence
-
Runtime loading errors
- plugin not found errors.
- check whether it exists, e.g., looking for plugin "AHtest" with
nm ~/CMSSW_3_1_0_pre1/lib/slc4_ia32_gcc345/pluginRecoJetsJetAnalyzers.so | grep AHtest | c++filt
- if not, is the source file OK? E.g. an empty source file could cause this...
- sometimes "touch"ing the plugin source file and rebuilding works
- a needed product is not found in the event setup. Error message blames missing ESSource or ESProducer.
- If it's an ESSource, this is usually DB related and controlled by the global tag. Probably need to change global tag to run on this type of data.
- If it's an ESProducer, you probably forgot to add it.
- e.g. used the wrong python tool,
import
instead of process.load
.
-
Modules still calling beginJob(EventSetup):
- here's Philipp's explanation "there was a time when one was able / allowed to access condition / calibration information at the beginning of the job, before the first event is analyzed. The fwk team decided this is bad (I am not sure why, but I can see how you can get in trouble with IOVs and stuff?), and deprecated this. But they haven't taken the beginJob(EventSetup)
hook away just yet, so your code still compiles, but will fail at run-time. Ergo, simply change the signature to beginJob()
. If you are actually accessing the event setup in your beginJob(), you will have to find a way to do without."
Errors after startup
- For a debug build put
<flags CXXFLAGS="-O0 -g -DDEBUG">
in the relevant build file (same level as the src
directory). = (unverified)
- elsewhere it suggests
<flags CXXFLAGS="-g -O0">
, which worked with ...
- Valgrind works on kcrooke (and probably elsewhere)
-
valgrind --tool=memcheck cmsRun ....
(recommend --tool=cachegrind or something like that)
-
RuntimeError: The config file has no Source
(appears after a python traceback) is because the config file used under crab.cfg must be valid, in particular, it must contain an event "Source". Kind of odd, since crab takes care of when events are used as input.