Details

    • Type: Enhancement
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: BlackTie
    • Labels:
      None

      Description

      Currently we set a transaction timeout (e.g. in TestRollbackOnly.cxx we call tx_set_transaction_timeout)

      This ends up putting a timetolive on the message of the same duration.

      Now, if this message is not received within the period of time it will expire.

      However we also use a block forever waiting for the response.

      This can lead to a call never returning.

      i.e.
      server advertises queue
      client sends message with small timeout (e.g. 4) and then blocks forever waiting response
      server gets round to advertising queue 5 seconds later but never sees the clients initial request

      client is blocked forever

      I realise that we are meant to block forever when a client issues a tpcall under transactional conditions but something needs to be done as this can easily happen on slow machines?

      Perhaps we need to make use of the DLQ to wake up the blocked client with an error message??

      Perhaps the client doesn't block forever and just calls txrollback if nothing is heard back??

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                tomjenkinson Thomas Jenkinson
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: