Skip to content

Conversation

@SFBayLaser
Copy link
Contributor

The idea is to check the integrity of the incoming data before running the processing chain with the hope to prevent job failures due to data issues. The main issue we have at the moment are incomplete events which can cause the decoder modules to throw exceptions and the processing to stop, so this initial import really aims to address that. The caveat is that it uses code similar to that used by the daq/dqm folks and it uses the first event, which is assumed to be fine, to initialize... so if the incomplete event is the first event then this module will miss it. Work in progress... but better than nothing.

…ing the stage 0 processing chain. Note that this initial import is aiming to detect "incomplete events" and is not a thorough integrity check just yet...
Copy link
Contributor

@wesketchum wesketchum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks fine, but we also know (generally) how many fragments should be expected for good physics runs, no? Could we add a fcl parameter that is the expected fragment count, and then compare that as well? Would then work well for the first event in a file too.

Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need a clarification: the filter is configured to interrupt a path, but it does not seem to be bound to the output module(s). If I am not wrong, it means that the events that are filtered out will be still saved (with no data products except maybe the trigger data fragment if we are now keeping it as it was proposed). In that case, the following stages may find the event, try to process it, look for a raw waveform data product that is not there and throw ProductNotFound (or worse, silently ignore the problem — which happens to be what we need but because of a bug). I think the solution is to add selectEvents: [ pathname ] to the output module(s).

For the rest, I have dropped some minor suggestions.


if (missingFragments.size() > 0 || emptyFragments > 0)
{
mf::LogInfo("FilterDataIntegrity") << "Bad fragments: " << missingFragments.size() << ", " << emptyFragments;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More info maybe?

Suggested change
mf::LogInfo("FilterDataIntegrity") << "Bad fragments: " << missingFragments.size() << ", " << emptyFragments;
mf::LogInfo log("FilterDataIntegrity");
log << "Bad fragments (" << missingFragments.size() << "):";
for (int fragmentID: missingFragments) log << " " << fragmentID;
if (emptyFragments) log << "; empty: " << emptyFragments;

@PetrilloAtWork
Copy link
Member

I remind also in this venue that DAQ "promised" the addition of a list of configured components and their fragments, with in conjunction with code like this one or like feature/gp_missingFragments would allow a consistent and robust check.

Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All looks good to me now.

@SFBayLaser
Copy link
Contributor Author

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c7:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for e20:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@mmrosenberg
Copy link
Contributor

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for e20:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for c7:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@mmrosenberg
Copy link
Contributor

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@mmrosenberg
Copy link
Contributor

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for e20:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for c7:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for e20:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for c7:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@SFBayLaser
Copy link
Contributor Author

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for e20:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

❌ CI build for ICARUS Failed at phase unit_test ICARUS on slf7 for c7:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the failed phase, check the unit_test ICARUS phase logs

parent CI build details are available through the CI dashboard

@SFBayLaser
Copy link
Contributor Author

trigger build

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for c7:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

✔️ CI build for LArSoft Succeeded on slf7 for e20:prof -- details available through the CI dashboard

@FNALbuild
Copy link
Collaborator

⚠️ CI build for ICARUS Warning at phase ci_tests ICARUS on slf7 for c7:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the warning phase, check the ci_tests ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link
Collaborator

⚠️ CI build for ICARUS Warning at phase ci_tests ICARUS on slf7 for e20:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the warning phase, check the ci_tests ICARUS phase logs

parent CI build details are available through the CI dashboard

@mmrosenberg mmrosenberg merged commit 652f55a into develop Jun 6, 2023
@mmrosenberg mmrosenberg deleted the feature/usher_dataintegrity branch June 6, 2023 18:42
@SFBayLaser SFBayLaser restored the feature/usher_dataintegrity branch June 7, 2023 15:16
SFBayLaser added a commit that referenced this pull request Jun 7, 2023
mmrosenberg added a commit that referenced this pull request Jun 7, 2023
…roduction

Copy of PR #590 and PR 591 for production branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants