getValidHandle fails when products differ only by process name
When reading an input file containing a product "myProducer_myProduct" getValidHandle will throw if the path includes an instance of myProducer, even if that module has not been run at the time getValidHandle is called. This is a new problem arising in art3, Rob believes it was triggered by a change in the default rules for handling ambiguous tags compared to art2. There are actually 2 bugs:
- the call to getValidHandle is actually unambiguous as only 1 match to "myProducer_myProduct" exists in the event when called and so it should not throw
- the message on throw "getByLabel: Found zero products matching all criteria" is incorrect and misleading, making it very hard to debug
To reproduce, run the included script 'mu2e -c getValidHandle.fcl'
#6 Updated by Kyle Knoepfel about 1 month ago
- % Done changed from 0 to 100
- Status changed from Assigned to Resolved
- Category set to Infrastructure
Turns out the fix was reasonably straightforward to implement. I will consult with the rest of the SciSoft team to determine a suitable time scale for releasing a new version of art.
Fix implemented with commit art:afb35c3.