Project

General

Profile

Bug #18079

art schema checking prevents use of std::array

Added by David Brown about 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
I/O
Target version:
Start date:
10/30/2017
Due date:
% Done:

100%

Estimated time:
2.00 h
Spent time:
Occurs In:
Scope:
Internal
Experiment:
Mu2e
SSI Package:
art
Duration:

Description

I have been tracking back a problem using std::array as part of schema for Mu2e with Philippe Canal. He identified a problem in root that the function GetMissingDictionaries reports a spurious missing dependency for classes having std::array members. art calls GetMissingDictionaries and throws an exception when it sees this 'missing' dependency. Philippe says he will fix GetMissingDictionaries in future root releases, but a workaround in art to ignore this spurious problem would be helpful.

History

#1 Updated by Kyle Knoepfel about 2 years ago

Can you send us a stack trace? For art 2.07.03, we do not call TClass::GetMissingDictionaries--its only appearance in the source code is in canvas guarded by #if 0:

#if 0
  {
    THashTable missing;
    cl->GetMissingDictionaries(missing, recursive);
    TClass::GetClass(name.c_str())->GetMissingDictionaries(missing, recursive);
    ...
  }
#endif

#2 Updated by David Brown about 2 years ago

Below find the screen message:

%MSG-s ArtException:  StrawDigisFromStepPointMCs:makeSD@Construction  30-Oct-2017 16:11:40 PDT ModuleConstruction
cet::exception caught in art
---- DictionaryNotFound BEGIN
  No dictionary found for the following classes:

       array<unsigned short,16>
 ...

Unfortunately I can't get a stack trace as gdb isn't working with debug builds of art right now (probably another ticket on that soon)

#3 Updated by Kyle Knoepfel about 2 years ago

  • Status changed from New to Accepted
  • Estimated time set to 2.00 h

The problem is understood. The error message included above is one that art emits, but it does so through its own internal dictionary checking. And in this particular case, art's checking has not been updated to reflect that std::array is now transparently supported by ROOT without the user needing to specify the relevant line in the XML selections file.

Is it acceptable to include the fix in a bug-fix release of the art 2.09 series?

#4 Updated by Rob Kutschke about 2 years ago

Yes - please make a bug fix release of 2.09 series. We have been planning to upgrade to 2.09.0x soon - we can wait for this one.

#5 Updated by Kyle Knoepfel about 2 years ago

  • Target version set to 2.09.02

#6 Updated by Kyle Knoepfel about 2 years ago

  • Category set to I/O
  • Status changed from Accepted to Resolved
  • Assignee set to Kyle Knoepfel
  • % Done changed from 0 to 100

Resolved with commits:

#7 Updated by Kyle Knoepfel about 2 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF