[root6] Eliminate crash when creating the MuDst#442
Conversation
…Array of StStrangeAssoc objects. Looking up the TClass information to instantiate the object results in an infinite recursion for an unknown reason. Disabling the call to initializeForWriting() on loading the share library resolves the issue. Thouigh I don't know what side effects this may cause.
|
The original code was introduced over two decades ago: a20c9a8#diff-9b5c84904f9c5ac927afddab6e4379e15fe6fa757afa4130bde3883f5ec15a3a It is a bit suspicious that the modification to the global StObject streamer configuration is made conditional on loading of StStrangeMuDstMaker (which, IIRC, is itself loaded unconditionally in most of our BFC configurations). I think, it would be nice to aim at removing this option for ROOT 5 as well. There may be some file size implications for MuDsts, but those can be addressed on a class-by-class basis. |
veprbl
left a comment
There was a problem hiding this comment.
This advances the ROOT6 tests in CI to the fCurrentRow woes. Very exciting.
|
This is a great finding indeed. The function calls which seem to disturb ROOT6 can be moved to star-sw/StRoot/StMuDSTMaker/COMMON/StMuDstMaker.cxx Lines 478 to 509 in 25274b6 star-sw/StRoot/StPicoDstMaker/StPicoDstMaker.cxx Lines 227 to 250 in 25274b6 |
|
I consider the 2001 commit a hack on my part, so if it can be removed, that's a step in the right direction. And since I stopped maintaining this code something like 15 years ago, I don't feel protective of this code: please do whatever you need to. Thanks. |
|
It certainly looked like a duck and walked like a duck... and hack rhymes with quack, so good to have confirmation. It may be an issue of timing, that ROOT6 needs to defer the call to suppress the TObject streamer until later (eg initialization time) rather than load time. I'll push that change shortly. |
|
In the context of this change I tried to understand the relation between MuDst and StrangeMuDst. It appears to me that the latter has become a part of MuDst long time ago. If this is the case, can we get rid of the |
|
@jdbrice @nigmatkulov Would appreciate reviews as code-owners. |
This reverts commit a062a16.
When creating the MuDst, ROOT6 has a problem with creating the TClonesArray of StStrangeAssoc objects. Running under GDB shows that TClass::GetClass enters an infinite recursion... almost as if the system is confused, and believes the class is it's own base class. Disabling the call to initializeForWriting() on loading the share library resolves the issue. Though I don't know what side effects this may cause. Co-authored-by: Dmitri Smirnov <dmixsmi@gmail.com>
When creating the MuDst, ROOT6 has a problem with creating the TClonesArray
of StStrangeAssoc objects. Running under GDB shows that TClass::GetClass enters
an infinite recursion... almost as if the system is confused, and believes the class is it's
own base class.
Disabling the call to initializeForWriting() on loading the share library resolves the issue.
Though I don't know what side effects this may cause.