lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

You are absolutely right!!! There was a memory corruption caused by sprintf misuse. 

Thank you a lot for spending your time.

It was  5.1.4 version with some extensions

-----Mensagem original-----
De: nerditation <> 
Enviada em: quarta-feira, 3 de fevereiro de 2021 12:51
Assunto: Re: Facing GC infinite loop in Lua 5.1

On 2021/1/28 2:15, Wagner Fernando Fazio wrote:
> I'm looping forever when calling luaC_fullgc and can not realize why it is happening. Every call do singlestep() does nothing and sweeplist() keeps trying to mark objects as white in every call.
> At this moment, my debugger shows deadmask==33(0x21) and all are gch.marked==2.
> Can someone figure out situations where it may happen?
> [...]

do you use a patched Lua or official release version? which exact version of Lua do you use?
or do you have a custom memory allocator?

if the gc got stuck in the sweep phase, I can only imagine there exists a cycle in the `allgc` list, which should be a singly linked list through the `gch->next` field in every gc object.

so I suspect your allocator might caused a memory corruption and overwritten the `gch->next` field of some gc objects, which happened to point to some other objects, thus making the `allgc` list `infinitely` long.

Este destinatario e externo a sua organizacao.

Este e-mail e confidencial e pode conter informacoes privilegiadas. Se voce nao for o destinatario desta 
mensagem por favor delete-a e me informe no endereco acima. Nao copie ou reenvie de forma a revelar estas 
informacoes a outras pessoas ou utilize-as para qualquer proposito.

This recipient is external to your organization.
This e-mail is confidential and may also be privileged. If you are not intended recipient, please delete it
and notify me immediately at above address; do not copy, forward or other side disclose the contents of this 
e-mail to any other person or use it for any purpose.