FatalError after configuring CMSSW to use external ROOT. Does CMS maintain a seperate root?


ROOT Version: 5.32.00
Platform: CMS-OpenData-1.5.1.ova slc6_amd64_gcc472
Compiler: slc6_amd64_gcc472


First, I am more like a software system developer.

I intend to do small modifications on ROOT code to measure network & compression performance under some CMSSW analysis example (e.g. HiggsBoson analysis).

I used the Github version of ROOT and checkout tag 5.32.00 and compile it without my intended modifications to just test the workflow.
I followed the instruction to tell CMSSW to link to my ad-hoc root library.

But when I tried to run the Level4 analysis, I got error like the following:

terminate called after throwing an instance of ‘edm::Exception’
what(): An exception of category ‘FatalRootError’ occurred.
Exception Message:
Fatal Root Error: @SUB=CINTTypedefBuilder::Setup()
21601 out of 24000 possible entries are in use!

Aborted

I was able to run the same analysis smoothly when CMSSW is using the ROOT at /cvmfs/cms.cern.ch/slc6_amd64_gcc472/lcg/root/5.35.32.00-cms/. However there is no corresponding source code available there, only compiled library and header files. So I will not be able to modify the ROOT library as needed.
Thus, I am wondering does CMS maintain a separate version of ROOT to use with CMSSW?

Any help would be appreciated.

Regards,
Chant

Hi Chant,

Yes, CMS used to maintain a fork of ROOT that increase some of the CINT internal buffer.

I am wondering why you are considering using such an ancient version of ROOT (and likely CMSSW). The 5.32.00 tag is 9 years old! Both CMSSW and ROOT have evolved quite a bit since then :slight_smile:

Cheers,
Philippe.

Thanks for the reply.
The reason I am using old version of CMS and ROOT, is that I am analyzing 2011 data which is publicly available. I believe there is some website suggesting the recommended version for the 2011 data is CMS_5_3_32 and the corresponding ROOT version is 5.32.00.

I tried to use newer version ROOT, but the build process would complain cmake version is too old and then gcc472 doesn’t have c++11 support if I tried to compile newer cmake.

I am using the CMS OpenData VM.

Regards,
Chant

If I recall correctly CMS was increase the values in cint/cint/inc/G__ci.h

#ifdef G__LONGLINE
#define G__ONELINE     1024  /* Length of subexpression,parameter,argument */
#define G__ONELINEDICT    8  /* Length of subexpression,parameter,argument */
#define G__MAXNAME     G__LONGLINE  /* Variable name */
#else
#ifdef G__LONGBUF
#define G__LONGLINE    4096  /* Length of expression */
#define G__ONELINE     4096  /* Length of subexpression,parameter,argument */
#define G__ONELINEDICT    8  /* Length of subexpression,parameter,argument */
#define G__MAXNAME     4096  /* Variable name */
#else
#define G__LONGLINE    2048  /* Length of expression */
#define G__ONELINE     1024  /* Length of subexpression,parameter,argument */
#define G__MAXNAME      512  /* Variable name */
#define G__ONELINEDICT    8  /* Length of subexpression,parameter,argument */
#endif
#endif

a safe bet is to increase G__LONGLINE and G__ONLINE … maybe by a factor 10.

Cheers,
Philippe.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.