Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-19581

ack accumulation on SALPY + SalObj

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Won't Fix
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Team:
      Telescope and Site

      Description

      While testing the ATPtg with the ATMCS (DM-19541) I noticed that, after leaving tracking for a while, commands against ATMCS would take a long time to be acknowledged. After debugging it for some time I figured that the issue is a combination of how acknowledgements are handle by SAL and SalObj. Basically, for each component there is a single ackcmd topic. So, all commands for a single component share the same topic for acknowledging a command. So, assume there are three components C1, C2 and C3.

      C1 has a remote* for C2 and C3
      C2 is a controller* that has a remote for C3
      C3 is a controller with no remotes.

      when C1 sends a command to C2, C2 will start to stream commands to C3. The acknowledgment sent by C3 for each command it receives is queued by C1. If C1 need to send a command to C3, it will have to check all the queued acks before arriving at the intended one (probably the last one in the queue).

      To fix this C1 could be continuously checking for acks on salobj level. The dds version of salobj is already implemented to do so. We should consider doing the same for salpy version of salobj.

      *remote = sends commands and listens for telemetry and events.
      *controller = listen for commands and sends telemetry and events

        Attachments

          Issue Links

            Activity

            Hide
            rowen Russell Owen added a comment - - edited

            Updates based on a meeting 2019-05-02 with Tiago Ribeiro and Dave Mills:

            • We cannot make SALPY handle acks in the way the dds version does unless SALPY exposes the private_seqNum field of the ackcmd topic. It would be really nice to have all those fields exposed, as well as the <component_name>ID field, but if dds works out then it may not be worth the time to add this feature to SALPY. If you want it I suggest filing a ticket for it.
            • Dave Mills is planning to fix SAL so that topic-specific ack readers really only get acks for the specified topic. That will be done on DM-19579 and it should fix this issue.
            Show
            rowen Russell Owen added a comment - - edited Updates based on a meeting 2019-05-02 with Tiago Ribeiro and Dave Mills : We cannot make SALPY handle acks in the way the dds version does unless SALPY exposes the private_seqNum field of the ackcmd topic. It would be really nice to have all those fields exposed, as well as the <component_name>ID field, but if dds works out then it may not be worth the time to add this feature to SALPY. If you want it I suggest filing a ticket for it. Dave Mills is planning to fix SAL so that topic-specific ack readers really only get acks for the specified topic. That will be done on DM-19579 and it should fix this issue.
            Hide
            tribeiro Tiago Ribeiro added a comment -

            No longer relevant. 

            Show
            tribeiro Tiago Ribeiro added a comment - No longer relevant. 

              People

              Assignee:
              tribeiro Tiago Ribeiro
              Reporter:
              tribeiro Tiago Ribeiro
              Reviewers:
              Russell Owen
              Watchers:
              Andy Clements, Dave Mills, James Buffill [X] (Inactive), Russell Owen, Tiago Ribeiro
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.