On 05/08/2012 04:30 PM, Simon MacMullen wrote:
> We've just had a report of a Rabbit broker dying trying to allocate
> approximately 1PB of memory:
>
>
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-May/019896.html
>
> Slogan: std_alloc: Cannot allocate 1124304355803072 bytes of memory
> (of type "arg_reg").
>
> Which is unfortunate enough in itself - but arg_reg? My understanding
> of beam internals is not great, but that looks to be something like a
> stack frame. A 1PB stack frame?
>
> As far as I can see "arg_reg" memory is only allocated in one place,
> around line 3100 of beam_emu.c:
>
>
https://github.com/erlang/otp/blob/maint/erts/emulator/beam/beam_emu.c#L3157
>
>
> ...where size is set to c_p->arity * sizeof(c_p->arg_reg[0]).
>
> process.arg_reg is an Eterm*, so sizeof(Eterm) *cannot* be huge, so it
> must be the arity which is ~10^15. We have some excessive arities in
> RabbitMQ, but not quite to that extent.
>
> Does anyone have any idea how this could arise, or can it just be
> chalked up to cosmic rays?
>
A core dump would be more helpful to track down this bug. Command line