Updated behavior in hadd?

Our group has recently updated our servers from using a version of ROOT 6.08 to 6.12/06. It used to be that when I issued the terminal command

hadd -k fileAll.root fileRun*.root

“If the option -k is used, hadd will not exit on corrupt or non-existant input files but skip the offending files instead.” The output of this command would mention errors with input files, but then skip over them and continue to add source files fileRun*.root to fileAll.root. However, now when I run the above command, no further output occurs for other runs once “hadd skipping file with error” is printed for a run, and opening fileAll.root, it appears nothing has been added to it at all. I have a workaround using

hadd -k fileAll.root fileRun1.root
hadd -k -a fileAll.root fileRun{2…99}.root

but is there a flag in hadd which uses the old, desired behavior?

ROOT Version: 6.12/06
Platform: linuxx8664
Compiler: gcc


thanks for the report. @xvallspl is looking into the issue.


Hi @jwruss.

You are right, hadd was returning too early and not skipping files. It should be fixed now in the master.


1 Like

Thank you, Xavi.

Did this affect other versions of ROOT as well?

1 Like


the bug affected master, 6.14 and 6.12. @xvallspl backported the to the 6.14 and 6.12 branches.
Thanks again for reporting!


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.