Coder Social home page Coder Social logo

Comments (11)

simonmacmullen avatar simonmacmullen commented on September 15, 2024

It looks like the management DB ended up storing details for multiple different connection processes under the same name. We assume that each connection has a unique name.

So either there's some way for connection names to clash, or they are not getting removed correctly in this case.

from rabbitmq-management.

martink2 avatar martink2 commented on September 15, 2024

Maybe i am able to contribute a little to this, we also have the stomp plugin running and due to:

rabbitmq/rabbitmq-stomp#7

we quite frequently have stale connections with the same src_ip:src_port -> dst_ip:dst_port as running
connections, when we try to close them via the management frontend nothing happens.

Once we have those entries, the node running the management db keeps allocating memory until
it crashes. I recently managed to attach an observer with the following result, which showed all
memory going into the process with the name rabbit_mgmt_db.

I can provide the dump if needed.

screen shot 2015-04-06 at 21 31 19
Thanks

Martin

from rabbitmq-management.

michaelklishin avatar michaelklishin commented on September 15, 2024

Interesting. rabbit_mgmt_db is part of the management plugin.

Do MCollective clients immediately re-connect after being disconnected?

from rabbitmq-management.

michaelklishin avatar michaelklishin commented on September 15, 2024

Also, do you configure the management plugin in any way?

from rabbitmq-management.

martink2 avatar martink2 commented on September 15, 2024

As to the reconnect: yes they do.

As to the config:

{rabbitmq_management, [
    {listener, [{port, 15671},
                {ssl, true}
              ]},
    {sample_retention_policies,
          [{global,   [{60, 5}, {3600, 60}, {86400, 1200}]},
           {basic,    []},
           {detailed, []}]
    }
  ]}

from rabbitmq-management.

martink2 avatar martink2 commented on September 15, 2024

Yesterday i updated rabbitmq to the latest version and now i get a new message from the web ui

The management statistics database currently has a queue of 385536 events to process. If this number keeps increasing, so will the memory used by the management plugin. You may find it useful to set the rates_mode config item to none.

With the queue constantly growing and with it the memory of cause.

On the Cluster i can see the following duplicate connections:

10.173.0.251:33639 -> 10.67.76.151:61613
10.173.0.251:33639 -> 10.67.76.151:61613
10.173.0.251:33639 -> 10.67.76.151:61613
10.173.1.58:39900 -> 10.67.76.151:61613
10.173.1.58:39900 -> 10.67.76.151:61613

With rabbitmqctl report showing :

<[email protected]>   10.173.0.251:33639 -> 10.67.76.151:61613 (1)    <[email protected]>   1   guest   /mcollective    false   false   10  0   0   0   0   0   0   running
<[email protected]>   10.173.0.251:33639 -> 10.67.76.151:61613 (1)    <[email protected]>    1   guest   /mcollective    false   false   11  0   0   0   0   0   0   running
<[email protected]>   10.173.0.251:33639 -> 10.67.76.151:61613 (1)    <[email protected]>   1   guest   /mcollective    false   false   10  0   0   0   0   0   0   running

trying to kill the connection vie rabbitmqctl results in:

rabbitmqctl close_connection '<[email protected]>' "go away"
Closing connection "<[email protected]>" ...
Error: {not_a_connection_pid,<5604.28426.120>}

Erlang observer cant find the pid either, is there any way to manually delete the entry from the
table ?

Thanks

Martin

from rabbitmq-management.

michaelklishin avatar michaelklishin commented on September 15, 2024

See rabbitmq/rabbitmq-stomp#8. We identify connections using STOMP socket's IPs and ports. So at some point ephemeral port range rolls over and we get duplicate connection names.

I believe this can be closed. Please leave a comment if you think otherwise.

from rabbitmq-management.

SeriousSem avatar SeriousSem commented on September 15, 2024

Sorry for writing in the closed thread, but I'm just curious whether this issue has already fixed in the version 3.5.2, because we can still see channels with the same name in the management plugin and still get error like I posted in the rabbitmq-users forum(link in the first message of this thread).

Thanks in advance
Sem

from rabbitmq-management.

michaelklishin avatar michaelklishin commented on September 15, 2024

@SeriousSem rabbitmq/rabbitmq-stomp#8 has made it into 3.5.2 and the fix was confirmed by @martink2.

from rabbitmq-management.

SeriousSem avatar SeriousSem commented on September 15, 2024

@michaelklishin we are still facing this problem in the 3.5.2.

=ERROR REPORT==== 10-Jun-2015::14:19:14 ===
webmachine error: path="/api/channels/{ip}"
{exit,
    {{{case_clause,[[<0.7527.210>],[<0.14129.210>]]},
      [{rabbit_mgmt_db,created_event,3,[]},
       {rabbit_mgmt_db,handle_call,3,[]},
       {gen_server2,handle_msg,2,[]},
       {proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,247}]}]},
     {gen_server2,call,
         [{global,rabbit_mgmt_db},
          {get_channel,<<"{ip} -> 0.0.0.0:0 (1)">>,
              {no_range,
                  {range,1433938690000,1433938750000,5000},
                  no_range,no_range}},
          infinity]}},
    [{gen_server2,call,3,[]},
     {rabbit_misc,with_exit_handler,2,[]},
     {rabbit_mgmt_wm_channel,is_authorized,2,[]},
     {webmachine_resource,resource_call,3,[]},
     {webmachine_resource,do,3,[]},
     {webmachine_decision_core,resource_call,1,[]},
     {webmachine_decision_core,decision,1,[]},
     {webmachine_decision_core,handle_request,2,[]}]}

Any points what could I forget to eliminate this error?

from rabbitmq-management.

michaelklishin avatar michaelklishin commented on September 15, 2024

@SeriousSem as rabbitmq/rabbitmq-stomp#8 explains, the issue is in the event emitting part. Do you use STOMP? Something else? Do you observe connections that never go away?

A single stack trace does not explain much. I highly recommend starting a discussion on the mailing list first.

from rabbitmq-management.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.