[zeromq-dev] Assertion failed end_chunk->next in yqueu.hpp 108

Nico Hochgeschwender nico.hochgeschwender at h-brs.de
Sat Feb 26 18:46:29 CET 2011

Hello all,

>>> we would like to report an assertion failure in the following context:
>>> 1 publisher to 100 subscriber with a message of 5 million bytes. The
>>> publisher runs in a periodic loop of 100Hz. The data is allocated
>>> statically, so no external call for a memory deallocation. Both
>>> publisher and subscriber are implemented in C linked agains 2.0.9
>>> version of 0MQ.
>> The assertion means that malloc() can't allocate the memory:
>>   end_chunk->next = (chunk_t*) malloc (sizeof (chunk_t));
>>   zmq_assert (end_chunk->next);
>> Which, AFAICS means that you've run out of memory. Try using ZMQ_HWM
>> option to limit the number of messages queued.
> We tried the ZMQ_HWM (50MB before dropping messages) and we also tried
> ZMQ_SWAP with swap memory of 500MB. In both cases we get the same
> assertion "end_chunk->next".

We are aware about the fact that we can't allocate endless memory.
However, it is strange that with the setting described above and
ZMQ_SWAP on 1GB we still get very soon (after publishing approx. 600
messages) a segmentation fault.

My question: is there any strategy to cope with such memory intensive
settings (e.g. another further parameters etc.).



More information about the zeromq-dev mailing list