Bug #10536
FatalRootError upon writing an output file if a second input file is missing products
Description
There are now many tests in art
that verify the expected behavior for various input-concatenation scenarios. Consider the following scenario, however.
Suppose input files a.root
and b.root
were created by the same set of processes and therefore have the same products and event shape. To save disk space, a user decides to drop products in b.root
so that the unneeded products are no longer present, and only the desired products are persisted to b_trimmed.root
. Because a.root
and b_trimmed.root
still have the same event shape, it is possible for both to serve as inputs:
art -c onlyAnalyze.fcl a.root b_trimmed.root
where no filtering or extra product creation is done. This works fine in current art
. However, suppose I want to write all the products to an aggregated output (out.root
). In this case, the nonexistent products in b_trimmed.root
should be replaced with dummies in out.root
. However, the following error is emitted:
---- FatalRootError BEGIN Fatal Root Error: @SUB=TBranchElement::Fill attempt to fill branch art::TriggerResults_TriggerResults__p2. while addresss is not set cet::exception going through module RootOutput/out run: 1 subRun: 0 event: 1 ---- FatalRootError END
Interestingly, the error is not triggered if b_trimmed.root
precedes a.root
in the input-file list. This should be remedied so that the behavior is symmetric wrt. the order of the above-specified inputs.
Associated revisions
History
#1 Updated by Kyle Knoepfel over 5 years ago
- Description updated (diff)
#2 Updated by Christopher Green over 5 years ago
- Category set to Metadata
- Status changed from New to Accepted
- SSI Package art added
- SSI Package deleted (
)
A reasonable time estimate would require significant analysis.
#3 Updated by Kyle Knoepfel over 3 years ago
- Status changed from Accepted to Assigned
- Assignee set to Kyle Knoepfel
#4 Updated by Kyle Knoepfel over 3 years ago
- Category changed from Metadata to I/O
- Estimated time set to 16.00 h
The selected output item list for RootOutputFile
is updated based on the OutputModule
keptProducts
member. That member, in turn, is based on the present products in the input file. A mechanism must be put in place so that the selected output item list appropriately handles new input files that do not have products from older input files.
#5 Updated by Kyle Knoepfel over 3 years ago
- % Done changed from 0 to 80
#6 Updated by Kyle Knoepfel over 3 years ago
- Status changed from Assigned to Resolved
- % Done changed from 80 to 100
#7 Updated by Kyle Knoepfel over 3 years ago
- Target version set to 2.08.00
#8 Updated by Kyle Knoepfel over 3 years ago
- Status changed from Resolved to Closed
Resolve issue #10536: forward-fill branches that are not in current input file.