driplineorg / dripline-python

python implementation of project8/dripline
Apache License 2.0
3 stars 6 forks source link

dripline segfaults if you use set for an endpoint without a setter. #88

Closed raphaelcervantes closed 4 years ago

raphaelcervantes commented 4 years ago

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

  runtime-config:
    name: curved_mirror_motor
    module: EthernetSCPIService
    auth_file: /etc/rabbitmq-secret/authentications.json
    socket_info: (some_ip_address,7776)
    cmd_at_reconnect:
      - "\x00\x07IFD\x0D" #set to decimal
      - "\x00\x07JS0.300\x0D" #set jog speed to 20 rpm
      - "\x00\x07VE0.300\x0D" #set velocity to 20 rpm
      - "\x00\x07EG20000\x0D" #sets steps per revolution
      - "\x00\x07ER20000\x0D" #sets encoder resolution  
      - "\x00\x07SA\x0D" #saves parameters
    reconnect_test: "\x00\x07%"
    command_terminator: "\x0D\n"
    response_terminator: "\r"
    endpoints:
      - name: curved_mirror_steps
        module: FormatEntity
        get_str: "\x00\x07IP"
        extract_raw_regex: "\x00\x07IP=(?P<value_raw>.*)"
        calibration: "{}"
        log_interval: 10
      - name: curved_mirror_encoder
        module: FormatEntity
        get_str: "\x00\x07IE"
        extract_raw_regex: "\x00\x07IE=(?P<value_raw>.*)"
        calibration: "{}"
        log_interval: 10
      - name: curved_mirror_move_steps
        module: FormatEntity
        set_str: "\x00\x07FL{:.0f}"
        extract_raw_regex: "\x00\x07(?P<value_raw>.*)" #expects to get %
      - name: curved_mirror_stop
        module: FormatEntity
        get_str: "\x00\x07SK"
        extract_raw_regex: "\x00\x07(?P<value_raw>.*)" #expects to get %

This is the error output after running the dl-agent command.

root@curved-mirror-stepper-motor-dripline-python-deployment-766545k9:/# dl-agent -vv --auth-file /etc/rabbitmq-secret/authentications.json -b rabbitmq-app set curved_mirror_steps 0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7f2d4faf9440, indexed_factory #0 for 0x55ef825b07f0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7f2d4faf9480, indexed_factory #0 for 0x55ef825b13e0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7f2d4faf9540, indexed_factory #1 for 0x55ef825b07f0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7f2d4faf9580, indexed_factory #1 for 0x55ef825b13e0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 0 at 0x7f2d4ff98e50, indexed_factory #0 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 1 at 0x7f2d4ff98e60, indexed_factory #1 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 2 at 0x7f2d4ff98e70, indexed_factory #2 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 3 at 0x7f2d4ff98e80, indexed_factory #3 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 4 at 0x7f2d4ff98e90, indexed_factory #4 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 5 at 0x7f2d4ff98ea0, indexed_factory #5 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 100 at 0x7f2d4ff98eb0, indexed_factory #6 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 101 at 0x7f2d4ff98ec0, indexed_factory #7 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 102 at 0x7f2d4ff98ed0, indexed_factory #8 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 200 at 0x7f2d4ff98ee0, indexed_factory #9 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 201 at 0x7f2d4ff98ef0, indexed_factory #10 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 202 at 0x7f2d4ff98f00, indexed_factory #11 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 203 at 0x7f2d4ff98f10, indexed_factory #12 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 300 at 0x7f2d4ff98f20, indexed_factory #13 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 301 at 0x7f2d4ff98f30, indexed_factory #14 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 302 at 0x7f2d4ff98f40, indexed_factory #15 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 303 at 0x7f2d4ff98f50, indexed_factory #16 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 304 at 0x7f2d4ff98f60, indexed_factory #17 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 305 at 0x7f2d4ff98f70, indexed_factory #18 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 306 at 0x7f2d4ff98f80, indexed_factory #19 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 307 at 0x7f2d4ff98f90, indexed_factory #20 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 308 at 0x7f2d4ff98fa0, indexed_factory #21 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 310 at 0x7f2d4ff98fb0, indexed_factory #22 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 400 at 0x7f2d4ff98fc0, indexed_factory #23 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 401 at 0x7f2d4ff98fd0, indexed_factory #24 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 402 at 0x7f2d4ff98fe0, indexed_factory #25 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 403 at 0x7f2d4ff98ff0, indexed_factory #26 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 404 at 0x7f2d4ff99000, indexed_factory #27 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(208): Registered a indexed_factory for class 999 at 0x7f2d4ff99010, indexed_factory #28 for 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) i/application.cc(135): first configuration stage
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) i/application.cc(143): second configuration stage
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) i/application.cc(166): third configuration stage
2020-04-10 02:26:11 [ PROG] (tid 139832574510976) 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-10 02:26:11 [ PROG] (tid 139832574510976) i/application.cc(129): Ordered args:

[
    0
]

2020-04-10 02:26:11 [ INFO] (tid 139832574510976) library/agent.cc(71): Creating message
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(64): Using authentication file </etc/rabbitmq-secret/authentications.json>
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) uthentication.cc(47): Looking for authentication file: <"/etc/rabbitmq-secret/authentications.json">
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) uthentication.cc(82): Authentications:

{
    amqp : 
    {
        broker : rabbitmq-app.default.svc.cluster.local
        password : admx
        username : admx
    }

}

2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) library/agent.cc(153): message payload to send is: 
{
    values : 
    [
        0
    ]

}

2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) library/agent.cc(174): Sending message w/ message_operation = 0 to curved_mirror_steps
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(182): Sending request with routing key <curved_mirror_steps>
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(305): Opening AMQP connection and creating channel to rabbitmq-app:5672
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(306): Using broker authentication: admx:admx
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(340): Declaring exchange <requests>
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(244): Reply-to for request: amq.gen-hgciiH7u4y5NezfKXZsXXQ
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(245): Consumer tag for reply: amq.ctag-kkuyPOr1QJaknLYUVJtWPQ
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(257): Sending message to <curved_mirror_steps>
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(265): Message sent in 1 chunks
2020-04-10 02:26:11 [ INFO] (tid 139832574510976) library/agent.cc(209): Waiting for a reply from the server; use ctrl-c to cancel
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) rary/receiver.cc(227): Waiting for a reply
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) rary/receiver.cc(256): Received a message chunk <72b569ff-b7b1-4921-adb4-3be9ca7d7580/0/1
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) rary/receiver.cc(262): This is the first chunk for this message; creating new message pack
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) brary/message.cc(216): Processing message:
Routing key: amq.gen-hgciiH7u4y5NezfKXZsXXQ
Payload: null
2020-04-10 02:26:11 [ INFO] (tid 139832574510976) library/agent.cc(217): Response received
2020-04-10 02:26:11 [ PROG] (tid 139832574510976) library/agent.cc(225): Response:
Return code: 999
Return message: KeyError: ('device_error',)

At:
  /usr/local/lib/python3.7/site-packages/dripline/core/throw_reply.py(28): __init__
  /usr/local/lib/python3.7/site-packages/dripline/implementations/entity_endpoints.py(149): on_set
  /usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(54): do_set_request

Routing key: amq.gen-hgciiH7u4y5NezfKXZsXXQ
Correlation ID: 0d34d70a-ebae-40e4-b26a-7a38b939c99a
Reply To: 
Message Type: 2
Encoding: json
Timestamp: 2020-04-10T02:26:11.153338Z
Sender Info:
        Executable: /usr/local/bin/python3.7
        Hostname: curved-mirror-stepper-motor-dripline-python-deployment-766545k9
        Username: root
        Service: curved_mirror_motor
        Versions:
                dripline:
                        Version: 3.0.0
                        Commit: 
                        Package: 
                dripline-cpp:
                        Version: 2.3.0
                        Commit: ad9a785c3c63ddd927a1ec877561b2e3e814efd5
                        Package: driplineorg/dripline-cpp
                dripline-python:
                        Version: 0.0.0
                        Commit: na
                        Package: driplineorg/dripline-python
Specifier: 
Payload: null
Return Code: 999
Return Message: KeyError: ('device_error',)

At:
  /usr/local/lib/python3.7/site-packages/dripline/core/throw_reply.py(28): __init__
  /usr/local/lib/python3.7/site-packages/dripline/implementations/entity_endpoints.py(149): on_set
  /usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(54): do_set_request

2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) /library/core.cc(30): Stopping consuming messages
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 999 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 404 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 403 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 402 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 401 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 400 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 310 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 308 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 307 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 306 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 305 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 304 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 303 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 302 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 301 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 300 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 203 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 202 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 201 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 200 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 102 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 101 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 100 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 5 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 4 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 3 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 2 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 1 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class 0 from 0x55ef825b4a50
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class yaml from 0x55ef825b13e0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class yaml from 0x55ef825b07f0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class json from 0x55ef825b13e0
2020-04-10 02:26:11 [DEBUG] (tid 139832574510976) dexed_factory.hh(220): Removing indexed_factory for class json from 0x55ef825b07f0
root@curved-mirror-stepper-motor-dripline-python-deployment-766545k9:/# command terminated with exit code 137

This is the error output in the log.

raphaelc@nlwymmd:~/orpheus_site_atlas$ kubectl logs -p curved-mirror-stepper-motor-dripline-python-deployment-766545k9 
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fdcffea6440, indexed_factory #0 for 0x5563286ced20
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class json at 0x7fdcffea6480, indexed_factory #0 for 0x5563286afb30
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fdcffea6540, indexed_factory #1 for 0x5563286ced20
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class yaml at 0x7fdcffea6580, indexed_factory #1 for 0x5563286afb30
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 0 at 0x7fdcff76be50, indexed_factory #0 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 1 at 0x7fdcff76be60, indexed_factory #1 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 2 at 0x7fdcff76be70, indexed_factory #2 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 3 at 0x7fdcff76be80, indexed_factory #3 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 4 at 0x7fdcff76be90, indexed_factory #4 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 5 at 0x7fdcff76bea0, indexed_factory #5 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 100 at 0x7fdcff76beb0, indexed_factory #6 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 101 at 0x7fdcff76bec0, indexed_factory #7 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 102 at 0x7fdcff76bed0, indexed_factory #8 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 200 at 0x7fdcff76bee0, indexed_factory #9 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 201 at 0x7fdcff76bef0, indexed_factory #10 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 202 at 0x7fdcff76bf00, indexed_factory #11 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 203 at 0x7fdcff76bf10, indexed_factory #12 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 300 at 0x7fdcff76bf20, indexed_factory #13 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 301 at 0x7fdcff76bf30, indexed_factory #14 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 302 at 0x7fdcff76bf40, indexed_factory #15 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 303 at 0x7fdcff76bf50, indexed_factory #16 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 304 at 0x7fdcff76bf60, indexed_factory #17 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 305 at 0x7fdcff76bf70, indexed_factory #18 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 306 at 0x7fdcff76bf80, indexed_factory #19 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 307 at 0x7fdcff76bf90, indexed_factory #20 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 308 at 0x7fdcff76bfa0, indexed_factory #21 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 310 at 0x7fdcff76bfb0, indexed_factory #22 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 400 at 0x7fdcff76bfc0, indexed_factory #23 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 401 at 0x7fdcff76bfd0, indexed_factory #24 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 402 at 0x7fdcff76bfe0, indexed_factory #25 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 403 at 0x7fdcff76bff0, indexed_factory #26 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 404 at 0x7fdcff76c000, indexed_factory #27 for 0x556328717af0
2020-04-10 02:21:28 [DEBUG] (tid 140587175348032) dexed_factory.hh(208): Registered a indexed_factory for class 999 at 0x7fdcff76c010, indexed_factory #28 for 0x556328717af0
2020-04-10 02:21:29 [ PROG] (tid 140587175348032) 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
2020-04-10T02:21:29[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)'}}
                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-10 02:21:29 [ PROG] (tid 140587175348032) i/application.cc(129): Ordered args:

[
]

2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(86) -> Ethernet socket ('192.168.25.3', 7776) established                                                                                                    
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IFD\r\r\n' -> '\x00\x07%'                                                                                                             
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07JS0.300\r\r\n' -> '\x00\x07%'                                                                                                         
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07VE0.300\r\r\n' -> '\x00\x07%'                                                                                                         
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07EG20000\r\r\n' -> '\x00\x07%'                                                                                                         
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07ER20000\r\r\n' -> '\x00\x07?4'                                                                                                        
2020-04-10 02:21:29 [ INFO] (tid 140587175348032) brary/service.cc(174): Connecting to <rabbitmq-app.default.svc.cluster.local:5672>
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07SA\r\r\n' -> '\x00\x07%'                                                                                                              
2020-04-10T02:21:29[INFO    ] dripline(99) -> service built
2020-04-10T02:21:29[INFO    ] dripline.core.entity(150) -> should start logging every 0:00:10
2020-04-10T02:21:29[INFO    ] dripline.core.entity(150) -> should start logging every 0:00:10
2020-04-10T02:21:29[INFO    ] dripline(110) -> about to start the service
2020-04-10T02:21:29[INFO    ] dripline(112) -> services started, now to listen
2020-04-10 02:21:29 [ INFO] (tid 140587175348032) brary/service.cc(403): Listening for incoming messages on <curved_mirror_motor>
2020-04-10 02:21:29 [ INFO] (tid 140587133736704) y/heartbeater.cc(77): Starting heartbeat loop
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:21:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:21:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:21:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:21:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:21:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:21:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:21:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:22:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:22:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:03[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07FL0\r\n' -> '\x00\x07%'                                                                                                               
2020-04-10T02:23:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:23:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:23:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:21[INFO    ] dripline.core.endpoint(24) -> in get_request
2020-04-10T02:23:21[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:23:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-9'                                                                                                            
2020-04-10T02:23:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07FL1\r\n' -> '\x00\x07%'                                                                                                               
2020-04-10T02:23:38[INFO    ] dripline.core.endpoint(24) -> in get_request
2020-04-10T02:23:38[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:23:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:23:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:23:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:23:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:23:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'                                                                                                            
2020-04-10T02:24:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'                                                                                                            
2020-04-10T02:24:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:19[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:29[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:39[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:49[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:25:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:25:59[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10T02:26:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IP\r\n' -> '\x00\x07IP=-8'
2020-04-10T02:26:09[INFO    ] dripline.implementations.ethernet_scpi_service(172) -> sync: '\x00\x07IE\r\n' -> '\x00\x07IE=-1'
2020-04-10 02:26:11 [ERROR] (tid 140587116951296) rary/endpoint.cc(191): Caught exception from Python: KeyError: ('device_error',)

At:
  /usr/local/lib/python3.7/site-packages/dripline/core/throw_reply.py(28): __init__
  /usr/local/lib/python3.7/site-packages/dripline/implementations/entity_endpoints.py(149): on_set
  /usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(54): do_set_request

2020-04-10 02:26:11 [ERROR] (tid 140587116951296) brary/service.cc(467): <curved_mirror_motor> Standard exception caught while handling message: KeyError: ('device_error',)

At:
  /usr/local/lib/python3.7/site-packages/dripline/core/throw_reply.py(28): __init__
  /usr/local/lib/python3.7/site-packages/dripline/implementations/entity_endpoints.py(149): on_set
  /usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(54): do_set_request

2020-04-10 02:26:11 [ERROR] (tid 140587116951296) rary/receiver.cc(399): Exception caught; shutting down.
        KeyError: ('device_error',)

At:
  /usr/local/lib/python3.7/site-packages/dripline/core/throw_reply.py(28): __init__
  /usr/local/lib/python3.7/site-packages/dripline/implementations/entity_endpoints.py(149): on_set
  /usr/local/lib/python3.7/site-packages/dripline/core/endpoint.py(54): do_set_request

2020-04-10 02:26:12 [ INFO] (tid 140587175348032) brary/service.cc(277): Stopping service on <curved_mirror_motor>
raphaelcervantes commented 4 years ago

To be clear, my configuration works as long as I run commands that are well defined.

laroque commented 4 years ago

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?

raphaelcervantes commented 4 years ago

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
laroque commented 4 years ago

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.

error reporting request

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.

Where is it failing?

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.

Resolutions:

  1. (your end) It is not valid to send a request of type 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.
  2. (our end) [@nsoblath] should that IndexError be handled in param_array::operator[] and thrown as something else, it may be fine as is.
  3. (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)
  4. (our end) [@laroque] the Entity class should handle whatever is done in 2 and use that to raise a ThrowReply with a useful message there.
  5. (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

dl_agent segfault

I'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

raphaelcervantes commented 4 years ago

@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.

raphaelcervantes commented 4 years ago

(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.

laroque commented 4 years ago

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:

  1. the service exiting with 0
  2. the dl-agent seg faulting
  3. the same message passing sequence leading to code 999 and less than helpful message by running the first-mesh example from controls-guide. That's a simpler place to reproduce and confirms (what was probably already obvious) that this doesn't have anything to do with running in k8s.
raphaelcervantes commented 4 years ago

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.

dl-agent execution

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

container logs

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
nsoblath commented 4 years ago
  1. (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.

nsoblath commented 4 years ago
  1. (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.

nsoblath commented 4 years ago
  1. (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.

raphaelcervantes commented 4 years ago

@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

dl-agent output

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

container log output

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
laroque commented 4 years ago

@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.

raphaelcervantes commented 4 years ago

Ok. That's interesting. I guess I'll try to run things from kv-store.

laroque commented 4 years ago

I think the various points here are resolved. Can be re-opened or a new issue created if that's not correct.