Skip to content

dictionary payload parsing diagnostics: no more error message when header not found #6791

Open
@andresailer

Description

@andresailer
  • Checked for duplicates

Describe the bug

When root fails to load the dictionary payload it used to give a clear message that a header file couldn't be included.

In file included from G__DDG4 dictionary payload:445:
In file included from /cvmfs/sft.cern.ch/lcg/views/LCG_97a_FCC_2/x86_64-centos7-gcc8-opt/include/DDG4/Geant4Config.h:100:
/cvmfs/sft.cern.ch/lcg/views/LCG_97a_FCC_2/x86_64-centos7-gcc8-opt/include/DDG4/Geant4TrackingAction.h:18:10: fatal error: 'G4VUserTrackInformation.hh' file not found
#include "G4VUserTrackInformation.hh"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

See full error.txt

But with the root master or 6.22.00, there is only

Error in <TInterpreter::AutoParse>: Error parsing payload code for class dd4hep::sim::KernelHandle with content:

#line 1 "G__DDG4 dictionary payload"

In both cases followed by the rest of the "dictionary payload", see attached

error98.txt
errorDev.txt

The solution to the parsing of the paylog in both cases is the same, adding the Geant4 header location to ROOT_INCLUDE_PATH, this is understood.

But the message about the missing header file should still be printed, when it cannot be found, shouldn't it?
Running the command with strace let's one see that it fails to find the Geant4 headers.

Expected behavior

Print the "file not found" message.

To Reproduce

This gives the error message, but of course is nothing to see if the problem is solved:

source /cvmfs/sft.cern.ch/lcg/views/LCG_98/x86_64-centos7-gcc8-opt/setup.sh
ddsim --compactFile ${DD4hepINSTALL}/DDDetectors/compact/SiD.xml -N 2 -G --gun.particle pi+ --outputFile my.root

This is for the environment that still prints the header not found message

source /cvmfs/sft.cern.ch/lcg/views/LCG_97a_FCC_2/x86_64-centos7-gcc8-opt/setup.sh
ddsim --compactFile ${DD4hepINSTALL}/DDDetectors/compact/SiD.xml -N 2 -G --gun.particle pi+ --outputFile my.root

(That the XML file isn't there doesn't matter, the argument has to be filled).

Setup

  1. ROOT master, 6.22.00
  2. centos7
  3. lcg install

Additional context

This isn't really high priority, as a work around is available, but from
https://sft.its.cern.ch/jira/browse/ROOT-11029?focusedCommentId=110376&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-110376
where @Axel-Naumann said

I'm still a bit unhappy about the quality of the diagnostics;

I figured this is worth an issue.

Originally discovered in: key4hep/EDM4hep#42 (comment)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions