Jan David Mol created QPID-6402:
-----------------------------------

             Summary: python: freeze on session.close() if an exception was 
raised in session.receiver()
                 Key: QPID-6402
                 URL: https://issues.apache.org/jira/browse/QPID-6402
             Project: Qpid
          Issue Type: Bug
          Components: Python Client
    Affects Versions: 0.30
         Environment: Ubuntu 10.04 (python 2.6.5) and 12.04 (python 2.7.3). 
QPID is compiled from source on both platforms, with proton 0.8.
            Reporter: Jan David Mol


If a receiver is created but causes an error (no such queue, malformed address, 
etc), the session.close() can freeze in certain circumstances. Example code:

class Foo:
  def __init__(self):
    self.conn = m.Connection("127.0.0.1")
    self.conn.open()
    self.session = self.c.session()
    try:
      self.r = self.s.receiver("sdklfdsdls")
    except:
      print "no such queue"

  def __del__(self):
    self.session.close()

f = Foo()

The above sequence does not stall if the code is simply put in a function (or 
__del__ is merged into __init__).

Note that providing session.close() with a timeout prevents the freeze, but of 
course can cause data loss if the stall was legit.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to