Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7835

dead lock error

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 0.24
    • Fix Version/s: None
    • Component/s: JMS AMQP 0-x
    • Labels:
      None

      Description

      When the message server links over time, a message is sent, the caller to perceive the message send timeout, take the initiative to close the session, at the same time links are perceived to request timeout to shut down connection, re link the message server.
      When the link function of doClose to get off the lock _failoverMutex, but did not get a specific lock _messageDeliveryLock to close the session, close the session function close to get to the _messageDeliveryLock _failoverMutex lock, lock wait for link
      Deadlock.
      Modification method.
      In session's close function, add a judgment that you are closing session.

      public void close(long timeout) throws JMSException
      {
      if (super.isClosing()) return ;
      setClosing(true);
      lockMessageDelivery();
      try
      {
      // We must close down all producers and consumers in an orderly fashion. This is the only method
      // that can be called from a different thread of control from the one controlling the session.
      synchronized (getFailoverMutex())

      { close(timeout, true); }

      }
      finally

      { unlockMessageDelivery(); }

      }

        Attachments

        1. jstack.txt
          281 kB
          hanfeng

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              hfwork328@163.com hanfeng
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: