===== NestDAQ Trouble shooting =====
* 以下のエラーが出ていた
[14:28:16][ERROR] Failed to enqueue OutputChannel │ "instances": [
[14:28:16][ERROR] Failed transfer on socket Scaler-0.out[0].pull, errno: 95, reason: Operation n│ "all"
ot supported
* topology.sh で pull になっていた。push にすべし。
endpoint Scaler out type pull method connect
| | |
V V V
endpoint Scaler out type push method connect
* 2024/07/11 GR honor seminar exp.
以下のようになっていると、SubTimeFrameBuilder でデータがこない。
{{:softwares:nestdaq:screen_shot_2024-07-11_at_20.38.43.png?400|}}
#!/bin/bash
redis_server=`cat redis-server.txt|sed 's/[[:blank:]]//g'`
server=redis://$redis_server/0
#function config_endpoint () {
function endpoint () {
# Usage:
# config_endpoint "service" "channel" "parameters"
echo redis-cli -u $server hset daq_service:topology:endpoint:$1:$2 ${@:3}
redis-cli -u $server hset daq_service:topology:endpoint:$1:$2 ${@:3}
}
#function config_link () {
function link () {
# config_link "service1" "channel" "service2" "channel" "parameters"
echo redis-cli -u $server set daq_service:topology:link:$1:$2,$3:$4 non
redis-cli -u $server set daq_service:topology:link:$1:$2,$3:$4 none
}
echo "Clear DAQ service keys"
redis-cli -u $server keys 'daq_service:*' | xargs redis-cli -u $server del
echo "---------------------------------------------------------------------"
echo " config endpoint (socket)"
echo "---------------------------------------------------------------------"
#------------------------------------------------------------------------------------
# service channel options
#------------------------------------------------------------------------------------
# Sampler
endpoint AmQStrTdcSampler out type push method bind
# subtime frame builder
endpoint STFBuilder in type pull method connect
endpoint STFBuilder out type push method connect autoSubChannel true
endpoint STFBuilder dqm type push method bind
#Scaler
#endpoint Scaler in type pull method connect
#endpoint Scaler out type push method connect
# tf
endpoint TimeFrameBuilder in type pull method bind
endpoint TimeFrameBuilder out type push method connect # autoSubChannel true
#endpoint TimeFrameBuilder decimator type push method connect
# Sink
endpoint FileSink in type pull method bind
#endpoint DecSink in type pull method bind
echo "---------------------------------------------------------------------"
echo " config link"
echo "---------------------------------------------------------------------"
#------------------------------------------------------------------------------------
# service1 channel1 service2 channel2
#------------------------------------------------------------------------------------
link AmQStrTdcSampler out STFBuilder in
link STFBuilder out TimeFrameBuilder in
#link STFBuilder dqm Scaler in
#link Scaler out ScrSink in
link TimeFrameBuilder out FileSink in
#link TimeFrameBuilder decimator DecSink in
=== Redis のキーがない時のエラー ===
[14:36:52][DEBUG] registryUri: tcp://192.168.2.82:6379/0
[14:36:52][DEBUG] Exception caught in ProcessWork(), going to Error state
[14:36:52][INFO] daq::service::Plugin state : ERROR
[14:36:52][DEBUG] daq::service::Plugin run number (from redis) = 1033
[14:36:52][DEBUG] daq::service::MetricsPlugin state change: ERROR
[14:36:52][DEBUG] Shutting down Plugin Manager
[14:36:52][DEBUG] daq::service::ParameterConfigPlugin bye
[14:36:52][DEBUG] Unloaded plugin: 'parameter_config', version '0.0.0', maintainer 'ParameterConfig ', homepage 'https://github.com/spadi-alliance/nestdaq'
[14:36:52][DEBUG] daq::service::MetricsPluginUnsubscribeFromDeviceStateChange()
[14:36:52][DEBUG] ~daq::service::MetricsPlugin() bye
[14:36:52][DEBUG] Unloaded plugin: 'metrics', version '0.0.0', maintainer 'Metrics ', homepage 'https://github.com/spadi-alliance/nestdaq'
[14:36:52][WARN] daq::service::Plugin UnsubscribeFromDeviceStateChange()
[14:36:52][DEBUG] daq::service::TopologyConfig Reset
[14:36:52][DEBUG] daq::service::TopologyConfig Unregister n deleted = 3
[14:36:52][DEBUG] daq::service::Plugin Unregister
[14:36:52][DEBUG] redis : 4 deleted
[14:36:52][DEBUG] delete redis hash. key = daq_service:service-instance-index:FileSink, field = 0
[14:36:52][DEBUG] ~daq::service::Plugin() bye
[14:36:52][DEBUG] Unloaded plugin: 'daq_service', version '0.0.0', maintainer 'DAQService ', homepage 'https://github.com/spadi-alliance/nestdaq'
[14:36:52][DEBUG] Unloaded plugin: 'control', version '1.4.56', maintainer 'FairRootGroup ', homepage 'https://github.com/FairRootGroup/FairMQ'
[14:36:52][DEBUG] Unloaded plugin: 'config', version '1.4.56', maintainer 'FairRootGroup ', homepage 'https://github.com/FairRootGroup/FairMQ'
[14:36:52][DEBUG] Shutting down Plugin Services
[14:36:52][DEBUG] Shutting down device FileSink-0
[14:36:52][STATE] Exiting FairMQ state machine
[14:36:52][DEBUG] Destroying ZeroMQ transport...
[14:36:52][ERROR] Uncaught exception reached the top of main: std::bad_alloc
[13:59:51][STATE] READY ---> RUNNING
[13:59:51][INFO] daq::service::Plugin state : RUNNING
[13:59:51][DEBUG] daq::service::Plugin run number (from redis) = 1029
[13:59:51][DEBUG] daq::service::MetricsPlugin state change: RUNNING
[13:59:51][INFO] fair::mq::Device running...
[13:59:51][INFO] 370:PreRun
[13:59:51][DEBUG] Run number: 1029
[13:59:51][DEBUG] registryUri: tcp://192.168.2.82:6379/0
run comment here 1 :
run comment here 2:
./start_device.sh: 54 行: 377055 Segmentation fault (コアダンプ) /home/spadi/nestdaq/bin/FileSink -S '
if (fConfig->Count("registry-uri")) {
std::string registryUri = fConfig->GetProperty("registry-uri");
LOG(debug) << "registryUri: " << registryUri;
if (!registryUri.empty()) {
fClient = std::make_shared(registryUri);
std::string key;
fClient->keys("run_info:run_comment", &key);
if (key.length()>0) {
auto run_comment_ptr = fClient->get("run_info:run_comment");
run_comment = *run_comment_ptr;
LOG(debug) << "run comment: " << run_comment;
}else{
LOG(debug) << "There is no key run_info:run_comment";
}
}
}