On Wed, Apr 29, 2015 at 1:57 PM, Robbie Gemmell <[email protected]>
wrote:

> On 29 April 2015 at 17:46, Matt Broadstone <[email protected]> wrote:
> > Hi,
> >
> > I have a service using the C++ Messaging API which connects to a single
> > instance of qpidd (currently on the same machine), which seems to crash
> out
> > with this exception every couple of days under moderate load:
> >
> > qpidd[68257]: 2015-04-28 11:56:38 [Broker] error
> > qpid.192.168.2.225:5672-192.168.2.148:60492: resource-limit-exceeded:
> > Maximum depth exceeded on
> >
> b1386bee-a36c-449d-953f-c25f4842e76d_hive.guest.metadata_7bf9355b-524b-4853-89bd-1848366cd21f:
> > current=[count: 389438, size: 104857546], max=[size: 104857600]
> > (/build/buildd/qpid-cpp-0.28/src/qpid/broker/Queue.cpp:1575)
> >
> > Using qpid-stat I don't see the queue depth ever increase from 0 (which I
> > gather is why the exception is thrown, from reading the code), however I
> > -do- notice that the "acquired" count is increasing with every message
> with
> > no corresponding "release" (release count is always 0).
> >
> > My service currently looks a lot like the "Receiving Messages from
> Multiple
> > Sources" on this page:
> >
> https://qpid.apache.org/releases/qpid-0.28/messaging-api/cpp/api/index.html
> ,
> > and I am definitely calling the message agnostic "session.acknowledge()"
> in
> > my main event loop, so I'm not sure why the messages are never released
> > (presuming that messages would be released about
> settling/acknowledgement).
> >
> > I've created a ticket for what I think is a bug in the broker here:
> > https://issues.apache.org/jira/browse/QPID-6517, but figured I would
> post
> > here as well just in case there is operator error happening on my part:
> >
> > Regards,
> > Matt
>
> I know very little of the C++ code in question I'm afraid, but the
> title of the email did make me note something. I wouldnt expect the
> released count to increase if you do call acknowledge, since releasing
> is essentially something that tends to happen (implicitly or
> excplicitly) after you *dont* acknowledge.
>
>
Yeah, I had assumed that "release" meant explicitly releasing the message
(although the release count didn't seem to rise when I switched to using
that instead of acknowledge). I really have no idea what "acquire" is
supposed to mean in this context, and can't find much documentation on it.

To help those who might be able to answer...some questions...
>
> From IRC (and the above) I believe you are using 0.28 of both client
> and server, is that right? I expect you are using AMQP 1.0 at least
> some of the time from your mentions of the NodeJS client you have
> worked on, but are you definitely using AMQP 1.0 with the C++ client?
> I saw you mention 0.32 earlier on IRC, have you tried with that yet
> (now that it is available on your platform)?
>
>
Yes, I am using AMQP 1.0, and this is with two services communicating with
each other over qpidd, both written in C++ and using the QPID C++ Messaging
API on the 0.28 release. I just updated to 0.32, and began trying to stress
test the system in a VM and am now running into memory consumption errors
with my test programs. They can be found here:
https://gist.github.com/mbroadst/0adcd6cb1b2c8617a473

Running this for about 1-2min results in something like 80% memory usage on
my VM, although valgrind isn't able to spot any memory leaks.
Unfortunately, given that outcome I'm not really comfortable just updating
to 0.32 on the development box for the product to test if the release bump
fixes the problem.

Matt

Robbie
>

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

Reply via email to