Gregor Berginc created PROTON-1602:
--------------------------------------

             Summary: [Ruby] Possible memory leak in Ruby bindings?
                 Key: PROTON-1602
                 URL: https://issues.apache.org/jira/browse/PROTON-1602
             Project: Qpid Proton
          Issue Type: Bug
          Components: ruby-binding
    Affects Versions: 0.17.0, Future
         Environment: Centos 7
            Reporter: Gregor Berginc
            Assignee: Alan Conway
            Priority: Critical


While running integration tests we noticed that Ruby bindings utilise 100% CPU 
core and that memory consumption increases until the machine runs out of 
memory. The same Python app does not have this effect - low CPU utilisation.

I've used 0.17 version of qpid-proton-c from EPEL, as well as the current 
master. Ruby bindings in both cases built from the current master.

We are using the Container, i.e.

{code:ruby}
Qpid::Proton::Reactor::Container.new(...).run
{code}

This is very easily reproduced by the simple change in one of the tests:

{code:ruby}
diff --git a/proton-c/bindings/ruby/tests/test_container.rb 
b/proton-c/bindings/ruby/tests/test_container.rb
index d5b5c9a..455d63e 100644
--- a/proton-c/bindings/ruby/tests/test_container.rb
+++ b/proton-c/bindings/ruby/tests/test_container.rb
@@ -80,7 +80,8 @@ class ContainerSASLTest < Minitest::Test

     def on_connection_opened(event)
       super
-      event.container.stop
+      puts "keeping connection opened"
+#      event.container.stop
     end
   end
{code}

The change keeps the container opened. Looking at top, the CPU is at 100% and 
RAM constantly grows.

Is this intentional or by design? Is there a proper usage guide on how to 
access AMQP via Ruby?

Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to