[rabbitmq-discuss] intermittent erl.exe crash

JD Conley jdc at hive7.com
Fri Nov 6 22:09:38 GMT 2009


> 
> If you can, try running the server directly rather than starting it as
> a
> service. Then, if it crashes, a) you may see a message in the console
> where you started it, and b) the erl_crash.dump should get written to
> the dir where you started the server.

Ok, running it directly worked. I got a crash dump.
http://corp.hive7.com/download/erl_crash.zip

The logs weren't very interesting. Just more of the same stuff with
connections terminating and being re-created. Nothing in the SASL log.

It seems like it ran out of memory. How much memory overhead is there per
queue/stored message? I might need to make my timeout sweeping more
aggressive, or bring up more instances.

Or, more likely, my queue configuration or consuming code is wrong and my
messages are being stored forever in memory causing the memory leak. Here
are some c# snippets:

//init
_model.ExchangeDeclare("myexchangename", ExchangeType.Fanout, false, false,
false, false, false, null);
_consumer = new EventingBasicConsumer();

...

//start consuming
_model.QueueDeclare(userQueue, false, false, false, false, false, null);
consumerTag = _model.BasicConsume(userQueue, true, null, _consumer);

...

//end consuming
_model.BasicCancel(consumerTag);

...

//bind user specific queue to routing key
_model.QueueDeclare(userQueue, false, false, false, false, false, null);
_model.QueueBind(userQueue, _exchange, key, false, null);

...

//unbind user queue from routing key
_model.QueueUnbind(userQueue, _exchange, key, null);

...

//publish message
var props = _model.CreateBasicProperties();
props.Expiration = "5000"; //is this right? desired expiration time is 5
seconds.
_model.BasicPublish(_exchange, key, false, false, props, body);

...

And, here's the console output:

node          : rabbit at VMPRODWEB2
app descriptor: c:/Rabbitmq/rabbitmq_server-1.7.0/sbin/../ebin/rabbit.app
home dir      : C:\Users\jdc
cookie hash   : //1wK/zUYlPaC0GVhNfEsw==
log           : C:/Rabbitmq/data/log/rabbit.log
sasl log      : C:/Rabbitmq/data/log/rabbit-sasl.log
database dir  : c:/Rabbitmq/data/db/rabbit-mnesia

starting database             ...done
starting core processes       ...done
starting recovery             ...done
starting persister            ...done
starting guid generator       ...done
starting builtin applications ...done
starting TCP listeners        ...done
starting SSL listeners        ...done

broker running

Crash dump was written to: erl_crash.dump
temp_alloc: Cannot allocate 9176036 bytes of memory (of type "tmp_heap").

This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application's support team for more information.

-JD





More information about the rabbitmq-discuss mailing list