Giter Site home page Giter Site logo

star-bnl / star-sw Goto Github PK

View Code? Open in Web Editor NEW
26.0 15.0 62.0 169.25 MB

Core software for STAR experiment

Perl 0.89% Java 0.02% Makefile 0.21% C++ 31.64% Objective-C 0.06% C 46.57% Shell 0.37% VHDL 0.01% HTML 0.85% TeX 0.88% PostScript 0.22% Tcl 0.28% Fortran 16.96% XSLT 0.01% Python 0.94% NASL 0.04% PHP 0.01% M4 0.01% SourcePawn 0.01% Pawn 0.02%

star-sw's People

Contributors

1893md avatar akioogawa avatar bhippoly avatar buddhasystem avatar caines avatar fgeurts avatar fisyak avatar floseck avatar genevb avatar haoqiu avatar isakrejda avatar jdbrice avatar jml985 avatar klendathu2k avatar kocolosk avatar lilianmartin avatar marrbnl avatar nigmatkulov avatar perevbnlgov avatar plexoos avatar rashmiraniwala avatar rfatemi avatar rjefferson avatar starsdong avatar ullrich-bnl avatar veprbl avatar vfine avatar wangyaping168 avatar wjllope avatar yipkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

star-sw's Issues

Star dev Library: Include required spack libraries

Include required spack libraries (32bit and 64bit) into standard STAR library (i.e. DEV for now)

The StFwdTrackMaker and other Fwd makers require various libraries installed in spack (GenFit, Rave, KiTrack).
So far we have been using a manually constructed environment with these overlaid on dev (64 bit).

See
https://github.com/jdbrice/star-sw-1/blob/fwd-tracking/StRoot/StFwdTrackMaker/macro/env.sh

NOTE: we have a production request incoming that will require this to be in place to proceed

StPicoEvent doesn't compile with modern compilers

On macOS with

clang version 7.1.0 (tags/RELEASE_710/final)

I get

./StPicoHelix.h:221:11: error: no member named 'finite' in the global namespace; did you mean 'isfinite'?
  if ( !::finite(mDipAngle) ) {
        ~~^~~~~~
          isfinite
/nix/store/znv06z6pld0ivwddj52rishggwc2m94c-libcxx-7.1.0-dev/include/c++/v1/math.h:439:1: note: 'isfinite' declared here
isfinite(_A1 __lcpp_x) _NOEXCEPT
^
In file included from StPicoPhysicalHelix.cxx:9:
./StPicoHelix.h:224:11: error: no member named 'finite' in the global namespace; did you mean 'isfinite'?
  if ( !::finite(mCurvature) ) {
        ~~^~~~~~
          isfinite
/nix/store/znv06z6pld0ivwddj52rishggwc2m94c-libcxx-7.1.0-dev/include/c++/v1/math.h:439:1: note: 'isfinite' declared here
isfinite(_A1 __lcpp_x) _NOEXCEPT
^
In file included from StPicoPhysicalHelix.cxx:9:
./StPicoHelix.h:243:13: error: no member named 'finite' in the global namespace; did you mean 'isfinite'?
    if ( !::finite( tmpVal ) ) {
          ~~^~~~~~
            isfinite
/nix/store/znv06z6pld0ivwddj52rishggwc2m94c-libcxx-7.1.0-dev/include/c++/v1/math.h:439:1: note: 'isfinite' declared here
isfinite(_A1 __lcpp_x) _NOEXCEPT
^
3 errors generated.
make: *** [Makefile:23: StPicoPhysicalHelix.o] Error 1

On macOS with

gcc version 10.3.0 (GCC)
In file included from StPicoPhysicalHelix.cxx:9:
StPicoHelix.h: In member function ‘Int_t StPicoHelix::bad(Double_t) const’:
StPicoHelix.h:221:11: error: ‘::finite’ has not been declared; did you mean ‘fwrite’?
  221 |   if ( !::finite(mDipAngle) ) {
      |           ^~~~~~
      |           fwrite
StPicoHelix.h:224:11: error: ‘::finite’ has not been declared; did you mean ‘fwrite’?
  224 |   if ( !::finite(mCurvature) ) {
      |           ^~~~~~
      |           fwrite
StPicoHelix.h:243:13: error: ‘::finite’ has not been declared; did you mean ‘fwrite’?
  243 |     if ( !::finite( tmpVal ) ) {
      |             ^~~~~~
      |             fwrite

Steps to reproduce

cd StRoot/StPicoEvent
make

Incosistent values in USE_64BITS when using `starver` to setup 32 and 64 bit environments

When calling starver with a config we don't expect it to modify the USE_64BITS environment variable. However, USE_64BITS seems to being reset on every other call of starver.

Using #572 one can reproduce the issue

$ setup 32b
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
0
$ setup 64b
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
USE_64BITS: Undefined variable.
$ setup 64b
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
1
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
USE_64BITS: Undefined variable.
$ setup 32b
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
0
$ starver dev config/v0.2.3-rhel7-root5.34.38 && echo $USE_64BITS
USE_64BITS: Undefined variable.

Error in CreateGeometry.h in DEV

The following reconstruction chain in DEV (ROOT 5, not ROOT 6):

root4star -b -q -l bfc.C\(10,\"P2021a,StiCA,EbyET0,BEmcChkStat,-hitfilt,SCScalerCal,-mtd,-btof,-etofA,-picoWrite\",\"/star/data03/daq/2021/180/22180043/st_physics_22180043_raw_2000004.daq\"\)

....results in the following error after approximately 1-2 minutes of execution, and after approximately 2120 lines of output.

LoadTable: .L /afs/rhic.bnl.gov/star/packages/DEV/StarDb/AgMLGeometry/Geometry.y2021a.C
Error: cannot open file "StBFChain/StBFChain.h" /afs/rhic.bnl.gov/star/packages/DEV/StarDb/AgMLGeometry/CreateGeometry.h:2:
*** Interpreter error recovered ***
root4star: .sl73_gcc485/OBJ/StRoot/St_db_Maker/St_db_Maker.cxx:932: virtual TDataSet* St_db_Maker::LoadTable(TDataSet*): Assertion `!ee' failed.
Abort

Compiler warns about unused and uninitialized variables in StBTofSimMaker/StBTofSimMaker.cxx

Should be easy to fix

Compilation report (pass 0)
 echo 1 && echo noop && unsetenv NODEBUG && starver gitdev && echo noop && cons
 Success
 .sl73_x8664_gcc485/obj/StRoot/StBTofSimMaker/StBTofSimMaker.cxx: In member function 'int StBTofSimMaker::FastCellResponse(g2t_ctf_hit_st*, StBTofCollection*)':
 .sl73_x8664_gcc485/obj/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:824:8: warning: unused variable 'Rawbeta' [-Wunused-variable]
 float Rawbeta=pathL/Rawtof/3e-2;
 ^
 .sl73_x8664_gcc485/obj/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:827:9: warning: unused variable 'calcTof' [-Wunused-variable]
 double calcTof=pathL/(3e-2)/sqrt(1 - mass*mass/(momentum*momentum + mass*mass));
 ^
 .sl73_x8664_gcc485/obj/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:856:8: warning: unused variable 'beta' [-Wunused-variable]
 float beta=pathL/tof/3e-2;
 ^
 echo 2 && echo noop && setenv NODEBUG yes && starver gitdev && echo noop && cons
 Success
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx: In member function 'int StBTofSimMaker::FastCellResponse(g2t_ctf_hit_st*, StBTofCollection*)':
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:824:8: warning: unused variable 'Rawbeta' [-Wunused-variable]
 float Rawbeta=pathL/Rawtof/3e-2;
 ^
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:827:9: warning: unused variable 'calcTof' [-Wunused-variable]
 double calcTof=pathL/(3e-2)/sqrt(1 - mass*mass/(momentum*momentum + mass*mass));
 ^
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:856:8: warning: unused variable 'beta' [-Wunused-variable]
 float beta=pathL/tof/3e-2;
 ^
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx: In member function 'int StBTofSimMaker::CellResponse(g2t_ctf_hit_st*, StBTofSimMaker::TrackVec&)':
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:314:44: warning: 'beta' may be used uninitialized in this function [-Wmaybe-uninitialized]
 double clusterDensity = mSimDb->nclus(beta);
 ^
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx: In member function 'int StBTofSimMaker::FastCellResponse(g2t_ctf_hit_st*, StBTofCollection*)':
 .sl73_x8664_gcc485/OBJ/StRoot/StBTofSimMaker/StBTofSimMaker.cxx:879:44: warning: 'partnerTrkId' may be used uninitialized in this function [-Wmaybe-uninitialized]
 mcBTofHitx->setParentTrackId(partnerTrkId);

Copied from https://www.star.bnl.gov/public/comp/prod/Sanity/AutoBuild-64bits.html

@ZaochenYe @fgeurts @starsdong @jdbrice

Cannot pull base images from star-bnl/packages by latest tag (no matching manifest)

After updating settings in "Packages" > star-sw-root5-base > "Package settings" > "Manage Actions access" to allow pushes in this workflow the latest tag got overwritten. Pulling the image now results in the following error:

$ docker pull ghcr.io/star-bnl/star-sw-root5-base:latest
latest: Pulling from star-bnl/star-sw-root5-base
no matching manifest for linux/amd64 in the manifest list entries

The workaround is to pull an image with a specific digest like this:

$ docker pull ghcr.io/star-bnl/star-sw-root5-base@sha256:4bed8a8b729fa9e6c8e92b2bdecd6b73869e67a07bfbde969936f921123d4c3e

This is similar to what we do in the ci-build workflow

cache-from: type=registry,ref=ghcr.io/star-bnl/star-sw-root5-base@sha256:4bed8a8b729fa9e6c8e92b2bdecd6b73869e67a07bfbde969936f921123d4c3e

cache-from: type=registry,ref=ghcr.io/star-bnl/star-sw-root6-base@sha256:107736be0e111ef9eaac37281f9bcad95769ab3ce75a4c9624d8cea98b1eb966

Nevertheless, the option for pulling by the latest tag should be restored

Garbage in the output produced by StChain

From mattermost https://chat.sdcc.bnl.gov/star/pl/ysp3kkyjsiba58jb65hcri8hny

$ cat test.C
{
  gSystem->Load("St_base");
  gSystem->Load("StChain");
  gSystem->Load("StUtilities");
  StChain* analysisChain = new StChain("chain");
}
$ root -l -b -q test.C
*** Float Point Exception is OFF ***
 *** Start at Date : Thu Oct  7 09:16:00 2021
QAInfo:You are using STAR_LEVEL : dev, ROOT_LEVEL : 5.34.38 and node : rcas6010.rcf.bnl.gov
root.exe [0]
Processing test.C...
StInfo: --------------Error Codes-------------------------
 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 234StInfo:      nStOK   nStWarn    nStEOF    nStErr  nStFatal
 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 234StInfo:          0         0         0         0         0
 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 234StInfo: --------------------------------------------------
 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 2341234567 10 234567 20 234567 30 234567 40 234567 50 234567 60 234*** Chain not deleted***

This is the end of ROOT -- Goodbye
$ printenv | grep STAR
STARCMPL=gcc
STAR_HOST_SYS=sl73_x8664_gcc485
STAR_LIB=/afs/rhic.bnl.gov/star/packages/DEV/.sl73_x8664_gcc485/lib
FAIL= OPTSTAR
STAR_SCRIPTS=/afs/rhic.bnl.gov/star/packages/scripts
STAR_BIN=/afs/rhic.bnl.gov/star/packages/DEV/.sl73_x8664_gcc485/bin
STAR_PATH=/afs/rhic.bnl.gov/star/packages
STAR_BASE_PATH=
STARCMPLC=gcc
STAR_CGI=/afs/rhic.bnl.gov/star/packages/cgi
OPTSTAR=/opt/star/sl73_x8664_gcc485
STAR_DATA=/afs/rhic.bnl.gov/star/data
STAR=/afs/rhic.bnl.gov/star/packages/DEV
STAR_VERSION=DEV
STAR_SYS=x8664_sl7
STARL=/afs/rhic.bnl.gov/star/packages/DEV
STAR_MGR=/afs/rhic.bnl.gov/star/packages/DEV/mgr
STAR_LEVEL=dev
XOPTSTAR=/afs/rhic.bnl.gov/opt/star/sl73_x8664_gcc485
STAR_PAMS=/afs/rhic.bnl.gov/star/packages/DEV/pams
STAR_ROOT=/afs/rhic.bnl.gov/star
$ printenv | grep ROOT
MANPATH=/opt/star/sl73_x8664_gcc485/man:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/man:/usr/share/man:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/cint/doc:/afs/rhic.bnl.gov/star/packages/man
CVSROOT=/afs/rhic.bnl.gov/star/packages/repository
ROOT_LEVEL=5.34.38
XROOTDSYS=/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod
LD_LIBRARY_PATH=.sl73_x8664_gcc485/lib:/afs/rhic.bnl.gov/star/packages/DEV/.sl73_x8664_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/lib:/opt/star/sl73_x8664_gcc485/qt4/lib:/opt/star/sl73_x8664_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_x8664_gcc485/lib
XrdSecPWDALOGFILE=/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.xrd/pwdnetrc
XrdSecPWDSRVPUK=/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.xrd/pwdsrvpuk
CINTSYSDIR=/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/cint/cint
PATH=/opt/star/sl73_x8664_gcc485/bin:/usr/lib/jvm/jre-openjdk/bin:/afs/rhic.bnl.gov/rhstar/group:/afs/rhic.bnl.gov/star/packages/DEV/mgr:/afs/rhic.bnl.gov/star/packages/scripts:/afs/rhic.bnl.gov/star/packages/cgi:.sl73_x8664_gcc485/bin:/afs/rhic.bnl.gov/star/packages/DEV/.sl73_x8664_gcc485/bin:/usr/afsws/bin:/usr/afsws/etc:/usr/local/bin:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/bin:/opt/star/sl73_x8664_gcc485/qt4/bin:/usr/bin:/bin:/usr/sbin:.:/usr/local/sbin:/usr/lpp/mmfs/bin/:/cern64/pro/bin:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_x8664_gcc485/bin
CERN_ROOT=/cern64/pro
ROOT=/afs/rhic.bnl.gov/star/ROOT
ROOTSYS=/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb
PYTHONPATH=/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_x8664_gcc485/rootdeb/lib
JAVA_ROOT=/usr/lib/jvm/jre-openjdk
STAR_ROOT=/afs/rhic.bnl.gov/star

PR #500 broke numerous DEV nightly tests

PR #500 was merged on Friday, March 17. Since then, the below-listed DEV nightly tests at SDCC have been failing 3 times in a row with the following error:

StdEdxY2Maker:WARN - Validity:19950101/0 ----- 20151215/0
StChain:WARN - StDbSql::QueryDb(table,time) line=439 TpcPadCorrectionMDC has No data for query
root4star: .sl73_gcc485/OBJ/StRoot/StDetectorDbMaker/StDetectorDbChairs.cxx:473: static St_TpcPadCorrectionMDC* St_TpcPadCorrectionMDC::instance(): Assertion `table' failed.

One can look at the log files in any of these directories (use either theSat, Sun, or Mon iterations of these tests, or Tue by tomorrow):

/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2004/AuAuMinBias
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2007/2007ProductionMinBias
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2008/production_dAu2008
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2003/dAuMinBias
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2003/dAuMinBias
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2004/AuAu_prodHigh
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2004/AuAu_prodLow
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2004/prodPP
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2007/2007Production
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2007/2007ProductionMinBias
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2008/ppProduction2008
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2008/production_dAu2008
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2010/auau11_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2010/auau39_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2010/auau7_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2011/AuAu200_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2009/pp200_embed
/star/rcf/test/dev/daq_sl302.ittf_opt/Sun/year_2004/AuAuMinBias
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2005/CuCu200_embedTpc
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2007/auau200_embedTpcSvtSsd
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2010/auau200_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2011/pp500_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2012/pp200_embed
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2005/CuCu200_embedTpcSvtSsd
/star/rcf/test/dev/daq_sl302.ittf/Sun/year_2012/UU193_embed

-Gene

Error reading back StEvent

Reported with PR#537. ROOT reports an error when reading StEvent.

<StTreeMaker(inputStream_Root)::Init> Branch eventBranch is MAIN in tree
<StBranch::UpdateFile> Branch=eventBranch file /gpfs01/star/pwg_tasks/FwdCalib//PROD/zfa/out4/st_physics_23072003_raw_1000002.event.root
** <StBranch::Open> Branch=eventBranch 	Mode=READ 	File=/gpfs01/star/pwg_tasks/FwdCalib//PROD/zfa/out4/st_physics_23072003_raw_1000002.event.root 	Opened **
StChain:ERROR - TBufferFile::CheckByteCount : object of class StEventClusteringHints read too few bytes: 1401 instead of 3177

To Reproduce

root4star -q -b bfc.C'( 10, "in, y2023, useXgeom, AgML, db, StEvent, MakeEvent", "/gpfs01/star/pwg_tasks/FwdCalib//PROD/zfa/out4/st_physics_23072003_raw_1000002.event.root" )'

Status of failed CI tests should reflect when a job fails

Here is an example of a test that is expected to fail https://github.com/star-bnl/star-sw/runs/4516531310?check_suite_focus=true due to the test data being more recent than the code.

 *** Start at Date : Tue Dec 14 07:37:08 2021

Processing bfc.C(2000, "P2021a,StiCA,EbyET0,BEmcChkStat,-hitfilt,QAalltrigs", "/star/rcf/test/daq/2021/157/st_physics_22157006_raw_2000022.daq")...
Load system libraries	 + liblog4cxx.so + libStStarLogger.so
Create chain bfc
BFC:WARN  - StBFChain::Setup	File BFC.C has been found as /star-sw/StRoot/StBFChain/BFC.C
BFC:ERROR - TSystem::ExpandFileName : input: $STAR_VERSION, output: $STAR_VERSION
QA :INFO  - ==============================================
QA :INFO  - ============= You are in $STAR_VERSION ===============
QA :INFO  - Requested chain bfc is :	P2021a,StiCA,EbyET0,BEmcChkStat,-hitfilt,QAalltrigs
QA :INFO  -  Invalid Option p2021a. !! ABORT !! 
BFC:FATAL - TUnixSystem::DispatchSignals : segmentation violation

Nevertheless, the status indicates that the test has passed successfully.
One solution would be to extend the test command with a check parsing the log file for "segmentation violation" and/or check for empty output files.

TTable incomplete type errors in ROOT6 tests

          There are errors in ROOT6 tests like this one:
In file included from Table_Cint dictionary payload:21:
LoadTable: .L /star-sw/StarDb/Geometry/tpc/tpcPadConfig.y2019.C
In file included from /star-sw/.sl79_gcc485/include/TGenericTable.h:8:
/star-sw/.sl79_gcc485/include/TTableDescriptor.h:25:33: error: base class has incomplete type
class TTableDescriptor : public TTable {
                         ~~~~~~~^~~~~~
/star-sw/.sl79_gcc485/include/TTable.h:48:7: note: definition of 'TTable' is not complete until the closing '}'
class TTable : public TDataSet {
      ^

It is likely because I removed the TTable from ROOT6.16 and the external star-table (https://github.com/star-bnl/star-table) from the environment hoping that StRoot/Table would provide the needed functionality. Clearly, it does not. Who is maintaining StRoot/Table?

Originally posted by @plexoos in #592 (comment)

StETofCalibMaker seg fault

It appears that several nightly test jobs, many for 2019 data, failed last night after the merging of PR #160 , in StEtofCalibMaker:

StETofCalibMaker:INFO  - change in reset TS: 0 --> 1484703964736
StETofCalibMaker:FATAL - TUnixSystem::DispatchSignals : segmentation violation
Function bfc() busy flag cleared

Look for example at:
/star/rcf/test/dev/daq_sl302.stica_opt/Fri/year_2019/production_14p5GeV_2019/st_physics_20112004_raw_2000001.log
Chain:

bfc.C(1000,"P2019a,StiCA,PicoVtxDefault,BEmcChkStat,OSpaceZ2,OGridLeakFull,-OPr13,OPr40,-hitfilt,QAalltrigs","st_physics_20112004_raw_2000001.daq"
)

The test DAQ file is on /star/rcf/test/daq

-Gene

File name conflict on macOS StRoot/RTS/include/FTP/FTPC_PADKEY.h

See this thread originally posted by @plexoos in #167 (comment)

The files with conflicting names on case insensitive systems are

./StRoot/RTS/include/FTP/ftpc_padkey.h
./StRoot/RTS/include/FTP/FTPC_PADKEY.h

ftpc_padkey.h was removed in ecfe0a0 then reintroduced in 62ac395 (#167) by reasoning that it is used by the online code. Indeed

$ grep -I -r 'ftpc_padkey.h' online/ OnlTools/ | grep '#include'
online/RTS/src/MZ/mzFmt.C:#include <FTP/ftpc_padkey.h>
online/RTS/src/SB/sbGainParser.C://#include <FTP/new_ftpc_padkey.h>
online/RTS/src/SB/sbGainParser.C:#include <FTP/ftpc_padkey.h>

On the other hand, FTPC_PADKEY.h appears to be a generated file

$ grep -I -r 'FTPC_PADKEY.h' online/ OnlTools/
online/ftpc/MapFtpcElectronicsToDaq/FtpcKeys.c:    fo = fopen("FTPC_PADKEY.h","w");
online/ftpc/MapFtpcElectronicsToDaq/Makefile:   rm -f FtpcKeys FTPC_PADKEY.h
online/ftpc/MapFtpcElectronicsToDaq/doc/FtpcElectronicsMapping.html:                             FTPC_PADKEY.h  - this is the file Tonko uses

The question is: Can we remove (or rename) 'FTPC_PADKEY.h'? @tonko-lj @jml985

AutoBuild fails at FastJuetFilter

After the merge of PR #315 , the nightly build failed with this error:

In file included from .sl73_gcc485/obj/StRoot/StarGenerator/FILT/FastJetFilter.cxx:1:0:
.sl73_gcc485/obj/StRoot/StarGenerator/FILT/FastJetFilter.h:14:32: fatal error: fastjet/PseudoJet.hh: No such file or directory
 #include <fastjet/PseudoJet.hh>
                                ^
compilation terminated.
 cons: *** [.sl73_gcc485/obj/StRoot/StarGenerator/FILT/FastJetFilter.o] Error 1 
cons: errors constructing .sl73_gcc485/obj/StRoot/StarGenerator/FILT/FastJetFilter.o

Within star-sw-root5-base:latest Container, Build Fails at pkg stic

Command was (within directory star-sw):

docker run -it --rm -v $PWD:/star-sw ghcr.io/star-bnl/star-sw-root5-base:latest /bin/bash -lc "cd star-sw && cons"

Result:

...
build root4star with cons
DEBUG -Wl,--whole-archive -Wl,-Bstatic -Wl,-z -Wl,muldefs -lstarsim -Wl,--no-whole-archive -Wl,-Bdynamic -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lGeom -lTable -lgeant321 -lgcalor /cern/pro/lib/libpawlib.a /cern/pro/lib/liblapack3.a /cern/pro/lib/libblas.a /cern/pro/lib/libpacklib.a /cern/pro/lib/libgraflib.a /cern/pro/lib/libgrafX11.a /cern/pro/lib/libpacklib.a /cern/pro/lib/libmathlib.a /cern/pro/lib/libkernlib.a -L/usr/X11R6/lib -lX11 -lnsl -lcrypt -ldl -Wl,--whole-archive -Wl,-Bstatic -Wl,-z -Wl,muldefs -lmysqlclient -lpthread -lm -lrt -ldl -Wl,--no-whole-archive -Wl,-Bdynamic -lgfortran -L/usr/X11R6/lib64 -lXt -lXpm -lX11 -lm -ldl -lrt -rdynamic -pthread
build stic with cons
DEBUG CXX_VERSION -- 4.8.5
Run Conscript-standard in pams/ctf for libctf_Tables
Run Conscript-standard in pams/ctf for St_ctf
Run Conscript-standard in pams/emc for libemc_Tables
Run Conscript-standard in pams/ftpc for libftpc_Tables
Run Conscript-standard in pams/gen for libgen_Tables
Run Conscript-standard in pams/geometry for libgeometry_Tables
Run Conscript-standard in pams/geometry for geometry
Run Conscript-standard in pams/geometry for geometryNoField
Run Conscript-standard in pams/global for libglobal_Tables
Run Conscript-standard in pams/l3 for l3
Run Conscript-standard in pams/sim for libsim_Tables
Run Conscript-standard in pams/sim/control for control
Run Conscript-standard in pams/sim/dig for dig
Run Conscript-standard in pams/sim/flux for flux
Run Conscript-standard in pams/sim/g2r for g2r
Run Conscript-standard in pams/sim/g2t for St_g2t
Run Conscript-standard in pams/sim/gstar for gstar
Run Conscript-standard in pams/svt for libsvt_Tables
Run Conscript in pams/tables for St_Tables
g++ -O2 -g -falign-loops -falign-jumps -falign-functions -m64 -Wl,-export-dynamic -Wl,-noinhibit-exec,-Bdynamic .sl88_gcc789/OBJ/asps/rexe/MAIN_rmain.o .sl88_gcc789/OBJ/asps/rexe/df.o .sl88_gcc789/OBJ/asps/rexe/root4star_Cint.o .sl88_gcc789/OBJ/asps/rexe/TGeant3/StarMC.o .sl88_gcc789/OBJ/asps/rexe/TGeant3/TGiant3.o .sl88_gcc789/OBJ/asps/rexe/TGeant3/gcadd.o .sl88_gcc789/OBJ/asps/rexe/TGeant3/galicef.o .sl88_gcc789/OBJ/asps/rexe/TGeant3/gcomad.o -L/opt/software/linux-scientific7-x86_64/gcc-4.8.5/root-5.34.38-elvjk6rx43niicd6jxqj2uzxzth7vng2/lib -L.sl88_gcc789/LIB -L/opt/software/linux-scientific7-x86_64/gcc-4.8.5/root-5.34.38-elvjk6rx43niicd6jxqj2uzxzth7vng2/lib -L/opt/software/linux-scientific7-x86_64/gcc-4.8.5/mysql-5.7.27-pfyt3fwtkubcc5eazmoqfick3lgp67mf/lib -L/opt/software/lib -L/opt/software/linux-scientific7-x86_64/gcc-4.8.5/mysql-5.7.27-pfyt3fwtkubcc5eazmoqfick3lgp67mf/lib -Wl,--whole-archive -Wl,-Bstatic -Wl,-z -Wl,muldefs -lstarsim -Wl,--no-whole-archive -Wl,-Bdynamic -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lGeom -lTable -lgeant321 -lgcalor /cern/pro/lib/libpawlib.a /cern/pro/lib/liblapack3.a /cern/pro/lib/libblas.a /cern/pro/lib/libpacklib.a /cern/pro/lib/libgraflib.a /cern/pro/lib/libgrafX11.a /cern/pro/lib/libpacklib.a /cern/pro/lib/libmathlib.a /cern/pro/lib/libkernlib.a -L/usr/X11R6/lib -lX11 -lnsl -lcrypt -ldl -Wl,--whole-archive -Wl,-Bstatic -Wl,-z -Wl,muldefs -lmysqlclient -lpthread -lm -lrt -ldl -Wl,--no-whole-archive -Wl,-Bdynamic -lgfortran -L/usr/X11R6/lib64 -lXt -lXpm -lX11 -lm -ldl -lrt -rdynamic -pthread -o .sl88_gcc789/OBJ/asps/rexe/root4star
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: cannot find -ldl
collect2: error: ld returned 1 exit status
cons: *** [.sl88_gcc789/OBJ/asps/rexe/root4star] Error 1
cons: errors constructing .sl88_gcc789/OBJ/asps/rexe/root4star

However, all libraries are present in container. For example:

$> docker run -it --rm -v $PWD:/star-sw ghcr.io/star-bnl/star-sw-root5-base:latest /bin/bash -lc "cd star-sw && bash"
[root@b1bdb971190f star-sw]# ll /lib64/libpthread*

-rwxr-xr-x 1 root root 142144 Apr 27 2021 /lib64/libpthread-2.17.so
-rw-r--r-- 1 root root 1764 Apr 27 2021 /lib64/libpthread_nonshared.a
-rw-r--r-- 1 root root 222 Apr 27 2021 /lib64/libpthread.so
lrwxrwxrwx 1 root root 18 Jul 6 13:03 /lib64/libpthread.so.0 -> libpthread-2.17.so

[root@b1bdb971190f star-sw]# ll /lib64/librt*

-rwxr-xr-x 1 root root 43712 Apr 27 2021 /lib64/librt-2.17.so
lrwxrwxrwx 1 root root 22 Jul 27 14:17 /lib64/librt.so -> ../../lib64/librt.so.1
lrwxrwxrwx 1 root root 13 Jul 6 13:03 /lib64/librt.so.1 -> librt-2.17.so

[root@b1bdb971190f star-sw]# ll /lib64/libdl*

-rwxr-xr-x 1 root root 19248 Apr 27 2021 /lib64/libdl-2.17.so
lrwxrwxrwx 1 root root 22 Jul 27 14:17 /lib64/libdl.so -> ../../lib64/libdl.so.2
lrwxrwxrwx 1 root root 13 Jul 6 13:03 /lib64/libdl.so.2 -> libdl-2.17.so

Error due to ambiguous ostrstream while running bfc.C in ROOT6

When I try to run one of our tests in ROOT6 environment I get the following error:

Processing bfc.C(10, "pp2017,StiCA,btof,mtd,pp2pp,fmsDat,fmsPoint,fpsDat,BEmcChkStat,QAalltrigs,CorrX,OSpaceZ2,OGridLeak3D,-hitfilt", "/star-test-data/quick/st_physics_18069061_raw_2000021.daq")...
In file included from input_line_37:1:
In file included from /star-sw/StRoot/macros/bfc.C:19:
In file included from /star-sw/.sl88_gcc789/include/StBFChain.h:22:
In file included from /star-sw/.sl88_gcc789/include/StChain.h:22:
In file included from /star-sw/.sl88_gcc789/include/StMaker.h:26:
/star-sw/.sl88_gcc789/include/StMessMgr.h:108:26: error: reference to 'ostrstream' is ambiguous
class StMessMgr : public ostrstream {
                         ^
/star-sw/.sl88_gcc789/include/Stsstream.h:15:7: note: candidate found by name lookup is 'ostrstream'
class ostrstream : public std::ostringstream {
      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/backward/strstream:143:9: note: candidate found by name lookup is 'std::ostrstream'
  class ostrstream : public basic_ostream<char>

Any suggestions how to fix this? @perevbnlgov @klendathu2k

PR #295 and StTriggerSimuMaker causing crashes

I had added notes at the end of PR #295 after its merger, but seeing that it is affecting CI tests on github, it's definitely a widespread issue that needs documented beyond that PR.

Many jobs, including FastOffline jobs in DEV, are crashing with PR #295 in place. Here is the message seen:

StTriggerSimuMaker:INFO  - runNumber=23032031 with DB timestamp 2022-02-01 16:59:15
root4star: .sl73_gcc485/OBJ/StRoot/StTriggerUtilities/Eemc/StEemcTriggerSimu.cxx:737: void StEemcTriggerSimu::getEemcFeeMask(): Assertion `mDbE' failed.

And here is a simple way to reproduce the issue interactively:

root4star -b -q -l 'bfc.C(4,"pp2022,StiCA,BEmcChkStat,epdhit,-hitfilt,-evout,-fcsCluster,-fcsPoint","/gpfs01/star/daq/2022/032/23032031/st_physics_adc_23032031_raw_6500079.daq")'

The FastOffline data is failing for 2022 data, and the CI job that I see failing is for 2021 data. I'm unsure for earlier data (the other CI test jobs I've seen were cancelled). Just speculating, but I wouldn't be surprised if the issue is that a database table needed for StTriggerSimuMaker to work does not have records for recent years when there was no EEMC in BES-II data (and hasn't been updated for Run 22). As I noted in PR #295 , maintenance may be a larger concern for StTriggerSimuMaker inclusion in production chains.

As a sidenote, I have backed most of PR #295 out of DEV to get it functioning again last night. For now, DEV is not synchronized with the main branch of star-sw on github.

-Gene

StarGeometry compilation fail

PR #202 broke the DEV AutoBuild tonight:

.sl73_gcc485/OBJ/StarVMC/StarGeometry/BbcmGeo.cxx: In member function 'virtual void BBCMGEO::BPOL::Block(AgCreate)':
.sl73_gcc485/OBJ/StarVMC/StarGeometry/BbcmGeo.cxx:516:33: error: 'class AgModule' has no member named 'AddCut'
                       module()-&gt;AddCut(active()-&gt;GetName(),"cutgam",0.00008);           
                                 ^
.sl73_gcc485/OBJ/StarVMC/StarGeometry/BbcmGeo.cxx:517:33: error: 'class AgModule' has no member named 'AddCut'
                       module()-&gt;AddCut(active()-&gt;GetName(),"cutele",0.001);           
                                 ^
...

Undeclared detector identifiers from StEvent's 'enum StDetectorId'

In the ROOT6 test jobs we see the following errors which, I believe, are related to the call of detectorNameById() in StiStEventFiller::fillEvent()

const char *det = detectorNameById((StDetectorId)ij);

Although detectorId(int*, char**) is now compiled (#440) there is still a call to the ROOT6 "interpreter" inside that function that may be the reason for the observed errors.

int id = gROOT->ProcessLineFast(com);

I can't think of a better way to address this issue but to refactor the detectorId() function with a swith case for enum to string as suggested in #440 (comment)

Expand to see error messages
input_line_740:2:2: error: use of undeclared identifier 'kUnknownId'
StEvent Error Summary:
 kUnknownId
 ^
   0 -       0(   0)
   1 -      21(  27) //mFlag: is Negative
input_line_741:2:2: error: use of undeclared identifier 'kTpcId'
 kTpcId
 ^
input_line_742:2:2: error: use of undeclared identifier 'kSvtId'
 kSvtId
 ^
input_line_743:2:2: error: use of undeclared identifier 'kRichId'
 kRichId
 ^
input_line_744:2:2: error: use of undeclared identifier 'kFtpcWestId'
 kFtpcWestId
 ^
input_line_745:2:2: error: use of undeclared identifier 'kFtpcEastId'
 kFtpcEastId
 ^
input_line_746:2:2: error: use of undeclared identifier 'kTofId'
 kTofId
 ^
input_line_747:2:2: error: use of undeclared identifier 'kBTofId'
 kBTofId
 ^
input_line_748:2:2: error: use of undeclared identifier 'kCtbId'
 kCtbId
 ^
input_line_749:2:2: error: use of undeclared identifier 'kSsdId'
 kSsdId
 ^
input_line_750:2:2: error: use of undeclared identifier 'kBarrelEmcTowerId'
 kBarrelEmcTowerId
 ^
input_line_751:2:2: error: use of undeclared identifier 'kBarrelEmcPreShowerId'
 kBarrelEmcPreShowerId
 ^
input_line_752:2:2: error: use of undeclared identifier 'kBarrelSmdEtaStripId'
 kBarrelSmdEtaStripId
 ^
input_line_753:2:2: error: use of undeclared identifier 'kBarrelSmdPhiStripId'
 kBarrelSmdPhiStripId
 ^
input_line_754:2:2: error: use of undeclared identifier 'kEndcapEmcTowerId'
 kEndcapEmcTowerId
 ^
input_line_755:2:2: error: use of undeclared identifier 'kEndcapEmcPreShowerId'
 kEndcapEmcPreShowerId
 ^
input_line_756:2:2: error: use of undeclared identifier 'kEndcapSmdUStripId'
 kEndcapSmdUStripId
 ^
input_line_757:2:2: error: use of undeclared identifier 'kEndcapSmdVStripId'
 kEndcapSmdVStripId
 ^
input_line_758:2:2: error: use of undeclared identifier 'kZdcWestId'
 kZdcWestId
 ^
input_line_759:2:2: error: use of undeclared identifier 'kZdcEastId'
 kZdcEastId
 ^
input_line_760:2:2: error: use of undeclared identifier 'kMwpcWestId'
 kMwpcWestId
 ^
input_line_761:2:2: error: use of undeclared identifier 'kMwpcEastId'
 kMwpcEastId
 ^
input_line_762:2:2: error: use of undeclared identifier 'kTpcSsdId'
 kTpcSsdId
 ^
input_line_763:2:2: error: use of undeclared identifier 'kTpcSvtId'
 kTpcSvtId
 ^
input_line_764:2:2: error: use of undeclared identifier 'kTpcSsdSvtId'
 kTpcSsdSvtId
 ^
input_line_765:2:2: error: use of undeclared identifier 'kSsdSvtId'
 kSsdSvtId
 ^
input_line_766:2:2: error: use of undeclared identifier 'kPhmdCpvId'
 kPhmdCpvId
 ^
input_line_767:2:2: error: use of undeclared identifier 'kPhmdId'
 kPhmdId
 ^
input_line_768:2:2: error: use of undeclared identifier 'kPxlId'
 kPxlId
 ^
input_line_769:2:2: error: use of undeclared identifier 'kIstId'
 kIstId
 ^
input_line_770:2:2: error: use of undeclared identifier 'kFgtId'
 kFgtId
 ^
input_line_771:2:2: error: use of undeclared identifier 'kEtrId'
 kEtrId
 ^
input_line_772:2:2: error: use of undeclared identifier 'kFpdWestId'
 kFpdWestId
 ^
input_line_773:2:2: error: use of undeclared identifier 'kFpdEastId'
 kFpdEastId
 ^
input_line_774:2:2: error: use of undeclared identifier 'kFmsId'
 kFmsId
 ^
input_line_775:2:2: error: use of undeclared identifier 'kRpsId'
 kRpsId
 ^
input_line_776:2:2: error: use of undeclared identifier 'kMtdId'
 kMtdId
 ^
input_line_777:2:2: error: use of undeclared identifier 'kSstId'
 kSstId
 ^
input_line_778:2:2: error: use of undeclared identifier 'kGmtId'
 kGmtId
 ^
input_line_779:2:2: error: use of undeclared identifier 'kFtsId'
 kFtsId
 ^
input_line_780:2:2: error: use of undeclared identifier 'kiTpcId'
 kiTpcId
 ^
input_line_781:2:2: error: use of undeclared identifier 'kETofId'
 kETofId
 ^
input_line_782:2:2: error: use of undeclared identifier 'kFcsWcalId'
 kFcsWcalId
 ^
input_line_783:2:2: error: use of undeclared identifier 'kFcsHcalId'
 kFcsHcalId
 ^
input_line_784:2:2: error: use of undeclared identifier 'kFcsPresId'
 kFcsPresId
 ^
input_line_785:2:2: error: use of undeclared identifier 'kFttId'
 kFttId
 ^
input_line_786:2:2: error: use of undeclared identifier 'kFstId'
 kFstId
 ^
input_line_787:2:2: error: use of undeclared identifier 'kMaxDetectorId'
 kMaxDetectorId
 ^
0 = kUnknownId
0 = kTpcId
0 = kSvtId
0 = kRichId
0 = kFtpcWestId
0 = kFtpcEastId
0 = kTofId
0 = kBTofId
0 = kCtbId
0 = kSsdId
0 = kBarrelEmcTowerId
0 = kBarrelEmcPreShowerId
0 = kBarrelSmdEtaStripId
0 = kBarrelSmdPhiStripId
0 = kEndcapEmcTowerId
0 = kEndcapEmcPreShowerId
0 = kEndcapSmdUStripId
0 = kEndcapSmdVStripId
0 = kZdcWestId
0 = kZdcEastId
0 = kMwpcWestId
0 = kMwpcEastId
0 = kTpcSsdId
0 = kTpcSvtId
0 = kTpcSsdSvtId
0 = kSsdSvtId
0 = kPhmdCpvId
0 = kPhmdId
0 = kPxlId
0 = kIstId
0 = kFgtId
0 = kEtrId
0 = kFpdWestId
0 = kFpdEastId
0 = kFmsId
0 = kRpsId
0 = kMtdId
0 = kSstId
0 = kGmtId
0 = kFtsId
0 = kiTpcId
0 = kETofId
0 = kFcsWcalId
0 = kFcsHcalId
0 = kFcsPresId
0 = kFttId
0 = kFstId
0 = kMaxDetectorId

https://github.com/star-bnl/star-sw/actions/runs/3584685141/jobs/6033757193#step:5:2757

root4star/CINT spends hours hammering AFS on exit

I was checking on jobs that would take hours to complete. I've discovered that they were making an excessive amount stat64 system calls on AFS, and, on some of the nodes, each would take a fraction of a second to complete.

Basic steps to reproduce

# cat bug.C
void bug() {
   gSystem->Load("libsim_Tables.so");
}
# csh -c "starver SL21b; strace root4star -l -b -q bug.C" 2>&1 | grep stat64 | grep libsim | wc -l
1944

This demonstrates that root has made 1944 (and actually twice of that) stat64() calls just to unload a single library. The issue comes from a G__matchfilename() function
https://github.com/root-project/root/blob/250a360349e60dc2dc187ecaa63fc9f5f81a9d74/cint/cint/src/loadfile.cxx#L585-L586
when called in a loop from G__unregister_sharedlib()
https://github.com/root-project/root/blob/250a360349e60dc2dc187ecaa63fc9f5f81a9d74/cint/cint/src/loadfile.cxx#L3164-L3170

The idea behind the complication in G__matchfilename() is to check if some different paths could point to the same file (in case there are symlinks or bind mounts?). Based on that information, the G__unregister_sharedlib() may choose to free some memory, which does not matter at all in the end of program's lifecycle.

StFcsMIPMaker doesn't compile on main branch

Steps to reproduce

On RACF run:

git clone https://github.com/star-bnl/star-sw.git
cd star-sw
git checkout d660bf34b885496c2a36c5ef6f709a96b02cbe49
env -i PATH=$PWD/mgr:$PATH QTDIR=/usr/lib64/qt-3.3 QTINC=/usr/lib64/qt-3.3/include QTLIB=/usr/lib64/qt-3.3/lib CERN_LEVEL=pro CERN=/cern CERN_ROOT=/cern/pro ROOTSYS=/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb ROOT=/afs/rhic.bnl.gov/star/ROOT ROOT_LEVEL=5.34.38 STAR_SYS=x8664_sl7 STAR_HOST_SYS=sl73_gcc485 OPTSTAR=/opt/star/sl73_gcc485 XOPTSTAR=/afs/rhic.bnl.gov/opt/star/sl73_gcc485 STAR_ROOT=/afs/rhic.bnl.gov/star STAR=/nowhere sh -c '. $ROOTSYS/bin/thisroot.sh; exec cons'

Observe:

g++ -m32 -fPIC -pipe -Wall -Woverloaded-virtual -std=c++0x -Wno-long-long -pthread -g -Dsl73_gcc485 -D__ROOT__ -DNEW_DAQ_READER -I. -IStRoot -I.sl73_gcc485/include -I/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/include -c .sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx -o .sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.o
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx: In member function 'virtual Int_t StFcsMIPMaker::Init()':
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:45:32: error: 'class StFcsDbMaker' has no member named 'readPedFromText'
       if(mPedSub>0) mFcsDbMkr->readPedFromText();
                                ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:51:53: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
       char* nameEHP[kFcsEHP] = {"Ecal","Hcal","Pres"};
                                                     ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:51:53: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:51:53: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:52:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
       char* nameNS[kFcsNorthSouth] = {"N","S"};
                                              ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:52:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:60:23: error: 'class StFcsDbMaker' has no member named 'northSouth'
  int ns  = mFcsDbMkr->northSouth(det);
                       ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:61:23: error: 'class StFcsDbMaker' has no member named 'ecalHcalPres'
  int ehp = mFcsDbMkr->ecalHcalPres(det);
                       ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:62:31: error: 'class StFcsDbMaker' has no member named 'maxId'
        int maxid = mFcsDbMkr->maxId(det);
                               ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:70:15: error: 'class StFcsDbMaker' has no member named 'getDepfromId'
    mFcsDbMkr->getDepfromId(det,id,ehp2,ns2,crt,sub,dep,ch);
               ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx: In member function 'virtual Int_t StFcsMIPMaker::Make()':
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:145:33: error: 'class StFcsDbMaker' has no member named 'getStarXYZfromColumnRow'
  StThreeVectorF xyzE=mFcsDbMkr->getStarXYZfromColumnRow(1,clusterE->x(),clusterE->y());
                                 ^
.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.cxx:163:37: error: 'class StFcsDbMaker' has no member named 'getStarXYZfromColumnRow'
      StThreeVectorF xyzH=mFcsDbMkr->getStarXYZfromColumnRow(3,clusterH->x(),clusterH->y());
                                     ^
cons: *** [.sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.o] Error 1
cons: errors constructing .sl73_gcc485/obj/StRoot/StSpinPool/StFcsMIPMaker/StFcsMIPMaker.o

Expected result

Everything compiles without errors

cc @akioogawa

Assert in Y2000 real data nightly tests

As reported in the status of DEV nightly test jobs...
https://www.star.bnl.gov/devcgi/weekDEVjobStatus.pl
...Three Y2000 real data tests have been crashing with asserts since 2021-10-29:

...
StiMaker:INFO - StiMasterHitLoader::loadEvent() - TpcHitLoader loaded 99638 hits
StiDetectorContainer::begin() -I- size:540
root4star: .sl73_gcc485/obj/StRoot/Sti/StiKalmanTrackFinder.cxx:463: void StiKalmanTrackFinder::find(StiKalmanTrack*, int, StiKalmanTrackNode*, StiKalmanTrackFinder::QAFind&): Assertion `mEventPerm>=0 && "FATAL::TOO MANY permutations"' failed.

To reproduce:
root4star -b -q -l 'bfc.C(100,"p2000,VFMinuit,logger,CMuDst,NosvtIT,NossdIT","st_physics_1229021_raw_0003.daq")'

DAQ file is here:
/star/rcf/test/daq/2000/08/st_physics_1229021_raw_0003.daq

-Gene

AutoBuild fails after merging #48

Gene reported:

Looks like this change (816f589) broke the nightly build:
https://www.star.bnl.gov/public/comp/prod/Sanity/AutoBuild.html

.sl73_gcc485/OBJ/StRoot/StarGenerator/StarLight/StarLightGen.o: In functionStarGenerator::FillUser(StarGenEvent*)':
/afs/.rhic.bnl.gov/star/packages/release32/gitdev/.sl73_gcc485/OBJ/StRoot/StarGenerator/StarLight/StarLightGen.cxx:19: multiple definition of rndm_' .sl73_gcc485/OBJ/StRoot/StarGenerator/StarLight/StarLight.o:/afs/.rhic.bnl.gov/star/packages/release32/gitdev/.sl73_gcc485/OBJ/StRoot/StarGenerator/StarLight/StarLight.cxx:19: first defined here collect2: error: ld returned 1 exit status

TPCCATracker requires [email protected] incompatible with ROOT >= 6.16

In the STAR environment, utilizing ROO6 provided by [email protected], we currently default to loading [email protected]. This choice aligns with the requirement that ROOT >= 6.16 can be compiled against this version. To address issues encountered when building star-sw on SDCC nodes, we have introduced a straightforward solution: the loading of the vc-0.7.4 module into the environment. This resolution has been implemented and documented in issue #586.

Upon conducting further investigation, it has come to my attention that Vc is neither a mandatory nor recommended dependency for ROOT6. In fact, ROOT6 is typically constructed without Vc support, with the vdt library serving as the primary provider of fast vectorized mathematical functions. Given these findings, I recommend that we eliminate the ROOT6 dependency on Vc in the upcoming STAR environment revision.

The packages requiring the old version of Vc are: TPCCATracker and kfparticle

Memory leak in StFstClusterMaker

Processing 500 Run 22 pp500 events in valgrind without TPC, just the FWD detector makers, I get 2 definite memory leaks and 2 possible memory leaks, shown below.

Here is the chain I ran. This took ~1 hour outside valgrind and ~2 hours inside valgrind. Fewer events would probably be fine to show the problems if you want to run it faster.

setup 64b
stardev
nohup valgrind --leak-check=full root4star -b -q -l 'bfc.C(500,"DbV20230818 pp2022a -btof -mtd -eventqa -emcDY2 -TpcHitMover -ittf -tpx -tpc Notpc_daq fst ftt fstRawHit -picoEvt -picoDst -picoWrite -picoVtxDefault -picoCovMtxWrite -trgSimu BEmcChkStat evout -hitfilt","/star/data03/daq/2022/036/23036001/FTEST/st_physics_23036001_raw_5000040.daq")' >& log &

Thanks
-Gene

==26363== 2,621,528 bytes in 46,813 blocks are definitely lost in loss record 278,294 of 278,315
==26363== at 0x76AD203: operator new(unsigned long) (vg_replace_malloc.c:334)
==26363== by 0x7E01968: TStorage::ObjectAlloc(unsigned long) (TStorage.cxx:325)
==26363== by 0x297D875C: operator new (TObject.h:156)
==26363== by 0x297D875C: StFstScanRadiusClusterAlgo::doClustering(StFstCollection const&, StFstRawHitCollection&, StFstClusterCollection&) (StFstScanRadiusClusterAlgo.cxx:55)
==26363== by 0x297D840F: StFstIClusterAlgo::doClustering(StFstCollection&) (StFstIClusterAlgo.cxx:25)
==26363== by 0x297D7AF3: StFstClusterMaker::Make() (StFstClusterMaker.cxx:59)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F0E4E7: StChain::EventLoop(int, int, StMaker*) (StChain.cxx:206)
==26363== by 0x14F28988: G__StChain_Cint_552_0_9(G__value*, char const*, G__param*, int) (in /afs/rhic.bnl.gov/star/packages/release32/gitdev/.sl73_x8664_gcc485/OBJ/StRoot/StChain/StChain.so)
==26363== by 0x83B44DC: Cint::G__ExceptionWrapper(int ()(G__value, char const*, G__param*, int), G__value*, char*, G__param*, int) (Api.cxx:393)
==26363== by 0x82BCF26: G__execute_call (newlink.cxx:2408)
==26363== by 0x82BD2E4: G__call_cppfunc (newlink.cxx:2612)

...and...

==26363== 1,513,008 bytes in 21,014 blocks are definitely lost in loss record 278,281 of 278,315
==26363== at 0x76AD203: operator new(unsigned long) (vg_replace_malloc.c:334)
==26363== by 0x7E01968: TStorage::ObjectAlloc(unsigned long) (TStorage.cxx:325)
==26363== by 0x297D8B81: operator new (TObject.h:156)
==26363== by 0x297D8B81: StFstScanRadiusClusterAlgo::doClustering(StFstCollection const&, StFstRawHitCollection&, StFstClusterCollection&) (StFstScanRadiusClusterAlgo.cxx:140)
==26363== by 0x297D840F: StFstIClusterAlgo::doClustering(StFstCollection&) (StFstIClusterAlgo.cxx:25)
==26363== by 0x297D7AF3: StFstClusterMaker::Make() (StFstClusterMaker.cxx:59)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F0E4E7: StChain::EventLoop(int, int, StMaker*) (StChain.cxx:206)
==26363== by 0x14F28988: G__StChain_Cint_552_0_9(G__value*, char const*, G__param*, int) (in /afs/rhic.bnl.gov/star/packages/release32/gitdev/.sl73_x8664_gcc485/OBJ/StRoot/StChain/StChain.so)
==26363== by 0x83B44DC: Cint::G__ExceptionWrapper(int ()(G__value, char const*, G__param*, int), G__value*, char*, G__param*, int) (Api.cxx:393)
==26363== by 0x82BCF26: G__execute_call (newlink.cxx:2408)
==26363== by 0x82BD2E4: G__call_cppfunc (newlink.cxx:2612)

...and...

==26363== 724,864 bytes in 12,944 blocks are possibly lost in loss record 278,256 of 278,315
==26363== at 0x76AD203: operator new(unsigned long) (vg_replace_malloc.c:334)
==26363== by 0x7E01968: TStorage::ObjectAlloc(unsigned long) (TStorage.cxx:325)
==26363== by 0x297D875C: operator new (TObject.h:156)
==26363== by 0x297D875C: StFstScanRadiusClusterAlgo::doClustering(StFstCollection const&, StFstRawHitCollection&, StFstClusterCollection&) (StFstScanRadiusClusterAlgo.cxx:55)
==26363== by 0x297D840F: StFstIClusterAlgo::doClustering(StFstCollection&) (StFstIClusterAlgo.cxx:25)
==26363== by 0x297D7AF3: StFstClusterMaker::Make() (StFstClusterMaker.cxx:59)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F0E4E7: StChain::EventLoop(int, int, StMaker*) (StChain.cxx:206)
==26363== by 0x14F28988: G__StChain_Cint_552_0_9(G__value*, char const*, G__param*, int) (in /afs/rhic.bnl.gov/star/packages/release32/gitdev/.sl73_x8664_gcc485/OBJ/StRoot/StChain/StChain.so)
==26363== by 0x83B44DC: Cint::G__ExceptionWrapper(int ()(G__value, char const*, G__param*, int), G__value*, char*, G__param*, int) (Api.cxx:393)
==26363== by 0x82BCF26: G__execute_call (newlink.cxx:2408)
==26363== by 0x82BD2E4: G__call_cppfunc (newlink.cxx:2612)

...and...

==26363== 615,384 bytes in 8,547 blocks are possibly lost in loss record 278,249 of 278,315
==26363== at 0x76AD203: operator new(unsigned long) (vg_replace_malloc.c:334)
==26363== by 0x7E01968: TStorage::ObjectAlloc(unsigned long) (TStorage.cxx:325)
==26363== by 0x297D8B81: operator new (TObject.h:156)
==26363== by 0x297D8B81: StFstScanRadiusClusterAlgo::doClustering(StFstCollection const&, StFstRawHitCollection&, StFstClusterCollection&) (StFstScanRadiusClusterAlgo.cxx:140)
==26363== by 0x297D840F: StFstIClusterAlgo::doClustering(StFstCollection&) (StFstIClusterAlgo.cxx:25)
==26363== by 0x297D7AF3: StFstClusterMaker::Make() (StFstClusterMaker.cxx:59)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F1309E: StMaker::Make() (StMaker.cxx:937)
==26363== by 0x14F0E4E7: StChain::EventLoop(int, int, StMaker*) (StChain.cxx:206)
==26363== by 0x14F28988: G__StChain_Cint_552_0_9(G__value*, char const*, G__param*, int) (in /afs/rhic.bnl.gov/star/packages/release32/gitdev/.sl73_x8664_gcc485/OBJ/StRoot/StChain/StChain.so)
==26363== by 0x83B44DC: Cint::G__ExceptionWrapper(int ()(G__value, char const*, G__param*, int), G__value*, char*, G__param*, int) (Api.cxx:393)
==26363== by 0x82BCF26: G__execute_call (newlink.cxx:2408)
==26363== by 0x82BD2E4: G__call_cppfunc (newlink.cxx:2612)

root4star crashes in StTofUtil/StTofrGeometry on 2008 data

Describe the bug

root4star segfaults on test 20. The log file from the failed test in #415 is at https://github.com/star-bnl/star-sw/actions/runs/3339378794/jobs/5530154347

Program received signal SIGSEGV, Segmentation fault.
StTofrGeometry::InitFromStar (this=this@entry=0xb999cd0, starHall=starHall@entry=0xbc38220) at .sl79_gcc485/OBJ/StRoot/StTofUtil/StTofrGeometry.cxx:1290
1290        if ( trayVolume->GetListSize() ) {

Test 20 parameters are:

star-sw/tests/joblist.json

Lines 182 to 190 in 10774c5

{
"jobid": "20",
"descr": "dAu 200GeV run 2008",
"chopts": "DbV20080712,P2008,ITTF,OSpaceZ2,OGridLeak3D,beamLine",
"inpfile": "st_physics_8352025_raw_1030011.daq",
"inppath": "/star/rcf/test/daq/2007/352",
"outpath": "/star/rcf/test/dev/daq_sl302.ittf/${thisday}/year_2008/production_dAu2008",
"nevents": "400"
},

To Reproduce

root4star -b -q -l 'bfc.C(40, "DbV20080712,P2008,ITTF,OSpaceZ2,OGridLeak3D,beamLine", "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq")'

Expected behavior

No segmentation fault

PicoDst causing slowness in reconstruction chains

It's been reported (Gene, Lidia) that PicoDst code changes between SL21a and SL21b have caused reconstruction chains to become increasingly slower over the processing of hundreds of events. To reproduce the problem one can use the following command:

root4star -b -q -l 'bfc.C(1000,"DbV20210417 P2019a StiCA -beamline3D btof BEmcChkStat CorrY -OPr13 evout PicoVtxVpd PicoCovMtxWrite -hitfilt","/star/data03/daq/2019/087/20087007/st_physics_20087007_raw_2000001.daq")'

OnlTools fails to compile

ROOT6 build fails with the following error:

https://github.com/star-bnl/star-sw/pull/101/checks?check_run_id=3323463324#step:3:6961

#21 263.0 In file included from OnlTools/Jevp/StJevpPlot/JevpPlot.h:5:0,
#21 263.0                  from OnlTools/Jevp/StJevpPlot/JevpPlotSet.h:12,
#21 263.0                  from .sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.h:8,
#21 263.0                  from .sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.cxx:4:
#21 263.0 /opt/software/linux-scientific7-x86_64/gcc-4.8.5/root-6.16.00-zmcilzuttugwi3pxlrrp5r3ztoh544sn/include/TH1.h: In copy constructor 'PlotHisto::PlotHisto(const PlotHisto&)':
#21 263.0 /opt/software/linux-scientific7-x86_64/gcc-4.8.5/root-6.16.00-zmcilzuttugwi3pxlrrp5r3ztoh544sn/include/TH1.h:124:4: error: 'TH1::TH1(const TH1&)' is private
#21 263.0     TH1(const TH1&);
#21 263.0     ^
#21 263.0 In file included from OnlTools/Jevp/StJevpPlot/JevpPlotSet.h:12:0,
#21 263.0                  from .sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.h:8,
#21 263.0                  from .sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.cxx:4:
#21 263.0 OnlTools/Jevp/StJevpPlot/JevpPlot.h:26:28: error: within this context
#21 263.0   histo = new TH1(*(x.histo));
#21 263.0                             ^
#21 263.2 cons: *** [.sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.o] Error 1
#21 263.2 cons: errors constructing .sl88_gcc789/OBJ/OnlTools/Jevp/StJevpBuilders/JevpBuilder.o

Indeed, the copy constructor TH1::TH1(const TH1&) is declared private in ROOT6.16 https://root.cern/doc/v616/classTH1.html#a82f16fb9b9a11c97f1c9177e9e996fc7

Replacing sys/types.h with stdint.h

This is a tracking issue to replace non-standard types with types defined in the ISO C and C++ standards. Specifically, the following:

  • u_char, u_short, u_int -> uint8_t, uint16_t, uint32_t
  • ushort, uint, ulong -> unsigned short, unsigned int, unsigned long

The ultimate goal is to get rid of unnecessary includes of sys/types.h. This will help with ROOT5 being incompatible with the newest versions of libc (see https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/science/misc/root/purify_include_paths_root5.patch for an alternative solution).

  • StRoot/Stv* (#211)
  • StRoot/StTriggerUtilities (#212)
  • StRoot/StSpinPool (#224)
  • StRoot/RTS (#225)
  • OnlTools (#225)
  • StRoot/St{,E}Emc*
  • StRoot/StDb*
  • StRoot/StDaqLib, StRoot/StDAQMaker
  • StRoot/StGenericVertexMaker
  • #234
  • Disable _BSD_SOURCE?

root4star/St_geant_Maker deadlocks on SIGSEGV in malloc

I found some jobs sleeping with the following backtrace:

#0  0x55636430 in __kernel_vsyscall ()
#1  0x5845bdc2 in __lll_lock_wait_private () from /lib/libc.so.6
#2  0x583d1cc5 in _L_lock_13657 () from /lib/libc.so.6
#3  0x583cf181 in malloc () from /lib/libc.so.6
#4  0x580a93f5 in ?? () from /lib/libgfortran.so.3
#5  0x58149b3a in ?? () from /lib/libgfortran.so.3
#6  0x58158290 in ?? () from /lib/libgfortran.so.3
#7  0x087265ca in traceq (lunp=@0xffdb195c: 0, lev=@0xffdb1958: 99)
    at /build/LCG/work/cernlib/2006/src/packlib/kernlib/kerngen/tcgen/traceq.F:25
#8  0x0868d0e5 in signal_handler (sig=11) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kienbr.c:182
#9  <signal handler called>
#10 0x583cb708 in malloc_consolidate () from /lib/libc.so.6
#11 0x583cc289 in _int_free () from /lib/libc.so.6
#12 0x5829897f in operator delete(void*) () from /lib/libstdc++.so.6
#13 0x590cbe8d in StMemoryPool::~StMemoryPool (this=0x5f4e3b30 <StTpcHit::mPool>, __in_chrg=<optimized out>)
    at .sl73_gcc485/obj/StRoot/StarClassLibrary/StMemoryPool.cc:33
#14 0x58388669 in __run_exit_handlers () from /lib/libc.so.6
#15 0x583886cd in exit () from /lib/libc.so.6
#16 0x5589644a in TUnixSystem::Exit (this=0x9c62250, code=0, mode=true) at core/unix/src/TUnixSystem.cxx:1987
#17 0x57272e61 in TRint::Terminate (this=0x9ca6fb8, status=0) at core/rint/src/TRint.cxx:598
#18 0x57274174 in TRint::Run (this=0x9ca6fb8, retrn=false) at core/rint/src/TRint.cxx:385
#19 0x080946e3 in main (argc=1, argv=0xffdb4af4) at .sl73_gcc485/obj/asps/rexe/MAIN_rmain.cxx:32

The traceq is a part of kumac's signal handler. It's only implemented for HP-UX and VAX.
https://github.com/apc-llc/cernlib/blob/master/2006/src/packlib/kernlib/kerngen/tcgen/traceq.F
Specifically the line 25 is an innocent write https://github.com/apc-llc/cernlib/blob/6e32ba8132318864a244021366708ddbdbebf8ea/2006/src/packlib/kernlib/kerngen/tcgen/traceq.F#L25
However inside the GNU Fortran runtime library is tries to malloc, which in turn tries to acquire a lock on a mutex, which is a big no-no to do in a signal handler (they come asynchronously and if mutex is already locked, all threads will deadlock if signal handler tries to lock it again).

Steps to reproduce

I don't have a reproducer for the deadlock (that probably requires setting a crash in the memory allocator), but I know why the signal handler is hijacked.

# cat bug.C
void bug(int do_segfault=0) {
   gROOT->LoadMacro("bfc.C");
   Load();
   StChain *chain = new StChain("foo");
   bfc(-1, "gstar", NULL);
   chain->Init();
   if (do_segfault) {
     int *i = NULL;
     *i;
   }
}

This prints the familiar message:

# csh -c "starver SL21c; root4star -l -b -q bug.C'(1)'"
<snip>
 *** Break *** Segmentation violation
 Traceq lun = 0, level = 99 

 TRACEQ.  In-line trace-back still not available.
Signal 11 caught without longjmp target

After looking at the cernlib's code, it appears that ku_trap is responsible for setting the handler
( https://github.com/apc-llc/cernlib/blob/master/2006/src/packlib/kuip/code_kuip/kienbr.c#L446 )

# cat bug.gdb 
break main
run
break ku_trap
continue
backtrace
# csh -c "starver SL21c; gdb --batch --command bug.gdb --args root4star -l -b -q bug.C"
<snip>
Breakpoint 2, ku_trap (enable=1, traceback=0) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kienbr.c:448448     /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kienbr.c: No such file or directory.
#0  ku_trap (enable=1, traceback=0) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kienbr.c:448#1  0x08682c38 in kxbreak () at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kienbr.c:652
#2  0x08681f92 in do_action (cmd=<optimized out>) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:1471
#3  call_action (cmd=0x8bd5e80 <_KUIP_SET_SHOW_BREAK.1632>) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:1508
#4  0x0868222b in exec_decoded_cmd (cmd=0x8bd5e80 <_KUIP_SET_SHOW_BREAK.1632>) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:1342#5  0x08681a74 in fill_arg_list (block_panel=<optimized out>, display_panel=<optimized out>, want_prompt=<optimized out>, arg_line=<optimized ou
t>, cmd=<optimized out>) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:1262#6  exec_single_cmd (block_panel=<optimized out>, display_panel=<optimized out>, interactive=<optimized out>, cmd_line=<optimized out>) at /buil
d/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:466
#7  exec_multiple_cmds (cmd_string=<optimized out>, interactive=1, display_panel=0x0) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip
/kexec.c:276
#8  0x08681cc6 in exec_cmd_string (cmd_string=0x89e4c14 "/KUIP/SET_SHOW/BREAK !", interactive=1, display_panel=0x0) at /build/LCG/work/cernlib/2
006/src/packlib/kuip/code_kuip/kexec.c:211#9  0x08681d4a in ku_exel (cmd_string=0x89e4c14 "/KUIP/SET_SHOW/BREAK !") at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kexec.c:168
5#10 0x086902f0 in kuinit_ (nwords=0xfffa1240) at /build/LCG/work/cernlib/2006/src/packlib/kuip/code_kuip/kuinit.c:199
#11 0x084c1683 in pawint2 (nwpaws=@0x8958888: 0, choptt=..., pgexi=0x81b0774 <agpawe>, iwtyp=@0x8fa7ec4: 0, _choptt=2) at /build/LCG/work/cernlib/2006/src/pawlib/paw/code/pawint2.F:131
#12 0x081af77e in master.0.aginit (__entry=0) at .sl73_gcc485/obj/asps/Simulation/starsim/atmain/agmain.F:198#13 0x081ae4db in aginit () at .sl73_gcc485/obj/asps/Simulation/starsim/atmain/agmain.F:61
#14 0x080c533e in TGiant3::Aginit (this=0xf0fe7e0, command=0xeeb4fe0 " -g 10 -p 0 -w 0") at .sl73_gcc485/obj/asps/rexe/TGeant3/TGiant3.cxx:3697#15 0x080c5080 in TGiant3::Aginit (this=0xf0fe7e0, nwgeant=@0xfffa1538: 10, nwpaw=@0xfffa153c: 0, iwtype=@0xfffa1540: 0) at .sl73_gcc485/obj/asp
s/rexe/TGeant3/TGiant3.cxx:3645#16 0x080c14d6 in TGiant3::TGiant3 (this=0xf0fe7e0, title=0xf1c134fe "C++ Interface to Geant3", nwgeant=10, nwpaw=0, iwtype=0) at .sl73_gcc485/o
bj/asps/rexe/TGeant3/TGiant3.cxx:538#17 0xf1bddc27 in St_geant_Maker::Init (this=0xf0f3d88) at .sl73_gcc485/obj/StRoot/St_geant_Maker/St_geant_Maker.cxx:895
#18 0xf3bc7b98 in StMaker::Init (this=0xeeba8d0) at .sl73_gcc485/obj/StRoot/StChain/StMaker.cxx:703
#19 0xf3bc1ca3 in StChain::Init (this=0xeeba8d0) at .sl73_gcc485/obj/StRoot/StChain/StChain.cxx:105
#20 0xf3aac430 in StBFChain::Init (this=0xeeba8d0) at .sl73_gcc485/obj/StRoot/StBFChain/StBFChain.cxx:1031
<snip>

Turns out this is a documented behaviour for /KUIP/SET_SHOW/BREAK: http://www.hep.vanderbilt.edu/~focuser/reference_manual/KUIP_SET_SHOW.html

StSpinPool/StFmsTriggerMaker fails to compile with ROOT6

See #63

The error message is:

https://github.com/star-bnl/star-sw/pull/63/checks?check_run_id=3108542102#step:3:11725

#14 1229.7 .sl88_gcc789/OBJ/StRoot/StSpinPool/StFmsTriggerMaker/StFmsTriggerMaker.h:77:32: error: use of undeclared identifier 'MAXPP'
#14 1229.7   int FmsLargeClusterTh1(int t=MAXPP) const { return btest(fp201.output[t],6); }
#14 1229.7                                ^
#14 1229.7 .sl88_gcc789/OBJ/StRoot/StSpinPool/StFmsTriggerMaker/StFmsTriggerMaker.h:78:32: error: use of undeclared identifier 'MAXPP'
#14 1229.7   int FmsLargeClusterTh2(int t=MAXPP) const { return btest(fp201.output[t],7); }
#14 1229.7                                ^
#14 1229.7 fatal error: too many errors emitted, stopping now [-ferror-limit=]
#14 1229.7 Error: rootcint: compilation failure (.sl88_gcc789/OBJ/StRoot/StSpinPool/StFmsTriggerMaker/StFmsTriggerMaker_Cintf7f9bbde89_dictUmbrella.h)
#14 1229.7 cons: *** [.sl88_gcc789/OBJ/StRoot/StSpinPool/StFmsTriggerMaker/StFmsTriggerMaker_Cint.cxx] Error 2
#14 1229.8 cons: errors constructing .sl88_gcc789/OBJ/StRoot/StSpinPool/StFmsTriggerMaker/StFmsTriggerMaker_Cint.h

To reproduce with the container do:

git clone https://github.com/star-bnl/star-sw.git
cd star-sw
git checkout ff4e30692d560f91719fe83ea3be2b13260a7133
docker buildx build --cache-from=type=registry,ref=ghcr.io/star-bnl/star-sw-base-root6@sha256:e52132bc193a45271b43f2631c39bfc7a3c6aa26f2766cccd7ee6d645d58b5a8 -f docker/Dockerfile.root6 .

SPACK problem for root4star Root6.24

When I run root4star I got:
root4star: /lib64/libz.so.1: version `ZLIB_1.2.9' not found
(required by /cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/libpng-1.6.37-p24imztwf53zt4m7ylxvboig4wllay3t/lib/libpng16.so.16)

/lib64/libz.so.1 exists but version is different.
libz iz needed for libpng16.so
Both these libraries are not used in root4star.

This problem is similar to Table in spack(Jason), why this table was removed from the Spack.

Root6.16: root.exe, root4star is working
Root6.24: root.exe is working but root4star is not.
But only Root6.24: root4star was recompiled after Spack was modified.
Probably if Root.6.16 root.exe and root4star will be recompiled,
then it will be failed as well
Victor

Jets library

Hello,

I am using the last version of git repository;

https://github.com/star-bnl/star-sw.git

When I want to execute a ROOT macro using Jet library (StRoot/StJetMaker/macros), I got this kind of error:

QAInfo:You are using STAR_LEVEL : pro, ROOT_LEVEL : 5.34.38 and node : rcas6016.rcf.bnl.gov
root.exe [0] .x RunJetReader.C
MuDst chain file: Warning in TClass::TClass: no dictionary for class StStrangeMuDst is available
Warning in TClass::TClass: no dictionary for class StStrangeAssoc is available
strangeArrayNames-arrayNames-NARRAYS = 0
Error in TUnixSystem::DynamicPathName: StSpinDbMaker[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:.:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/cint/cint/stl
Error in TUnixSystem::DynamicPathName: StMCAsymMaker[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:.:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/cint/cint/stl
Error in TUnixSystem::DynamicPathName: StJets[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:.:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/cint/cint/stl
Error in TUnixSystem::DynamicPathName: StJetSkimEvent[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:.:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/cint/cint/stl
Error in TUnixSystem::DynamicPathName: StJetEvent[.so | .dll | .dylib | .sl | .dl | .a] does not exist in /afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:.:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/lib:.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/lib:/opt/star/sl73_gcc485/qt4/lib:/opt/star/sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_gcc485/lib:/afs/rhic.bnl.gov/star/ROOT/36/5.34.38/.sl73_gcc485/rootdeb/cint/cint/stl
dlopen error: /afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib/StJetFinder.so: undefined symbol: _ZTVN7fastjet17CDFMidPointPluginE
Load Error: Failed to load Dynamic link library /afs/rhic.bnl.gov/star/packages/SL22c/.sl73_gcc485/lib/StJetFinder.so
Warning: Return value of void RunJetReader() ignored RunJetReader.C:41:


About the environment, I am using these instructions:

https://drupal.star.bnl.gov/STAR/comp/sofi/tutorials/envsetup

Thanks a lot for your help,

Get rid of compiler warnings

Our build system currently asks the compiler to print many useful warnings (-Wall). This sounds like a good idea since warnings may indicate problematic places in the code, obsolete features, or the use of nonstandard extension of C/C++. However, it appears that the reported warnings have been ignored for quite a long time. Currently there are about 3,000 warnings reported by gcc 4.8.5. A goal to address all the warnings should be recognized and a zero-warning policy should be enforced for all future code modifications.

A list of warnings sorted by their frequency in the build log (gcc 4.8.5, root 5):

                                                                      msg  count   freq
0         deprecated conversion from string constant to [-Wwrite-strings]    798  27.0%
1      may be used uninitialized in this function [-Wmaybe-uninitialized]    435  14.7%
2   deleting object of polymorphic class type which has non-virtual de...    403  13.6%
3                   variable set but not used [-Wunused-but-set-variable]    341  11.5%
4                                     unused variable [-Wunused-variable]    293   9.9%
5      format expects argument of type, but argument has type [-Wformat=]    210   7.1%
6   comparison between signed and unsigned integer expressions [-Wsign...     73   2.5%
7   iteration invokes undefined behavior [-Waggressive-loop-optimizati...     56   1.9%
8                        operation on may be undefined [-Wsequence-point]     54   1.8%
9                           declaration of shadows a member of [-Wshadow]     41   1.4%
10           converting to non-pointer type from NULL [-Wconversion-null]     30   1.0%
11                                  unused parameter [-Wunused-parameter]     25   0.8%
12                       ignoring #pragma omp section [-Wunknown-pragmas]     22   0.7%
13                                      was hidden [-Woverloaded-virtual]     20   0.7%
14                 array subscript is above array bounds [-Warray-bounds]     14   0.5%
15  dereferencing type-punned pointer will break strict-aliasing rules...     13   0.4%
16                               defined but not used [-Wunused-variable]     12   0.4%
17                                  will be initialized after [-Wreorder]     11   0.4%
18                               defined but not used [-Wunused-function]      9   0.3%
19                unknown conversion type character in format [-Wformat=]      8   0.3%
20               control reaches end of non-void function [-Wreturn-type]      7   0.2%
21  argument to in call is the same pointer type as the destination; e...      7   0.2%
22                    too many arguments for format [-Wformat-extra-args]      7   0.2%
23  type qualifiers ignored on function return type [-Wignored-qualifi...      6   0.2%
24                            value computed is not used [-Wunused-value]      6   0.2%
25             suggest explicit braces to avoid ambiguous [-Wparentheses]      6   0.2%
26                               statement has no effect [-Wunused-value]      5   0.2%
27                                             within comment [-Wcomment]      5   0.2%
28  base class should be explicitly initialized in the copy constructo...      4   0.1%
29  comparison with string literal results in unspecified behaviour [-...      4   0.1%
30  cast to pointer from integer of different size [-Wint-to-pointer-c...      4   0.1%
31                      suggest parentheses around within [-Wparentheses]      3   0.1%
32                     the address of will always evaluate as [-Waddress]      3   0.1%
33    suggest parentheses around comparison in operand of [-Wparentheses]      3   0.1%
34           extra tokens at end of #endif directive [enabled by default]      2   0.1%
35       large integer implicitly truncated to unsigned type [-Woverflow]      2   0.1%
36         typedef locally defined but not used [-Wunused-local-typedefs]      2   0.1%
37                                         redefined [enabled by default]      2   0.1%
38                                    repeated flag in format [-Wformat=]      2   0.1%
39  argument to in call is the same expression as the destination; did...      2   0.1%
40                      ignoring #pragma omp parallel [-Wunknown-pragmas]      2   0.1%
41     no return statement in function returning non-void [-Wreturn-type]      2   0.1%
42                 use of length modifier with type character [-Wformat=]      1   0.0%
43                          initialized and declared [enabled by default]      1   0.0%
44  field precision specifier expects argument of type, but argument h...      1   0.0%
45            zero-length gnu_printf format string [-Wformat-zero-length]      1   0.0%
46                         format expects a matching argument [-Wformat=]      1   0.0%
47                            label defined but not used [-Wunused-label]      1   0.0%

fix_warns_orig

Revisiting dependency on C++ boost

As far as I can tell, the only package that depends on boost is StRoot/StarGenerator/Kinematics. It includes the following header

#include <boost/algorithm/string.hpp>

and makes use of boost:split()

boost::split( types, type, [](char c){ return (c==' ' || c== ',');} );

Although some version of boost is available on the farm nodes, it is not targeted as direct dependency by the current Spack environment. Since boost is missing from the environment StRoot/StarGenerator/Kinematics cannot be compiled and is excluded from the build

RUN source /etc/profile \
&& cd /star-sw \
&& cons +StarVMC/Geometry \
&& cons %pams/sim/g2r %OnlTools \
%StRoot/StarGenerator/Kinematics \
%StRoot/StEEmcPool %StRoot/StFgtPool %StRoot/StHighptPool \
%StRoot/StShadowMaker %StRoot/StHbtMaker \
&& find /star-sw/.$STAR_HOST_SYS -name *.o -exec rm '{}' \;

Installing the entire boost package for just a single function (boost:split) does not seem very practical... Would it make more sense to replace the call to boost::split() with a few lines of equivalent code?

@klendathu2k

Dependency of OnlTools on QT

While trying to compile sources from OnlTools I noticed that Cons invokes a QT utility called uic to generate a cxx file from xpm files in OnlTools/OnlinePlots/images or OnlTools/OnlinePlots/icons. The relevant code processing the bitmap files is:

if ($#xpmQT >= 0) {
my $out = $PKG . "_image_collection.cxx";
if (!$qt4) {
my $dir = File::Basename::dirname( $xpmQT[0] );
my $dirbase = $dir;
$dirbase =~ s/$Dir//;
if ($dirbase) {
$dirbase =~ s|^/||;
$dirbase .= "/";
}
my @xpm = map ($dirbase . File::Basename::basename( $_), @xpmQT);
print "Command $uic -embed ".join(" ",@xpm)." -o $out \n";
Command $env [$out], @xpm, qq($uic -embed %< -o %> );
push @src, $out
}
}

A naive check by grepping the symbols defined in the xpm files reveals that they are not used anywhere in the code. So, the question to @kehw and @jml985 is whether the OnlTools can still work as expected if the xpm files are removed? This seems to be the last dependency on QT.

A related issue is that the OnlTools/OnlinePlots/icons and OnlTools/OnlinePlots/images directories are identical so, at least one of them can be removed.

Invalid cast between incompatible types for std::gmtime argument

Describe the bug

The cast between unrelated types (as the one shown below) is not safe when the sizes of unsigned and time_t are different:

unsigned int ts_cast = ts;
struct tm *tm_cast = gmtime((time_t*) &ts_cast)

On our target system the sizes of the two types happened to be the same when using the -m32 compiler option but differ for -m64

This case was found in StRoot/StDaqLib/SSD/SSD_Reader.cxx due to the failed test 24. The log from the job. More specifically,

bfc.C(20, "P2005,tofDat,logger,MakeEvent,ITTF,ssddat,spt,SsdIt,SvtIt,pmdRaw,OShortR,OSpaceZ2", "/star/rcf/test/daq/2005/048/st_physics_6048025_raw_1020002.daq")

To Reproduce

Here is a small program to demonstrate the problem:

#include <ctime>
#include <iostream>
#include <vector>

using namespace std;

int main ()
{
  // $ date -d  @1108647599
  // Thu Feb 17 08:39:59 EST 2005

  cout << "sizeof(unsigned): " << sizeof(unsigned) << '\n';
  cout << "sizeof(time_t):   " << sizeof(time_t) << '\n';

  for (int ts : vector<int>{0, 5*24*3600+33, 1108647599})
  {
    time_t ts_nocast = ts;
    struct tm *tm_nocast = gmtime(&ts_nocast);
  
    unsigned int ts_cast = ts;
    struct tm *tm_cast = gmtime((time_t*) &ts_cast);

    cout << "tm_cast:   " << asctime(tm_cast);
    cout << "tm_nocast: " << asctime(tm_nocast);
  }

  return 0;

The erroneous output can be seen when comparing the -m32 and -m64 options respectively:
https://godbolt.org/z/xs9oezxro
https://godbolt.org/z/h3M5Pvq7f

Expected behavior

gmtime should return a valid date for the given Unix time when compiled with either -m32 or -m64 options

PS Many thanks to @veprbl for private discussion

StarVMC/StarGeometry doesn't compile on main branch

Steps to reproduce

On RACF run:

git clone https://github.com/star-bnl/star-sw.git
cd star-sw
git checkout f7935bbbca1c9e9c69931bb5167ca9767be72807
env -i \
  PATH=$PWD/mgr:$PATH \
  QTDIR=/usr/lib64/qt-3.3 QTINC=/usr/lib64/qt-3.3/include \
  QTLIB=/usr/lib64/qt-3.3/lib CERN_LEVEL=pro \
  CERN=/cern CERN_ROOT=/cern/pro \
  ROOTSYS=/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb \
  ROOT=/afs/rhic.bnl.gov/star/ROOT \
  ROOT_LEVEL=5.34.38 \
  STAR_SYS=x8664_sl7 \
  STAR_HOST_SYS=sl73_gcc485 \
  OPTSTAR=/opt/star/sl73_gcc485 \
  XOPTSTAR=/afs/rhic.bnl.gov/opt/star/sl73_gcc485 \
  STAR_ROOT=/afs/rhic.bnl.gov/star \
  STAR=/nowhere \
  sh -c '. $ROOTSYS/bin/thisroot.sh; exec cons %StShadowMaker'

Observe:

Install StarVMC/StarGeometry/BtofConfig.cxx as .sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.cxx
g++ -m32 -fPIC -pipe -Wall -Woverloaded-virtual -std=c++0x -Wno-long-long -pthread -g -Dsl73_gcc485 -D__ROOT__ -DNEW_DAQ_READER -I. -IStRoot -I.sl73_gcc485/include -I/afs/rhic.bnl.gov/star/ROOT/5.34.38/.sl73_gcc485/rootdeb/include -c .sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.cxx -o .sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.o
In file included from .sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.cxx:1:0:
./StarVMC/StarGeometry/BtofConfig.h:3:45: fatal error: StarVMC/StarGeometry/BtofGeo1.h: No such file or directory # include "StarVMC/StarGeometry/BtofGeo1.h"                                              ^
compilation terminated.
cons: *** [.sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.o] Error 1
cons: errors constructing .sl73_gcc485/obj/StarVMC/StarGeometry/BtofConfig.o

Expected result

Everything compiles without errors

cc @klendathu2k

StFwdTrackMaker doesn't compile in 64-bit

setup 64b
stardev
mkdir -p test/StRoot
cd test
cp -R $STAR/StRoot/StFwdTrackMaker ./StRoot/
cons
...
In file included from .sl73_x8664_gcc485/OBJ/StRoot/StFwdTrackMaker/StFwdTrackMaker.cxx:2:0:
StRoot/StFwdTrackMaker/include/Tracker/FwdHit.h:4:26: fatal error: KiTrack/IHit.h: No such file or directory
#include "KiTrack/IHit.h"
^
compilation terminated.

Variable redefined in inner scope in OnlTools/Jevp/StJevpBuilders/fttBuilder.cxx

Describe the bug

In OnlTools/Jevp/StJevpBuilders/fttBuilder.cxx variables ix0 and ix1 are redefined inside an if statement, the assigned values do not change the variables defined in the outer scope:

int ix0 = ax->FindBin( x0 + row * rLength );
int ix1 = ax->FindBin( x0 + (row + 1) * rLength - 1 );
if ( VMMHardwareMap::Quadrant::C == q || VMMHardwareMap::Quadrant::D == q ){
int ix0 = ax->FindBin( x0 + (row - 1) * rLength );
int ix1 = ax->FindBin( x0 + (row) * rLength - 1 );
}
const int iy0 = ay->FindBin( y0 + strip * sPitch );
const int iy1 = ay->FindBin( y0 + (strip) * sPitch );
floodFill( h2, ix0, iy0, ix1, iy1 );

A similar pattern can be seen for iy0 and iy1 variables:

int iy0 = ay->FindBin( y0 + row * rLength );
int iy1 = ay->FindBin( y0 + (row + 1) * rLength - 1 );
if ( VMMHardwareMap::Quadrant::C == q || VMMHardwareMap::Quadrant::D == q ){
int iy0 = ay->FindBin( y0 + (row - 1) * rLength );
int iy1 = ay->FindBin( y0 + (row) * rLength - 1 );
}
const int ix0 = ax->FindBin( x0 + strip * sPitch );
const int ix1 = ax->FindBin( x0 + (strip) * sPitch );
floodFill( h2, ix0, iy0, ix1, iy1 );

To Reproduce

Compile a trivial program:

#include <iostream>

int main ()
{
    int ix0 = 1;

    { int ix0 = 2; }
    std::cout << ix0 << "\n";

    { ix0 = 3; }
    std::cout << ix0 << "\n";
}

Expected behavior

It appears the authors intended to modify the values of the variables inside the if statement

StFwdTrackMaker test fails due to missing fGeom.root file

StFwdTrackMaker:ERROR - TXMLEngine::ParseFile : Unexpected end of xml file
StFwdTrackMaker:INFO  - ForwardTracker::initialize()
StFwdTrackMaker:INFO  - TGeoManager::Import : Reading geometry from file: fGeom.root
StFwdTrackMaker:ERROR - TFile::TFile : file fGeom.root does not exist
StFwdTrackMaker:ERROR - TGeoManager::Import : Cannot open file
StFwdTrackMaker:FATAL - TUnixSystem::DispatchSignals : segmentation violation

The error can be reproduced by using the artifacts from #410

Errors reported when setting 2022 geometry ROOT6

BFC:INFO  - Setting ideal geometry
BFC:INFO  - StBFChain::Init force load of /star-sw/./StarDb/AgMLGeometry/Geometry.y2022.C
In file included from StChain_Cint dictionary payload:17:
In file included from /star-sw/.sl79_gcc485/include/StIOInterFace.h:11:
/star-sw/.sl79_gcc485/include/StRTSBaseMaker.h:35:31: error: base class has incomplete type
class StRTSBaseMaker : public StMaker
                       ~~~~~~~^~~~~~~
/star-sw/.sl79_gcc485/include/StMkDeb.h:5:7: note: forward declaration of 'StMaker'
class StMaker; 
      ^
BFC:ERROR - TInterpreter::AutoParse : Error parsing payload code for class EvtHddr_st with content:

#line 1 "StChain_Cint dictionary payload"

#ifndef G__VECTOR_HAS_CLASS_ITERATOR
  #define G__VECTOR_HAS_CLASS_ITERATOR 1
#endif
#ifndef ROOT_CINT
  #define ROOT_CINT 1
#endif
#ifndef __ROOT__
  #define __ROOT__ 1
#endif

#define _BACKWARD_BACKWARD_WARNING_H
#include "StMaker.h"
#include "StChain.h"
#include "StMkDeb.h"
#include "StEvtHddr.h"
#include "StIOInterFace.h"
#include "StRTSBaseMaker.h"
#include "StRtsTable.h"

#undef  _BACKWARD_BACKWARD_WARNING_H

For the complete log see https://github.com/star-bnl/star-sw/actions/runs/6334098611/job/17205234702#step:5:541

Fail to build on SDCC cluster

Errors copied from https://www.star.bnl.gov/public/comp/prod/Sanity/AutoBuild-64bits.html

.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:75:12: error: 'FSTM::FSTMv1s' has not been declared
 void FSTM::FSTMv1s::setup() {
            ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:81:12: error: 'FSTM::FSTMv1s' has not been declared
 bool FSTM::FSTMv1s::list() {
            ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx: In function 'bool list()':
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:82:18: error: 'name' was not declared in this scope
 LOG_INFO << name() << " " << module() << " simu = 2" <<  " [" << comment() << "]" << endm;
                  ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:82:37: error: 'module' was not declared in this scope
 LOG_INFO << name() << " " << module() << " simu = 2" <<  " [" << comment() << "]" << endm;
                                     ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:82:74: error: 'comment' was not declared in this scope
 LOG_INFO << name() << " " << module() << " simu = 2" <<  " [" << comment() << "]" << endm;
                                                                          ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx: At global scope:
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:88:17: error: 'FSTM::FSTMv1s' has not been declared
 AgModule* FSTM::FSTMv1s::construct() {
                 ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx: In function 'AgModule* construct()':
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:89:42: error: 'FSTM::FSTMv1s' has not been declared
 LOG_INFO << "Construct module " << FSTM::FSTMv1s::module() << endm;
                                          ^
.sl73_x8664_gcc485/obj/StarVMC/StarGeometry/FstmConfig.cxx:91:32: error: 'New' was not declared in this scope
        AgModule* _module = New();
                                ^

st_fwd crashing in StFcsPi0FinderForECal after PR #291

It appears that every st_fwd stream file produced in DEV for FastOffline since PR #291 was merged is seg faulting. The log files from FastOffline all show lines like this:

Start using StFcsPi0FinderForECal
current event:2
StMaker:FATAL - TUnixSystem::DispatchSignals : segmentation violation

(though it does not always appear to be event 2; sometimes it is event 0 or 1, etc.)

-Gene

Problem with flexible array members in OnlTools unions

Flexible array members and zero size arrays are not allowed to be members of unions according to C++. Gcc 11 reveals this problem in the code and here is an example error in OnlTools/Jevp/StJevpBuilders/bbcBuilder.h

g++ -fPIC -pipe -Wall -Woverloaded-virtual -std=c++0x -Wno-long-long -pthread -Wno-deprecated-declarations -m64 -O2 -g -falign-loops -falign-jumps -falign-functions -Dsl79_gcc11 -D__ROOT__ -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_NO_DEBUG -DNEW_DAQ_READER -I. -IOnlTools -IStRoot/RTS/src -IStRoot/RTS/include -IStRoot/RTS/trg/include -I. -IStRoot -I.sl79_gcc11/include -IOnlTools/Jevp/StJevpPlot -IOnlTools/Jevp/StJevpPresenter -IOnlTools/Jevp/StJevpServer -IOnlTools/Jevp/StJevpData -IOnlTools/Jevp/StJevpBuilders -IOnlTools/Jevp/StJevpViewer -I. -IOnlTools -IStRoot/RTS/src -IStRoot/RTS/include -IStRoot/RTS/trg/include -I. -IStRoot -I.sl79_gcc11/include -I/opt/software/linux-scientific7-x86_64/gcc-11.2.1/root-5.34.38-p7sjrh5whm6m2ao3zxkaoaqomiscvw52/include -I/opt/software/linux-scientific7-x86_64/gcc-11.2.1/root-5.34.38-p7sjrh5whm6m2ao3zxkaoaqomiscvw52/include -I/usr/include/mysql -I/opt/software/linux-scientific7-x86_64/gcc-11.2.1/libxml2-2.9.12-k3pblgujcxjatlcsu2xmhe7qcwtqpxn4/include/libxml2 -I/opt/software/linux-scientific7-x86_64/gcc-11.2.1/libiconv-1.16-ghg7qgnp355e4h2zsuua7ar3ngindtwn/include -c .sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.cxx -o .sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.o
In file included from .sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.cxx:15:
.sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.h:30:10: error: flexible array member in union
   30 |     TH1 *array[];
      |          ^~~~~
cons: *** [.sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.o] Error 1
cons: errors constructing .sl79_gcc11/OBJ/OnlTools/Jevp/StJevpBuilders/bbcBuilder.o

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.