Uploaded image for project: 'AMQ Clients'
  1. AMQ Clients
  2. ENTMQCL-504

[proton-c] Reactor pipe and memory leak when BlockingConnection gets Connection refused

XMLWordPrintable

    • Hide

      See Description.

      Show
      See Description.

      Try below code against not-opened (or blocked on firewall) port:

      from time import sleep
      from proton.utils import BlockingConnection
      
      conn = None
      
      while True:
        print "============================================================================================"
        sleep(0.1)
        try:
          conn = BlockingConnection("proton+amqp://example.com:12345", ssl_domain=None, heartbeat=10)
        except Exception, e:
          print e
      

      Monitor RSS usage and opened FDs.

      Current behaviour:

      • RSS usage grows (until the FDs get deplenished due to ulimit)
      • FDs grow (until deplenished) - due to pipes opened

      I think (at least testing something similar on old 0.9 release) this is due to removal of pni_timer_finalize method in:

      https://github.com/apache/qpid-proton/commit/8c6c7c53198f4152472572b8fccc5ab453d9ca86#diff-1263a41bd7a5218b033cc33321977fb9L444

      (L444 - L462). So I expect current upstream is affected the same (dont have bandwidth to check it there).

              cjansen@redhat.com Cliff Jansen
              rhn-support-pmoravec Pavel Moravec
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: