Is there any way you can create a test case that manages to crash the broker?

On 6/15/06, Gerdes, Mike <[EMAIL PROTECTED]> wrote:

hm I will try to use prefetch and see if it works, but mostly the problem is 
not the consumer, but the sender and the broker having to manage everything.

The broker crashes or better it gets a deadlock. So the usagemanagers for the 
queues request more memory and get it, at some point in time all memory is used 
up and they request more and wait till they get it. That never happens, because 
the reference coúnters don'T get reduced and they think the queue is totally 
full. At that point the sender also stops and waits for the queue to free.

I am using SSL and JAAS to allow only nodes that I trust to publish to the 
system, but when systems get bigger a misconfiguration might occure or somebody 
finds a trick or a way around it. It is not that critical but would be very 
nice to have.

I am using AMQ4.0 the SNAPSHOT 01.05.2006. I have tried to use persistent and 
non-persistent messages, that makes no change.

I haven't found the options on how to set it, that was before you added the 
warning and send this email, so I will try it and hope thats the problem.


-----Ursprüngliche Nachricht-----
Von: James Strachan [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 15. Juni 2006 15:45
An: [email protected]
Betreff: Re: limit the number of messages per second



On 6/15/06, Gerdes, Mike <[EMAIL PROTECTED]> wrote:
>
> I want this feature to make AMQ a bit more stable, to reduce network traffic 
and prevent flooding and to avoid that a software with errors kills my system.

You can use the prefetch for that...
http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html

to limit how many messages are dispatched to a consumer.


> From what I noticed is that AMQ does have some memory problems and that it 
hits under certain circumstances 100 used memory and crashes then.

Whats the crash? Is this the broker or client?

>  But thats the smaller reason. The major reason is just for security. In my 
testing and application I need to have a system that is more or less stable and 
secure. And DoS and flooding of queues seems to me a big problem.

How about using security so only nodes you trust can publish to your queues?

> One thing about the memory problem, I have encountered. With more then one 
consumer and using queue, AMQ crashes with 100% used memory if I send as fast as 
possible. This happens with and without async messages. What I noticed is that the 
usageManagers request more and more memory and at some point don't get it and then 
block. When a message from a queue is read, its memory is not freed. With only on 
consumer this haven'T been the case. There has the memory be freed.
> (I put reference counter System.out.println into the usageManger)

Which version of ActiveMQ are you using? Also are you using persistent
queues? (I'm guessing not as that is not memory bound).

If you are using 4.0 have you disabled optimizeAck? (see the known issues)
http://incubator.apache.org/activemq/activemq-40-release.html

--

James
-------
http://radio.weblogs.com/0112098/


This mail has originated outside your organization,
either from an external partner or the Global Internet.
Keep this in mind if you answer this message.

This mail has originated outside your organization, either from an external 
partner or the Global Internet. Keep this in mind if you answer this message.



--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to