Skip to content

Conversation

@klendathu2k
Copy link
Contributor

Under ROOT6, there is a problem loading multiple chains when the StarClassLibrary (SCL) is involved. The following code will execute fine under root5, but root6 will complain with errors when trying to load dictionaries in the second chain.

.L bfc.C
bfc(-1,"SCL nodefault"); // load the STAR Class Library
bfc(-1,"in nodefault"); // add an IO maker

The rootlogon macro preloads several libraries, including SCL. It's not clear to me why... but switching from gSystem->Load(...) to #pragma cling load(...) seems to resolve the problem.

Copy link
Contributor

@genevb genevb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know enough about this to object to it. @plexoos , do you have alternative suggestions?

@plexoos
Copy link
Member

plexoos commented Jun 4, 2025

Just a couple of points:

  • Using #pragma to load libraries, as Jason suggests, seems to be the preferred method for "interpreted" macros in ROOT6. (Not sure why gSystem->Load() wouldn’t work, though.)
  • Checking for ROOT version > 5.99.0 might be unnecessary — I think #pragma cling load should be ignored by ROOT5...
  • Do we fully understand the CI test errors?

@klendathu2k
Copy link
Contributor Author

klendathu2k commented Jun 4, 2025 via email

@plexoos
Copy link
Member

plexoos commented Jun 18, 2025

Is this the right way to reproduce the issue? I’m asking because the following seems to work for me:

[rcas6005] ~/> setup afs

         ----- STAR Group Login from /star/u/jeromel/work/STAR/group// -----

Setting up STAR_ROOT = /afs/rhic.bnl.gov/star
Setting up STAR_PATH = /afs/rhic.bnl.gov/star/packages
Setting up WWW_HOME  = http://www.star.bnl.gov/
Setting up OPTSTAR   = /afs/rhic.bnl.gov/opt/star/sl73_gcc485
Setting up XOPTSTAR  = /afs/rhic.bnl.gov/opt/star/sl73_gcc485
Setting up STAF      = /afs/rhic.bnl.gov/star/packages/StAF/SL02a
Setting up STAF_LIB  = /afs/rhic.bnl.gov/star/packages/StAF/SL02a/.sl73_gcc485/lib
Setting up STAF_BIN  = /afs/rhic.bnl.gov/star/packages/StAF/SL02a/.sl73_gcc485/bin
Setting up STAR      = /afs/rhic.bnl.gov/star/packages/SL24c
Setting up STAR_LIB  = /afs/rhic.bnl.gov/star/packages/SL24c/.sl73_gcc485/lib
Setting up STAR_BIN  = /afs/rhic.bnl.gov/star/packages/SL24c/.sl73_gcc485/bin
Setting up STAR_PAMS = /afs/rhic.bnl.gov/star/packages/SL24c/pams
Setting up STAR_DATA = /afs/rhic.bnl.gov/star/data
Setting up CVSROOT   = /afs/rhic.bnl.gov/star/packages/repository
Setting up ROOT_LEVEL= 5.34.38
CERNLIB version pro has been initiated with CERN_ROOT=/cern/pro
STAR setup on rcas6005.rcf.bnl.gov by Wed Jun 18 13:36:50 EDT 2025  has been completed
LD_LIBRARY_PATH = /cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/py-pyparsing-2.2.0-kno27rvkh52pvr7pjdemr6x4msb7rf3o/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/python-2.7.18-wyj7ywvpc2ked6uiq37ymsydl7f2hcue/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/zlib-1.2.12-o6ydcjy4nljft3elfwfzy5g3hzdnl3fx/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/vc-0.7.4-rjlij3fhluxhftifekgnemfbqxtvgsyf/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/root-5.34.38-llsepmmfuwlsucogcwbjiodncxanoudt/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/rave-2020-08-11-jlvlerciuaja6v6c55h2rlot3atadjw5/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/python-3.8.13-bmo4yun7ss2txyg3iupyrym5v4gvpxwo/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/py-pyparsing-3.0.6-eyqnwk34ulfpfarcwlbi3qfwbgwoyic7/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/mysql-5.6.43-l53d4b6d4hx44oqovuc27nnetbjp2ybo/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/log4cxx-0.10.0-h72to442hnyvywgzhcrmcss72drevnrq/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/libxml2-2.9.13-lz3lyneygrxk2qymkpnt2zgjjf7pg4iu/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/libiconv-1.16-ng3cybyv7lydzuxtdcds5my576rbtrtu/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/kitrack-01-10-star-1-23oq25wbelwgbbm3xfdswfud23olnepf/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/gsl-2.7.1-ies4zztcuz3676oexoimjfpyefer7hfo/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/genfit-b496504a-zhlphs33ec2mcdc5oknzjvtkcy4v2wkx/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86/gcc-4.8.5/fastjet-3.3.4-2ro35ixrxr4b5jn4dprn46h3t37n64od/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL24c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:ROOT:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/opt/star/sl73_gcc485/qt4/lib:/afs/rhic.bnl.gov/opt/star/sl73_gcc485/lib
* STAR SOFTWARE news Jan 18, 2023 
---------------------
The present release assignment:
      SL10h_embed (SL10h_embed_v6) ROOT_LEVEL 5.22.00
      SL11d_embed (SL11d_embed_v7) ROOT_LEVEL 5.22.00 
      SL12d_embed (SL12d_embed_v8) ROOT_LEVEL 5.22.00
      SL13b_embed (SL13b_embed_v1) ROOT_LEVEL 5.22.00 pp 500GeV run 2012 production
      SL14g       (SL14g_3)        ROOT_LEVEL 5.34.09 pp 500GeV run 2013 production (day 129-161)
      SL16d       (SL16d_1)        ROOT_LEVEL 5.34.30 pp, pAu,pAl 200GeV run 2015 production without HFT tracking 
      SL16d_embed (SL16d_embed_v3) ROOT_LEVEL 5.34.30     
      SL16g_embed (SL16g_embed_v3) ROOT_LEVEL 5.34.30
      SL16j_embed (SL16j_embed_v2) ROOT_LEVEL 5.34.30 
      SL16k_embed (SL16k_embed_v1) ROOT_LEVEL 5.34.30 
      SL17d       (SL17d)          ROOT_LEVEL 5.34.30 dAu 20-200GeV run 2016 production
      SL17d_embed (SL17d_embed_v3) ROOT_LEVEL 5.34.30
      SL17f       (SL17f_1)        ROOT_LEVEL 5.34.30 AuAu 200GeV run 2016 st_upc production;
                                                      pp 200GeV run 2015 st_rp reproduction;
      SL17g       (SL17g_1)        ROOT_LEVEL 5.34.30 pp 510GeV run 2017 st_W production
      SL17i       (SL17i)          ROOT_LEVEL 5.34.30 SL7.3 cucu 200-22 GeV run 2005 reproduction
      SL18b       (SL18b)          ROOT_LEVEL 5.34.30 pp 510GeV run 2017 st_physics production
      SL18c       (SL18c_1)        ROOT_LEVEL 5.34.30 pp 510GeV run 2017 st_fms, st_mtd production
                                                      AuAu 54GeV run 2017 reproduction
      SL18c_embed (SL18c_embed_v2) ROOT_LEVEL 5.34.30
      SL18f       (SL18f_1)        ROOT_LEVEL 5.34.30 pp 510GeV run 2017 st_epd production
      SL18h       (SL18h)          ROOT_LEVEL 5.34.30 pp 500GeV st_rp data reproduction 
      SL19a       (SL19a)          ROOT_LEVEL 5.34.30
      SL19b       (SL19b_4)        ROOT_LEVEL 5.34.30 AuAu 27GeV run 2018 production     
      SL19c       (SL19c)          ROOT_LEVEL 5.34.30 CuAu 200GeV run 2012 data reproduction
      SL19e       (SL19e_3)        ROOT_LEVEL 5.34.30 SL7.3
      SL20a       (SL20a)          ROOT_LEVEL 5.34.38 SL7.3
      SL20c       (SL20c_3)        ROOT_LEVEL 5.34.38 SL7.3
      SL20d       (SL20d)          ROOT_LEVEL 5.34.38 SL7.3
      SL21a       (SL21a)          ROOT_LEVEL 5.34.38 SL7.3 
      SL21b       (SL21b_v2)       ROOT_LEVEL 5.34.38 SL7.3 
      SL21c       (SL21c_9)        ROOT_LEVEL 5.34.38 SL7.3
      SL21d       (SL21d_4)        ROOT_LEVEL 5.34.38 SL7.3
      SL22a       (SL22a_2)        ROOT_LEVEL 5.34.38 SL7.3
      SL22b       (SL22b_2)        ROOT_LEVEL 5.34.38 SL7.3
      SL22c       (SL22c_1)        ROOT_LEVEL 5.34.38 SL7.3
      SL23a       (SL23a_1)        ROOT_LEVEL 5.34.38 SL7.3
      SL23c       (SL23c_1)        ROOT_LEVEL 5.34.38 SL7.3
      SL23d       (SL23e_2)        ROOT_LEVEL 5.34.38 SL7.3
      SL23e       (SL23e_2)        ROOT_LEVEL 5.34.38 SL7.3
      SL23f       (SL23f_2)        ROOT_LEVEL 5.34.38 SL7.3
      SL24a       (SL24a_0)        ROOT_LEVEL 5.34.38 SL7.3
      SL24b       (SL24b_0)        ROOT_LEVEL 5.34.38 SL7.3
      SL24c       (SL24b_0)        ROOT_LEVEL 5.34.38 SL7.3
      SL24x       (n/a)            ROOT_LEVEL 6.24.06 SL7.3 (ROOT6 and GEANT4 development)
      SL24y       (SL24y_2)        ROOT_LEVEL 5.34.38 SL7.3 (new TPC alignment and hit errors)
      SL25a       (SL25a_0)        ROOT_LEVEL 5.34.38 SL7.3

      (star)old -> SL24a (SL24a_0) ROOT_LEVEL 5.34.38 SL7.3
      (star)pro -> SL24c (SL24b_0) ROOT_LEVEL 5.34.38 SL7.3
      (star)new -> SL25a (SL25a_0) ROOT_LEVEL 5.34.38 SL7.3

      dev-> DEV                    ROOT_LEVEL 5.34.38 SL7.3
      .dev-> .DEV                  ROOT_LEVEL 5.34.38 SL7.3
-------------------------------------------------
[rcas6005] ~/> 
[rcas6005] ~/> setup 64b
[rcas6005] ~/> starver SL24x config/v0.3.0-rhel7-root6.24.06
[rcas6005] ~/> root -b
   ------------------------------------------------------------------
  | Welcome to ROOT 6.24/06                        https://root.cern |
  | (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on Sep 02 2021, 14:20:23                 |
  | From tags/v6-24-06@v6-24-06                                      |
  | With g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)                 |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q'       |
   ------------------------------------------------------------------

 *** Start at Date : Wed Jun 18 13:37:22 2025
root [0] .L bfc.C
root [1] bfc(-1,"in nodefault");
Load system libraries	
 + liblog4cxx.so + libStStarLogger.so
Create chain bfc
BFC:WARN  - StBFChain::Setup	File BFC.C has been found as /afs/rhic.bnl.gov/star/packages/SL24x/StRoot/StBFChain/BFC.C
QA :INFO  - ==============================================
QA :INFO  - ============= You are in SL24x ===============
QA :INFO  - Requested chain bfc is :	in nodefault
QA :INFO  -  Switch On                    in by Chain
QA :INFO  -  Switch On             NoDefault by Chain
QA :INFO  - ==================                    in	is ON 	: Read [DAQ|ROOT] input file
QA :INFO  - ==================             NoDefault	is ON 	: No Default consistency check
QA :INFO  - Process [First=     1/Last=    -1/Total=    -1] Events
QA :INFO  - Library libStIOMaker           [             in] (/afs/rhic.bnl.gov/star/packages/SL24x/.sl73_x8664_gcc485/lib/libStIOMaker.so)	is loaded
QA :INFO  -  Switch Off                   in by No Input File
QA :INFO  -  Switch On                noTags by NoOutput
QA :INFO  -  Switch On              NoOutput by No Output File
QA :INFO  - QAInfo:StBFChain            built Jun 10 2025 17:38:59 from Tag $Name:  $ $Id: StBFChain.h,v 1.59 2019/11/19 17:26:17 jeromel Exp $ 
QA :INFO  -  StBFChain::bfc
root [2] 

@klendathu2k
Copy link
Contributor Author

klendathu2k commented Jun 19, 2025 via email

@plexoos
Copy link
Member

plexoos commented Jun 19, 2025

The standard group directory shows the problem. Jerome's group directory is the proposed solution.

So, in other words, this proposed change isn’t necessary if/when the setup scripts are updated as Jerome suggests.

@klendathu2k
Copy link
Contributor Author

klendathu2k commented Jun 19, 2025 via email

@plexoos
Copy link
Member

plexoos commented Jun 20, 2025

Okay, it seems I can reproduce the issue now. Here’s the error I see when running the two commands sequentially without exiting ROOT:

root [0] .L bfc.C

root [1] bfc(-1,"SCL nodefault");
Load system libraries	
 + liblog4cxx.so + libStStarLogger.so
Create chain bfc
BFC:WARN  - StBFChain::Setup	File BFC.C has been found as /gpfs/mnt/gpfs01/star/pwg/smirnovd/star-bnl/star-sw/./StRoot/StBFChain/BFC.C
...
root [2] bfc(-1,"in nodefault");
input_line_50:2:3: error: use of undeclared identifier 'bfc'
 (bfc(-1, "in nodefault"))
  ^
BFC:ERROR - HandleInterpreterException : Error evaluating expression (bfc(-1, "in nodefault")).
Execution of your code was aborted.

And here’s what I get after switching to the PR branch (which I assume picks up the modified rootlogon.C):

root [0] .L bfc.C

root [1] bfc(-1,"SCL nodefault");
...
root [2] bfc(-1,"in nodefault");
input_line_50:2:3: error: use of undeclared identifier 'bfc'
 (bfc(-1, "in nodefault"))
  ^
BFC:ERROR - HandleInterpreterException : Error evaluating expression (bfc(-1, "in nodefault")).
Execution of your code was aborted.

So if this is the expected behavior, I’m okay with the change. My only suggestion is to guard the code meant for ROOT with __CLING__ instead of ROOT_VERSION.

@@ -1,10 +1,19 @@
{
#if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
#ifdef __CLING__

Copy link
Member

@plexoos plexoos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, this change seems to be breaking the CI tests with ROOT6

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants