You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mergers: Retry with gDebug if merging fails (#15153)
...to help understand the error in QC-1340.
I get the following with newly added test case:
```
Error in <TH1Merger::DifferentAxesMerge>: Cannot merge histograms - the histograms obj1 can extend the X axis or have different limits and underflows/overflows are present in the histogram obj2.
[ERROR] Failed to merge the input object 'obj2' of type 'TH1I and the target object 'obj1' of type 'TH1I'
Info in <TH1Merger::ExamineHistogram>: Examine histogram obj1 - labels 0 - same limits 1 - axis found 1
Info in <TH1Merger::ExamineHistogram>: Examine histogram obj2 - labels 0 - same limits 0 - axis found 1
Info in <Merge>: Histogram Merge type is 2 and new axis flag is 1
Info in <DefineNewAxis>: A new X axis has been defined Nbins=20 , [0.000000,20.000000]
Info in <TH1Merger::DifferentAxesMerge>: Merging histogram obj1 into obj1
Info in <TH1Merger::DifferentAxesMerge>: Merging histogram obj2 into obj1
Error in <TH1Merger::DifferentAxesMerge>: Cannot merge histograms - the histograms obj1 can extend the X axis or have different limits and underflows/overflows are present in the histogram obj2.
[ERROR] Merging 'obj2' and 'obj1' failed again after a retry for debugging purposes. See ROOT warnings for details.
```
What bothers me is that the ROOT error is actually printed there even before gDebug is enabled, while we see no ROOT error in the case of QC-1340, even though stderr output is redirected to infologger by o2-aliecs-executor.
Perhaps whathever is triggering the error does not have an error log associated with it in ROOT?
LOG(warn) << "The tree '" << targetTree->GetName() << "' would be larger than 100MB (" << totalSize << "B) after merging, skipping to let the system survive";
LOG(warn) << "Object '" + std::string(target->GetName()) + "' with type '" + std::string(target->ClassName()) + "' is not one of the mergeable types, skipping";
LOG(warn) << "The tree '" << targetTree->GetName() << "' would be larger than 100MB (" << totalSize << "B) after merging, skipping to let the system survive";
LOG(warn) << "Object '" + std::string(target->GetName()) + "' with type '" + std::string(target->ClassName()) + "' is not one of the mergeable types, skipping";
199
-
}
207
+
Long64_t errorCode = mergeDefault(target, other);
208
+
200
209
if (errorCode == -1) {
201
210
LOG(error) << "Failed to merge the input object '" + std::string(other->GetName()) + "' of type '" + std::string(other->ClassName()) //
202
211
+ " and the target object '" + std::string(target->GetName()) + "' of type '" + std::string(target->ClassName()) + "'";
212
+
213
+
// we retry with debug options enabled in ROOT in hopes to get some logs explaining the issue
0 commit comments