[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: RES: Facing GC infinite loop in Lua 5.1
- From: Wagner Fernando Fazio <wagner.fazio@...>
- Date: Mon, 8 Feb 2021 19:00:09 +0000
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
De: nerditation <firstname.lastname@example.org>
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.