Closed raphaelcervantes closed 4 years ago
To be clear, my configuration works as long as I run commands that are well defined.
The first issue is the KeyError
, that's a simple bug of the service trying to return an invalid return_code name, that should be resolved in #87, which updates the return code name.
The second issue is that ThrowReply tries to raise KeyErrors when you give it an invalid return code. It now falls back to a valid code (same PR) which should keep things from crashing in these cases.
the third issue is that you ended up with an exit code of 137. This I'm not clear on, if the core python exception (KeyError) caused python to exit, I'd expect an exit of 1. From the fact that all of that factory cleanup stuff is happening, I'd guess that something isn't being cleaned up correctly while the rest of the system is exiting. That's not good, because it can hide useful errors and may be a manifestation of a problem that could exist elsewhere too. @nsoblath do you have insights on this part?
I have installed dripline-python:v4.3.2-amd and still run into the same issue.
I am pasting the output of kubectl describe pod. It says that the Exit Code is 0.
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl describe pod curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl
Name: curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl
Namespace: default
Priority: 0
Node: nlwymmd/192.168.25.2
Start Time: Wed, 15 Apr 2020 17:55:51 -0700
Labels: app.kubernetes.io/instance=curved-mirror-stepper-motor
app.kubernetes.io/name=dripline-python
pod-template-hash=586d5dfcd7
Annotations: checksum/config: a8763cb3767119d3a0434896d805a495d8514c96952405ec26bccfa9cbeb6ca2
Status: Running
IP: 10.244.0.215
IPs:
IP: 10.244.0.215
Controlled By: ReplicaSet/curved-mirror-stepper-motor-dripline-python-deployment-586d5dfcd7
Containers:
dripline-python-app-container:
Container ID: docker://9449b3c9ca4e9fd7fd9dedbf40598a3eda51059db16554b49bb128f28419bec0
Image: driplineorg/dripline-python:v4.3.2-amd64
Image ID: docker-pullable://driplineorg/dripline-python@sha256:66d54f9e76f8efc370bd7856af8d911ee6c28624ad44991c828e3b7fab9a465e
Port: <none>
Host Port: <none>
Command:
dl-serve
-c
/etc/config/config_file.yaml
-v
-b
rabbitmq-app.default.svc.cluster.local
State: Running
Started: Wed, 15 Apr 2020 18:01:37 -0700
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Wed, 15 Apr 2020 17:55:52 -0700
Finished: Wed, 15 Apr 2020 18:01:37 -0700
Ready: True
Restart Count: 1
Environment: <none>
Mounts:
/etc/config from config-volume (rw)
/etc/rabbitmq-secret from auth-volume (ro)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-gzdzb (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
config-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: curved-mirror-stepper-motor-dripline-python-config
Optional: false
auth-volume:
Type: Secret (a volume populated by a Secret)
SecretName: rabbitmq-authentications-secret
Optional: false
default-token-gzdzb:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-gzdzb
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute
I am also pasting the output of the terminal where I ran the dl-agent bash command. It says that it terminated with exit code 137. I did not run it in debugger mode because I would have to compile the image manually. Let me know if the debugger mode output would actually help.
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl exec -it curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl bash
root@curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl:/# dl-agent
A subcommand is required
Run with --help for more information.
root@curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl:/# dl-agent --auth-file /etc/rabbitmq-secret/
..2020_04_16_00_55_51.720829190/ ..data/ authentications.json
root@curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl:/# dl-agent --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app get curved_mirror_steps
2020-04-16 01:01:29 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_steps
timeout : 10
}
2020-04-16 01:01:29 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16 01:01:29 [ PROG] library/agent.cc(225): Response:
Return code: 0
Return message:
{
value_cal : -8
value_raw : -8
}
Routing key: amq.gen-rDc9tlXnJZebAo-CkeMBOQ
Correlation ID: f9eca4db-eeec-4cc7-9467-09d469ab8d49
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T01:01:29.146021Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload:
{
value_cal : -8
value_raw : -8
}
Return Code: 0
Return Message:
root@curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl:/# dl-agent --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_steps
2020-04-16 01:01:35 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_steps
timeout : 10
}
2020-04-16 01:01:35 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16 01:01:36 [ PROG] library/agent.cc(225): Response:
Return code: 999
Return message: IndexError: deque::_M_range_check: __n (which is 0)>= this->size() (which is 0)
At:
/usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(45): do_set_request
Routing key: amq.gen-zS9k6eL5CbZm08BKaVmdIw
Correlation ID: a5494678-6c97-48ab-8c0f-f178d99afb89
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T01:01:36.007942Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload: null
Return Code: 999
Return Message: IndexError: deque::_M_range_check: __n (which is 0)>= this->size() (which is 0)
At:
/usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(45): do_set_request
root@curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl:/# command terminated with exit code 137
I am also pasting the output of kubectl logs
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl logs -p curved-mirror-stepper-motor-dripline-python-deployment-586mpxjl
2020-04-16 00:55:52 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
broker : rabbitmq-app.default.svc.cluster.local
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
runtime-config :
{
auth_file : /etc/rabbitmq-secret/authentications.json
cmd_at_reconnect :
[
IFD
JS0.300
VE0.300
EG20000
ER20000
SA
]
command_terminator :
endpoints :
[
{
calibration : {}
extract_raw_regex : IP=(?P<value_raw>.*)
get_str : IP
log_interval : 10
module : FormatEntity
name : curved_mirror_steps
}
{
calibration : {}
extract_raw_regex : IE=(?P<value_raw>.*)
get_str : IE
log_interval : 10
module : FormatEntity
name : curved_mirror_encoder
}
{
extract_raw_regex : (?P<value_raw>.*)
module : FormatEntity
name : curved_mirror_move_steps
set_str : FL{:.0f}
2020-04-16T00:55:52[INFO ] dripline(86) -> python got a master config:
{'dripline': {'alerts-exchange': 'alerts', 'broker': 'rabbitmq-app.default.svc.cluster.local', 'heartbeat-interval-s': 60, 'heartbeat-routing-key': 'heartbeat', 'loop-timeout-ms': 1000, 'max-payload-size': 10000, 'message-wait-ms': 1000, 'requests-exchange': 'requests'}, 'runtime-config': {'auth_file': '/etc/rabbitmq-secret/authentications.json', 'cmd_at_reconnect': ['\x00\x07IFD\r', '\x00\x07JS0.300\r', '\x00\x07VE0.300\r', '\x00\x07EG20000\r', '\x00\x07ER20000\r', '\x00\x07SA\r'], 'command_terminator': '\r\n', 'endpoints': [{'calibration': '{}', 'extract_raw_regex': '\x00\x07IP=(?P<value_raw>.*)', 'get_str': '\x00\x07IP', 'log_interval': 10, 'module': 'FormatEntity', 'name': 'curved_mirror_steps'}, {'calibration': '{}', 'extract_raw_regex': '\x00\x07IE=(?P<value_raw>.*)', 'get_str': '\x00\x07IE', 'log_interval': 10, 'module': 'FormatEntity', 'name': 'curved_mirror_encoder'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'module': 'FormatEntity', 'name': 'curved_mirror_move_steps', 'set_str': '\x00\x07FL{:.0f}'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'get_str': '\x00\x07SK', 'module': 'FormatEntity', 'name': 'curved_mirror_stop'}], 'module': 'EthernetSCPIService', 'name': 'curved_mirror_motor', 'reconnect_test': '\x00\x07%', 'response_terminator': '\r', 'socket_info': '("192.168.25.3",7776)'}}
}
{
extract_raw_regex : (?P<value_raw>.*)
get_str : SK
module : FormatEntity
name : curved_mirror_stop
}
]
module : EthernetSCPIService
name : curved_mirror_motor
reconnect_test : %
response_terminator :
socket_info : ("192.168.25.3",7776)
}
}
2020-04-16 00:55:52 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(86) -> Ethernet socket ('192.168.25.3', 7776) established
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IFD\r\r\n' -> '\x00\x07%'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07JS0.300\r\r\n' -> '\x00\x07%'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07VE0.300\r\r\n' -> '\x00\x07%'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07EG20000\r\r\n' -> '\x00\x07%'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07ER20000\r\r\n' -> '\x00\x07?4'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07SA\r\r\n' -> '\x00\x07%'
2020-04-16T00:55:52[INFO ] dripline(99) -> service built
2020-04-16T00:55:52[INFO ] dripline.core.entity(150) -> should start logging every 0:00:10
2020-04-16T00:55:52[INFO ] dripline.core.entity(150) -> should start logging every 0:00:10
2020-04-16T00:55:52[INFO ] dripline(110) -> about to start the service
2020-04-16T00:55:52[INFO ] dripline(112) -> services started, now to listen
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:55:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:56:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:56:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:57:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:57:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:58:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:58:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T00:59:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T00:59:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:42[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:00:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:00:52[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:01:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:01:02[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:01:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:01:12[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:01:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:01:22[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16T01:01:29[INFO ] dripline.core.endpoint(24) -> in get_request
2020-04-16T01:01:29[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:01:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T01:01:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-16 01:01:35 [ERROR] rary/endpoint.cc(191): Caught exception from Python: IndexError: deque::_M_range_check: __n (which is 0)>= this->size() (which is 0)
At:
/usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(45): do_set_request
2020-04-16 01:01:36 [ERROR] brary/service.cc(467): <curved_mirror_motor> Standard exception caught while handling message: IndexError: deque::_M_range_check: __n (which is 0)>= this->size() (which is 0)
At:
/usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(45): do_set_request
2020-04-16 01:01:36 [ERROR] rary/receiver.cc(399): Exception caught; shutting down.
IndexError: deque::_M_range_check: __n (which is 0)>= this->size() (which is 0)
At:
/usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(45): do_set_request
Thank for the detailed post @raphaelcervantes. I have several notes about what's going on here. Hopefully it will help you keep going, though I agree with the implicit point that we need to improve the error handling here.
When pasting long output like above, please put a clear heading on each block (bold or a title or something) so that it is quick/easy to see when a new one starts when scrolling up and down.
If you repeat this test, it would be helpful if you could disable the logging of that sensor first. That way we won't have to filter out console logs related to that from those related to the failure mode.
The error comes when we try to extract the "values"
field from the request payload. That field does not exist, and the underlying C++ type seems to be throwing an exception we aren't handling very well.
**I think that this is the issue that we should solve in #88 (this issue), there are others (below) that should be dealt with but should be treated separately. I'll open other issues and link them shortly.
OP_SET
without a value. Please try your command again and include a value to set. Doing so should result in a more useful error return message saying that set is not supported for this device.param_array::operator[]
and thrown as something else, it may be fine as is. dl_agent
return an error if there are no values in the payload? I think it probably makes sense to refuse to send an OP_SET with no value, though I guess the protocol as written doesn't make this explicitly clear. I'm resistant to allowing sets without a value provided because I think it opens the door to confusion (if you want it to set some default value, that seems like it should be an OP_CMD to restore defaults to me)Entity
class should handle whatever is done in 2 and use that to raise a ThrowReply with a useful message there.dripline::endpoint::on_request_message
?) must have handled this exception and generated a 999 ThrowReply. Shouldn't this service then have continued to run (rather than exiting with 0)? At the very least it should exit with some error codeI'm baffled by this still. I'd expect a shell return based on the 999 return code. Either we're just computing that wrong, or something is seg faulting right at the end when it should be cleaning up to exit "normally" ... I don't have a good model for this it is noted here
@laroque I am happy to repeat any tests. I realize I need to use set with a value. I was just testing dripline's error handling.
If you repeat this test, it would be helpful if you could disable the logging of that sensor first. That way we won't have to filter out console logs related to that from those related to the failure mode.
What do you mean by disabling logging for the sensor? I have also gotten in the habit of posting the logs in their entirety because it's usually requested. But I will format it better next time.
(our end) [@nsoblath] could OP_SET in dl_agent return an error if there are no values in the payload? I think it probably makes sense to refuse to send an OP_SET with no value, though I guess the protocol as written doesn't make this explicitly clear. I'm resistant to allowing sets without a value provided because I think it opens the door to confusion (if you want it to set some default value, that seems like it should be an OP_CMD to restore defaults to me)
As a user and not a developer, I wouldn't like it if dripline allowed me to use a set without a value. I can easliy imagine myself accidentally using set
instead of get
(in fact, this is what started this thread). I would like dripline to just throw me an error. I would really dislike it if I unwittingly set something to some default value.
Yeah, more complete testing of the error handling is helpful, we've been trying to build up automatic testing but the coverage is low. If your endpoint doesn't support set, you should get an error (and nothing crashing) if you do a set with a value, is that working correctly?
By "disable logging" I mean the behavior where it is automatically doing a get action and then sending an alert message with the values every 10 seconds.
Posting the detailed console logs was useful, thanks for doing that.
Also note, I've reproduced all of the issues above:
It seems that error catching in other scenarios is well behaved. If I do a get with an endpoint that only has a set command defined, then I have the error message
Return Message: endpoint 'curved_mirror_move_steps' does not support get
This is also true if I do a set command with a value for an endpoint without a defined set command.
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl exec -it curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96 bash
root@curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96:/# dl-agent -vv --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app get curved_mirror_steps
2020-04-16 04:53:05 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_steps
timeout : 10
}
2020-04-16 04:53:05 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16 04:53:05 [ PROG] library/agent.cc(225): Response:
Return code: 0
Return message:
{
value_cal : -8
value_raw : -8
}
Routing key: amq.gen-J_nryh1J_kAwuqhzafnADQ
Correlation ID: c45b1427-12a0-43c1-a041-6b4545b66b35
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T04:53:05.922460Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload:
{
value_cal : -8
value_raw : -8
}
Return Code: 0
Return Message:
root@curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96:/# dl-agent -vv --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_move_steps 0
2020-04-16 04:53:18 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_move_steps
timeout : 10
}
2020-04-16 04:53:18 [ PROG] i/application.cc(129): Ordered args:
[
0
]
2020-04-16 04:53:18 [ PROG] library/agent.cc(225): Response:
Return code: 0
Return message:
Routing key: amq.gen-x8rFT0_bgrZKvN8s2rdqQQ
Correlation ID: f0b88a3c-9872-442c-850f-53092b4a767c
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T04:53:18.014244Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload:
Return Code: 0
Return Message:
root@curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96:/# dl-agent -vv --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app get curved_mirror_move_steps
2020-04-16 04:53:24 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_move_steps
timeout : 10
}
2020-04-16 04:53:24 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16 04:53:24 [ PROG] library/agent.cc(225): Response:
Return code: 300
Return message: endpoint 'curved_mirror_move_steps' does not support get
Routing key: amq.gen-Wiay8RRvy61fEleNIoK6Ug
Correlation ID: 4f0820b4-7d49-4c87-b381-f0e031d7f469
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T04:53:24.994359Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload: null
Return Code: 300
Return Message: endpoint 'curved_mirror_move_steps' does not support get
root@curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96:/# dl-agent -vv --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_steps 0
2020-04-16 04:53:47 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_steps
timeout : 10
}
2020-04-16 04:53:47 [ PROG] i/application.cc(129): Ordered args:
[
0
]
2020-04-16 04:53:47 [ PROG] library/agent.cc(225): Response:
Return code: 300
Return message: endpoint 'curved_mirror_steps' does not support set
Routing key: amq.gen-sAS_IPCvfNsydLPU016TJQ
Correlation ID: 68a808d0-52f9-4211-a6d5-f706c5d4c6aa
Reply To:
Message Type: 2
Encoding: json
Timestamp: 2020-04-16T04:53:47.404071Z
Sender Info:
Executable: /usr/local/bin/python3.7
Hostname: curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96
Username: root
Service: curved_mirror_motor
Versions:
dripline:
Version: 3.0.0
Commit:
Package:
dripline-cpp:
Version: 2.3.0
Commit: e464aecef3fd1a536945744285378ab62a1e98af
Package: driplineorg/dripline-cpp
dripline-python:
Version: 0.0.0
Commit: na
Package: driplineorg/dripline-python
Specifier:
Payload: null
Return Code: 300
Return Message: endpoint 'curved_mirror_steps' does not support set
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl logs -f curved-mirror-stepper-motor-dripline-python-deployment-5dcpln96
2020-04-16 04:51:32 [ PROG] i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
broker : rabbitmq-app.default.svc.cluster.local
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
runtime-config :
2020-04-16T04:51:32[INFO ] dripline(86) -> python got a master config:
{'dripline': {'alerts-exchange': 'alerts', 'broker': 'rabbitmq-app.default.svc.cluster.local', 'heartbeat-interval-s': 60, 'heartbeat-routing-key': 'heartbeat', 'loop-timeout-ms': 1000, 'max-payload-size': 10000, 'message-wait-ms': 1000, 'requests-exchange': 'requests'}, 'runtime-config': {'auth_file': '/etc/rabbitmq-secret/authentications.json', 'cmd_at_reconnect': ['\x00\x07IFD\r', '\x00\x07JS0.300\r', '\x00\x07VE0.300\r', '\x00\x07EG20000\r', '\x00\x07ER20000\r', '\x00\x07SA\r'], 'command_terminator': '\r\n', 'endpoints': [{'calibration': '{}', 'extract_raw_regex': '\x00\x07IP=(?P<value_raw>.*)', 'get_str': '\x00\x07IP', 'module': 'FormatEntity', 'name': 'curved_mirror_steps'}, {'calibration': '{}', 'extract_raw_regex': '\x00\x07IE=(?P<value_raw>.*)', 'get_str': '\x00\x07IE', 'module': 'FormatEntity', 'name': 'curved_mirror_encoder'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'module': 'FormatEntity', 'name': 'curved_mirror_move_steps', 'set_str': '\x00\x07FL{:.0f}'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'get_str': '\x00\x07SK', 'module': 'FormatEntity', 'name': 'curved_mirror_stop'}], 'module': 'EthernetSCPIService', 'name': 'curved_mirror_motor', 'reconnect_test': '\x00\x07%', 'response_terminator': '\r', 'socket_info': '("192.168.25.3",7776)'}}
{
auth_file : /etc/rabbitmq-secret/authentications.json
cmd_at_reconnect :
[
IFD
JS0.300
VE0.300
EG20000
ER20000
SA
]
command_terminator :
endpoints :
[
{
calibration : {}
extract_raw_regex : IP=(?P<value_raw>.*)
get_str : IP
module : FormatEntity
name : curved_mirror_steps
}
{
calibration : {}
extract_raw_regex : IE=(?P<value_raw>.*)
get_str : IE
module : FormatEntity
name : curved_mirror_encoder
}
{
extract_raw_regex : (?P<value_raw>.*)
module : FormatEntity
name : curved_mirror_move_steps
set_str : FL{:.0f}
}
{
extract_raw_regex : (?P<value_raw>.*)
get_str : SK
module : FormatEntity
name : curved_mirror_stop
}
]
module : EthernetSCPIService
name : curved_mirror_motor
reconnect_test : %
response_terminator :
socket_info : ("192.168.25.3",7776)
}
}
2020-04-16 04:51:32 [ PROG] i/application.cc(129): Ordered args:
[
]
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(86) -> Ethernet socket ('192.168.25.3', 7776) established
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IFD\r\r\n' -> '\x00\x07%'
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07JS0.300\r\r\n' -> '\x00\x07%'
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07VE0.300\r\r\n' -> '\x00\x07%'
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07EG20000\r\r\n' -> '\x00\x07%'
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07ER20000\r\r\n' -> '\x00\x07?4'
2020-04-16T04:51:32[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07SA\r\r\n' -> '\x00\x07%'
2020-04-16T04:51:32[INFO ] dripline(99) -> service built
2020-04-16T04:51:32[INFO ] dripline(110) -> about to start the service
2020-04-16T04:51:32[INFO ] dripline(112) -> services started, now to listen
2020-04-16T04:53:05[INFO ] dripline.core.endpoint(24) -> in get_request
2020-04-16T04:53:05[WARNING ] dripline.implementations.ethernet_scpi_service(123) -> socket.error <[Errno 104] Connection reset by peer> received, attempting reconnect
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(86) -> Ethernet socket ('192.168.25.3', 7776) established
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IFD\r\r\n' -> '\x00\x07%'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07JS0.300\r\r\n' -> '\x00\x07%'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07VE0.300\r\r\n' -> '\x00\x07%'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07EG20000\r\r\n' -> '\x00\x07%'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07ER20000\r\r\n' -> '\x00\x07?4'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07SA\r\r\n' -> '\x00\x07%'
2020-04-16T04:53:05[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-16T04:53:05[CRITICAL] dripline.implementations.ethernet_scpi_service(126) -> Ethernet connection reestablished
2020-04-16T04:53:18[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07FL0\r\n' -> '\x00\x07%'
2020-04-16T04:53:24[INFO ] dripline.core.endpoint(24) -> in get_request
2020-04-16 04:53:24 [ WARN] rary/endpoint.cc(181): Replying with: endpoint 'curved_mirror_move_steps' does not support get
2020-04-16 04:53:47 [ WARN] rary/endpoint.cc(181): Replying with: endpoint 'curved_mirror_steps' does not support set
- (our end) [@nsoblath] could OP_SET in dl_agent return an error if there are no values in the payload? I think it probably makes sense to refuse to send an OP_SET with no value, though I guess the protocol as written doesn't make this explicitly clear. I'm resistant to allowing sets without a value provided because I think it opens the door to confusion (if you want it to set some default value, that seems like it should be an OP_CMD to restore defaults to me)
In principle this was already being done. However, another part of the code was defeating the check for values. I've implemented a fix for this in driplineorg/dripline-cpp commit c7dbf26.
- (our end) [@nsoblath] should that IndexError be handled in param_array::operator[] and thrown as something else, it may be fine as is.
I think this should be left as is. This is a normal out-of-range exception being thrown for accessing an array outside of its bounds. I want to keep that behavior in param_array, same as is done for param_node for invalid keys. It's up to the client code if they want to allow such exceptions to be caught or not.
- (our end) [@nsoblath] something (dripline::endpoint::on_request_message?) must have handled this exception and generated a 999 ThrowReply. Shouldn't this service then have continued to run (rather than exiting with 0)? At the very least it should exit with some error code
The service is exiting, but the error code is not right. I see an error code of 0
, which agrees with what you saw, @laroque. I have a hotfix going in scarab and some modifications to how return codes are handled in dripline to address this problem.
@nsoblath I think your fix worked! I get the errors:
2020-04-17 01:23:18 [ERROR] (tid 140473120618368) library/agent.cc(418): No "values" option given 2020-04-17 01:23:18 [ERROR] (tid 140473120618368) library/agent.cc(160): Unable to create request I'm now going to paste the output of the dl-agent command and the container logs
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl exec -it curved-mirror-stepper-motor-dripline-python-deployment-6467c8mv bash
root@curved-mirror-stepper-motor-dripline-python-deployment-6467c8mv:/# dl-agent --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_steps
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fb875040440, indexed_factory #0 for 0x55cd67ba27f0
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fb875040480, indexed_factory #0 for 0x55cd67ba33e0
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fb875040540, indexed_factory #1 for 0x55cd67ba27f0
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fb875040580, indexed_factory #1 for 0x55cd67ba33e0
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 0 at 0x7fb8754dfe70, indexed_factory #0 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 1 at 0x7fb8754dfe80, indexed_factory #1 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 2 at 0x7fb8754dfe90, indexed_factory #2 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 3 at 0x7fb8754dfea0, indexed_factory #3 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 4 at 0x7fb8754dfeb0, indexed_factory #4 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 5 at 0x7fb8754dfec0, indexed_factory #5 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 100 at 0x7fb8754dfed0, indexed_factory #6 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 101 at 0x7fb8754dfee0, indexed_factory #7 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 102 at 0x7fb8754dfef0, indexed_factory #8 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 200 at 0x7fb8754dff00, indexed_factory #9 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 201 at 0x7fb8754dff10, indexed_factory #10 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 202 at 0x7fb8754dff20, indexed_factory #11 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 203 at 0x7fb8754dff30, indexed_factory #12 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 300 at 0x7fb8754dff40, indexed_factory #13 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 301 at 0x7fb8754dff50, indexed_factory #14 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 302 at 0x7fb8754dff60, indexed_factory #15 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 303 at 0x7fb8754dff70, indexed_factory #16 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 304 at 0x7fb8754dff80, indexed_factory #17 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 305 at 0x7fb8754dff90, indexed_factory #18 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 306 at 0x7fb8754dffa0, indexed_factory #19 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 307 at 0x7fb8754dffb0, indexed_factory #20 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 308 at 0x7fb8754dffc0, indexed_factory #21 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 310 at 0x7fb8754dffd0, indexed_factory #22 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 400 at 0x7fb8754dffe0, indexed_factory #23 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 401 at 0x7fb8754dfff0, indexed_factory #24 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 402 at 0x7fb8754e0000, indexed_factory #25 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 403 at 0x7fb8754e0010, indexed_factory #26 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 404 at 0x7fb8754e0020, indexed_factory #27 for 0x55cd67ba6a50
2020-04-17 01:23:05 [DEBUG] (tid 140430201255808) dexed_factory.hh(208): Registered a indexed_factory for class 999 at 0x7fb8754e0030, indexed_factory #28 for 0x55cd67ba6a50
2020-04-17 01:23:05 [ PROG] (tid 140430201255808) i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_steps
timeout : 10
}
2020-04-17 01:23:05 [ PROG] (tid 140430201255808) i/application.cc(129): Ordered args:
[
]
2020-04-17 01:23:05 [ERROR] (tid 140430201255808) library/agent.cc(418): No "values" option given
2020-04-17 01:23:05 [ERROR] (tid 140430201255808) library/agent.cc(160): Unable to create request
root@curved-mirror-stepper-motor-dripline-python-deployment-6467c8mv:/# dl-agent --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_move_steps
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fc273358440, indexed_factory #0 for 0x563e937617f0
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fc273358480, indexed_factory #0 for 0x563e937623e0
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fc273358540, indexed_factory #1 for 0x563e937617f0
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fc273358580, indexed_factory #1 for 0x563e937623e0
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 0 at 0x7fc2737f7e70, indexed_factory #0 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 1 at 0x7fc2737f7e80, indexed_factory #1 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 2 at 0x7fc2737f7e90, indexed_factory #2 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 3 at 0x7fc2737f7ea0, indexed_factory #3 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 4 at 0x7fc2737f7eb0, indexed_factory #4 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 5 at 0x7fc2737f7ec0, indexed_factory #5 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 100 at 0x7fc2737f7ed0, indexed_factory #6 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 101 at 0x7fc2737f7ee0, indexed_factory #7 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 102 at 0x7fc2737f7ef0, indexed_factory #8 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 200 at 0x7fc2737f7f00, indexed_factory #9 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 201 at 0x7fc2737f7f10, indexed_factory #10 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 202 at 0x7fc2737f7f20, indexed_factory #11 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 203 at 0x7fc2737f7f30, indexed_factory #12 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 300 at 0x7fc2737f7f40, indexed_factory #13 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 301 at 0x7fc2737f7f50, indexed_factory #14 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 302 at 0x7fc2737f7f60, indexed_factory #15 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 303 at 0x7fc2737f7f70, indexed_factory #16 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 304 at 0x7fc2737f7f80, indexed_factory #17 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 305 at 0x7fc2737f7f90, indexed_factory #18 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 306 at 0x7fc2737f7fa0, indexed_factory #19 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 307 at 0x7fc2737f7fb0, indexed_factory #20 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 308 at 0x7fc2737f7fc0, indexed_factory #21 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 310 at 0x7fc2737f7fd0, indexed_factory #22 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 400 at 0x7fc2737f7fe0, indexed_factory #23 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 401 at 0x7fc2737f7ff0, indexed_factory #24 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 402 at 0x7fc2737f8000, indexed_factory #25 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 403 at 0x7fc2737f8010, indexed_factory #26 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 404 at 0x7fc2737f8020, indexed_factory #27 for 0x563e93765a50
2020-04-17 01:23:18 [DEBUG] (tid 140473120618368) dexed_factory.hh(208): Registered a indexed_factory for class 999 at 0x7fc2737f8030, indexed_factory #28 for 0x563e93765a50
2020-04-17 01:23:18 [ PROG] (tid 140473120618368) i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
auth-file : /etc/rabbitmq-secret/authentications.json
broker : rabbitmq-app
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
rk : curved_mirror_move_steps
timeout : 10
}
2020-04-17 01:23:18 [ PROG] (tid 140473120618368) i/application.cc(129): Ordered args:
[
]
2020-04-17 01:23:18 [ERROR] (tid 140473120618368) library/agent.cc(418): No "values" option given
2020-04-17 01:23:18 [ERROR] (tid 140473120618368) library/agent.cc(160): Unable to create request
raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl logs -f curved-mirror-stepper-motor-dripline-python-deployment-6467c8mv
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7f3440cc3440, indexed_factory #0 for 0x55cfbdbd8d20
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7f3440cc3480, indexed_factory #0 for 0x55cfbdbb9b30
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7f3440cc3540, indexed_factory #1 for 0x55cfbdbd8d20
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7f3440cc3580, indexed_factory #1 for 0x55cfbdbb9b30
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 0 at 0x7f3440588e70, indexed_factory #0 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 1 at 0x7f3440588e80, indexed_factory #1 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 2 at 0x7f3440588e90, indexed_factory #2 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 3 at 0x7f3440588ea0, indexed_factory #3 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 4 at 0x7f3440588eb0, indexed_factory #4 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 5 at 0x7f3440588ec0, indexed_factory #5 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 100 at 0x7f3440588ed0, indexed_factory #6 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 101 at 0x7f3440588ee0, indexed_factory #7 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 102 at 0x7f3440588ef0, indexed_factory #8 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 200 at 0x7f3440588f00, indexed_factory #9 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 201 at 0x7f3440588f10, indexed_factory #10 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 202 at 0x7f3440588f20, indexed_factory #11 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 203 at 0x7f3440588f30, indexed_factory #12 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 300 at 0x7f3440588f40, indexed_factory #13 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 301 at 0x7f3440588f50, indexed_factory #14 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 302 at 0x7f3440588f60, indexed_factory #15 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 303 at 0x7f3440588f70, indexed_factory #16 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 304 at 0x7f3440588f80, indexed_factory #17 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 305 at 0x7f3440588f90, indexed_factory #18 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 306 at 0x7f3440588fa0, indexed_factory #19 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 307 at 0x7f3440588fb0, indexed_factory #20 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 308 at 0x7f3440588fc0, indexed_factory #21 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 310 at 0x7f3440588fd0, indexed_factory #22 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 400 at 0x7f3440588fe0, indexed_factory #23 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 401 at 0x7f3440588ff0, indexed_factory #24 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 402 at 0x7f3440589000, indexed_factory #25 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 403 at 0x7f3440589010, indexed_factory #26 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 404 at 0x7f3440589020, indexed_factory #27 for 0x55cfbdc21af0
2020-04-17 01:21:14 [DEBUG] (tid 139862414415680) dexed_factory.hh(208): Registered a indexed_factory for class 999 at 0x7f3440589030, indexed_factory #28 for 0x55cfbdc21af0
2020-04-17 01:21:14 [ PROG] (tid 139862414415680) i/application.cc(128): Final configuration:
{
dripline :
{
alerts-exchange : alerts
broker : rabbitmq-app.default.svc.cluster.local
heartbeat-interval-s : 60
heartbeat-routing-key : heartbeat
loop-timeout-ms : 1000
max-payload-size : 10000
message-wait-ms : 1000
requests-exchange : requests
}
runtime-config :
{
auth_file : /etc/rabbitmq-secret/authentications.json
cmd_at_reconnect :
[
IFD
JS0.300
VE0.300
EG20000
ER20000
SA
]
command_terminator :
endpoints :
[
{
calibration : {}
extract_raw_regex : IP=(?P<value_raw>.*)
get_str : IP
module : FormatEntity
name : curved_mirror_steps
}
{
calibration : {}
extract_raw_regex : IE=(?P<value_raw>.*)
get_str : IE
module : FormatEntity
name : curved_mirror_encoder
}
{
extract_raw_regex : (?P<value_raw>.*)
module : FormatEntity
name : curved_mirror_move_steps
set_str : FL{:.0f}
2020-04-17T01:21:14[INFO ] dripline(86) -> python got a master config:
{'dripline': {'alerts-exchange': 'alerts', 'broker': 'rabbitmq-app.default.svc.cluster.local', 'heartbeat-interval-s': 60, 'heartbeat-routing-key': 'heartbeat', 'loop-timeout-ms': 1000, 'max-payload-size': 10000, 'message-wait-ms': 1000, 'requests-exchange': 'requests'}, 'runtime-config': {'auth_file': '/etc/rabbitmq-secret/authentications.json', 'cmd_at_reconnect': ['\x00\x07IFD\r', '\x00\x07JS0.300\r', '\x00\x07VE0.300\r', '\x00\x07EG20000\r', '\x00\x07ER20000\r', '\x00\x07SA\r'], 'command_terminator': '\r\n', 'endpoints': [{'calibration': '{}', 'extract_raw_regex': '\x00\x07IP=(?P<value_raw>.*)', 'get_str': '\x00\x07IP', 'module': 'FormatEntity', 'name': 'curved_mirror_steps'}, {'calibration': '{}', 'extract_raw_regex': '\x00\x07IE=(?P<value_raw>.*)', 'get_str': '\x00\x07IE', 'module': 'FormatEntity', 'name': 'curved_mirror_encoder'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'module': 'FormatEntity', 'name': 'curved_mirror_move_steps', 'set_str': '\x00\x07FL{:.0f}'}, {'extract_raw_regex': '\x00\x07(?P<value_raw>.*)', 'get_str': '\x00\x07SK', 'module': 'FormatEntity', 'name': 'curved_mirror_stop'}], 'module': 'EthernetSCPIService', 'name': 'curved_mirror_motor', 'reconnect_test': '\x00\x07%', 'response_terminator': '\r', 'socket_info': '("192.168.25.3",7776)'}}
}
{
extract_raw_regex : (?P<value_raw>.*)
get_str : SK
module : FormatEntity
name : curved_mirror_stop
}
]
module : EthernetSCPIService
name : curved_mirror_motor
reconnect_test : %
response_terminator :
socket_info : ("192.168.25.3",7776)
}
}
2020-04-17 01:21:14 [ PROG] (tid 139862414415680) i/application.cc(129): Ordered args:
[
]
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(86) -> Ethernet socket ('192.168.25.3', 7776) established
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IFD\r\r\n' -> '\x00\x07%'
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07JS0.300\r\r\n' -> '\x00\x07%'
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07VE0.300\r\r\n' -> '\x00\x07%'
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07EG20000\r\r\n' -> '\x00\x07%'
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07ER20000\r\r\n' -> '\x00\x07?4'
2020-04-17T01:21:14[INFO ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07SA\r\r\n' -> '\x00\x07%'
2020-04-17T01:21:14[INFO ] dripline(99) -> service built
2020-04-17T01:21:14[INFO ] dripline(110) -> about to start the service
2020-04-17 01:21:14 [ INFO] (tid 139862414415680) brary/service.cc(174): Connecting to <rabbitmq-app.default.svc.cluster.local:5672>
2020-04-17T01:21:14[INFO ] dripline(112) -> services started, now to listen
2020-04-17 01:21:14 [ INFO] (tid 139862414415680) brary/service.cc(403): Listening for incoming messages on <curved_mirror_motor>
2020-04-17 01:21:14 [ INFO] (tid 139862366549760) y/heartbeater.cc(77): Starting heartbeat loop
@raphaelcervantes I think the open issues here are resolved in the releases we're putting out now (hopefully by the end of the day)
One other note, I think that the reason you're seeing dl-agent
exit with 137 is that you're running it in the same container as the service you're talking to, which was crashing. When the main application of a container exits, any other processes are aggressively killed, which I think is what you're seeing there. This is expected container behavior and not something dripline could change. When I run dl-agent from a different container, I see a reasonable exit code. It usually won't be a problem to do exactly what you're doing, but if you're testing client behavior it is best to run those tests in a different container.
Ok. That's interesting. I guess I'll try to run things from kv-store.
I think the various points here are resolved. Can be re-opened or a new issue created if that's not correct.
I find that dripline runs into a segmentation fault if you try to run a dl-agent set command on an endpoint with no defined setter. I think dripline should return an error in a more well-behaved way when this happens. I'm going to paste my run-time configuration, the error output when I run the dl-agent set command, and the output on the logs. I ran dripline in DEBUG mode, so the output is quite verbose.
This is the runtime-config
This is the error output after running the dl-agent command.
This is the error output in the log.