Project

General

Profile

Support #10972

errorOnFailureToPut is not being set in the global configuration in artdaq-demo

Added by Eric Flumerfelt about 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Paul Russo
Category:
-
Target version:
-
Start date:
11/20/2015
Due date:
% Done:

100%

Estimated time:
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

Description

I've built artdaq-demo (and artdaq) against art v1_17_03, and when I try to run, I get the following error:

Fri Nov 20 11:46:09 -0600 2015: A cet::exception is going through WorkerT<EDFilter>:
Fri Nov 20 11:46:09 -0600 2015: %MSG
Fri Nov 20 11:46:09 -0600 2015: %MSG-s ArtException:  NthEvent:prescaleMod2@BeginJob ModuleConstruction
Fri Nov 20 11:46:09 -0600 2015: cet::exception caught in art
Fri Nov 20 11:46:09 -0600 2015: ---- OtherArt BEGIN
Fri Nov 20 11:46:09 -0600 2015:   ---- Can't find key BEGIN
Fri Nov 20 11:46:09 -0600 2015:     services.scheduler.errorOnFailureToPut A cet::exception is going through WorkerT<EDFilter>:
Fri Nov 20 11:46:09 -0600 2015:     Module type=NthEvent, Module label=prescaleMod2, Parameter Set ID=2447b814092dfbbecefbe2c0d545442a57f116f8, Process name=DAQ, Release Version=v1_17_03, Pass ID=, Main Parameter Set ID=e4f39e79cefde09ac395f503dce6676401861be4
Fri Nov 20 11:46:09 -0600 2015:   ---- Can't find key END
Fri Nov 20 11:46:09 -0600 2015: ---- OtherArt END
Fri Nov 20 11:46:09 -0600 2015: %MSG

I have tried specifying this parameter inside the services.scheduler block we're already using, outside the block, both inside and outside, and in the module configuration directly. My guess is that the error is being thrown by art/Framework/Core/detail/get_failureToPut_flag.cc because the global flag is somehow not making it into the main ParameterSet.

artdaq_failureToPut.fcl (2.14 KB) artdaq_failureToPut.fcl Kyle Knoepfel, 11/20/2015 02:59 PM

History

#1 Updated by Kyle Knoepfel about 5 years ago

  • Description updated (diff)

#2 Updated by Kyle Knoepfel about 5 years ago

  • Status changed from New to Accepted

#3 Updated by Eric Flumerfelt about 5 years ago

From lsof:

EventBuil 12040  eflumerf  mem       REG                9,2 42858966   30673767 /home/eflumerf/Desktop/artdaq-demo-base/products/art/v1_17_03/slf6.x86_64.e9.prof/lib/libart_Framework_Core.so
Aggregato 12044  eflumerf  mem       REG                9,2 42858966   30673767 /home/eflumerf/Desktop/artdaq-demo-base/products/art/v1_17_03/slf6.x86_64.e9.prof/lib/libart_Framework_Core.so

Output of main_pset.get_all_keys():

Fri Nov 20 14:20:28 -0600 2015: daq
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.expected_fragments_per_event
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.first_fragment_receiver_rank
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.fragment_receiver_count
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.mpi_buffer_count
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.print_event_store_stats
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.use_art
Fri Nov 20 14:20:28 -0600 2015: daq.event_builder.verbose
Fri Nov 20 14:20:28 -0600 2015: daq.max_fragment_size_words
Fri Nov 20 14:20:28 -0600 2015: daq.metrics
Fri Nov 20 14:20:28 -0600 2015: daq.metrics.evbFile
Fri Nov 20 14:20:28 -0600 2015: daq.metrics.evbFile.fileName
Fri Nov 20 14:20:28 -0600 2015: daq.metrics.evbFile.level
Fri Nov 20 14:20:28 -0600 2015: daq.metrics.evbFile.metricPluginType
Fri Nov 20 14:20:28 -0600 2015: daq.metrics.evbFile.uniquify
Fri Nov 20 14:20:28 -0600 2015: outputs
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.SelectEvents
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.SelectEvents.SelectEvents
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.SelectEvents.SelectEvents[0]
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.SelectEvents.SelectEvents[1]
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.module_label
Fri Nov 20 14:20:28 -0600 2015: outputs.rootMPIOutput.module_type
Fri Nov 20 14:20:28 -0600 2015: physics
Fri Nov 20 14:20:28 -0600 2015: physics.analyzers
Fri Nov 20 14:20:28 -0600 2015: physics.filters
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod2
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod2.module_label
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod2.module_type
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod2.nth
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod3
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod3.module_label
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod3.module_type
Fri Nov 20 14:20:28 -0600 2015: physics.filters.prescaleMod3.nth
Fri Nov 20 14:20:28 -0600 2015: physics.my_output_modules
Fri Nov 20 14:20:28 -0600 2015: physics.my_output_modules[0]
Fri Nov 20 14:20:28 -0600 2015: physics.p1
Fri Nov 20 14:20:28 -0600 2015: physics.pmod2
Fri Nov 20 14:20:28 -0600 2015: physics.pmod2[0]
Fri Nov 20 14:20:28 -0600 2015: physics.pmod3
Fri Nov 20 14:20:28 -0600 2015: physics.pmod3[0]
Fri Nov 20 14:20:28 -0600 2015: physics.producers
Fri Nov 20 14:20:28 -0600 2015: process_name
Fri Nov 20 14:20:28 -0600 2015: services
Fri Nov 20 14:20:28 -0600 2015: services.CatalogInterface
Fri Nov 20 14:20:28 -0600 2015: services.CatalogInterface.service_provider
Fri Nov 20 14:20:28 -0600 2015: services.CatalogInterface.service_type
Fri Nov 20 14:20:28 -0600 2015: services.FileTransfer
Fri Nov 20 14:20:28 -0600 2015: services.FileTransfer.service_provider
Fri Nov 20 14:20:28 -0600 2015: services.FileTransfer.service_type
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.data_receiver_count
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.first_data_receiver_rank
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.max_fragment_size_words
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.mpi_buffer_count
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.service_provider
Fri Nov 20 14:20:28 -0600 2015: services.NetMonTransportServiceInterface.service_type
Fri Nov 20 14:20:28 -0600 2015: services.message
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.categories
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.categories.ArtReport
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.categories.ArtReport.limit
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.categories.default
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.categories.default.limit
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.threshold
Fri Nov 20 14:20:28 -0600 2015: services.message.destinations.STDOUT.type
Fri Nov 20 14:20:28 -0600 2015: services.scheduler
Fri Nov 20 14:20:28 -0600 2015: services.scheduler.fileMode
Fri Nov 20 14:20:28 -0600 2015: source
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[0][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[0][1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[1][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[1][1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[2]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[2][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[2][1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[3]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[3][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[3][1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[4]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[4][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[4][1]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[5]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[5][0]
Fri Nov 20 14:20:28 -0600 2015: source.fragment_type_map[5][1]
Fri Nov 20 14:20:28 -0600 2015: source.module_label
Fri Nov 20 14:20:28 -0600 2015: source.module_type
Fri Nov 20 14:20:28 -0600 2015: source.resume_after_timeout
Fri Nov 20 14:20:28 -0600 2015: source.waiting_time

#4 Updated by Eric Flumerfelt about 5 years ago

I don't get an error if I explicitly define errorOnFailureToPut in the EventBuilder fhicl config (supporting what you said about the Aggregator getting its art config from the EventBuilder).

#5 Updated by Kyle Knoepfel about 5 years ago

Thank you, Eric. Your response was very helpful. The problem is now understood.

The global "services.scheduler.errorOnFailureToPut" flag is inserted into the main ParameterSet by art whenever the standard artapp application is called. However, for artdaq, the Program::sink() function in builder.cc has a conditional assignment that sets the reader application:

bool useArt = daq_pset_.get<bool>("useArt", false);
// ...
artdaq::EventStore::ART_CMDLINE_FCN * reader =
      useArt ?
      &artapp :
      &artdaq::simpleQueueReaderApp;

The particular FHiCL file you sent us (see attached file), is a printout of what the aggregator received from the EventBuilder. Note that it has no "daq.useArt" parameter. The reader pointer is thus set by default to artdaq::simpleQueueReaderApp, and the parameters that are usually injected by art are absent from the main ParameterSet object. Hence, an exception is thrown by main_pset.get<bool>("services.scheduler.errorOnFailureToPut").

You have reported that adding the global "errorOnFailureToPut" flag in the event-builder configuration file fixes the problem, which addresses the problem. We can certainly consider adding a default value to the main_pset.get call. However, this issue brings up for discussion some of the difficulties in anticipating the consequences of changes made in art to artdaq. This is a discussion that the artists should have, possibly with the artdaq team as well.

#6 Updated by Kyle Knoepfel almost 5 years ago

  • Assignee deleted (Paul Russo)

#7 Updated by Kyle Knoepfel almost 5 years ago

  • Tracker changed from Support to Bug
  • Status changed from Accepted to Resolved
  • Assignee set to Paul Russo

#8 Updated by Kyle Knoepfel almost 5 years ago

  • Tracker changed from Bug to Support

#9 Updated by Kyle Knoepfel almost 5 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF