Árvore de páginas

Correção - Estouro de pilha de execução no AdvPL

Esta build contém uma correção para situação de uma ou mais funções AdvPL entrarem em recursão, onde o TOTVS Application Server deveria abortar a execução caso a pilha de chamadas (stack) ultrapassasse 200 itens.

Abrangência ERP 10

Situação

Utilização de uma ou mais funções Advpl, onde as chamadas entre as funções são recursivas (uma função chamando a mesma função em níveis diferentes da pilha de chamada de funções – stack).

Ocorrência

Caso houvessesm mais de uma função envolvida, a partir de três funções encadeadas, (A , B e C, onde A retorna C, C retorna B e B retorna A, por exemplo), a proteção de stack falhava, permitindo a chamada encadeada em 200 níveis por função, causando uma ocorrência crítica de estouro de stack no Kernel do TOTVS Application Server, e consequente congelamento da thread e posterior instabilidade no processo, sendo exibida e gravada a mensagem abaixo no log de console do TOTVS Application Server:

****************************************
*** Stack Overflow found ***
*** theThreadProc -DoExecute() ***
****************************************

Correção

Realizada correção na execução de funções AdvPL, para considerar o tamanho total da pilha de stack de chamadas, e não a recursão individual entre as funções, onde o comportamento esperado e reproduzido é não ser possível empilhar mais de 200 chamadas entre funções na pilha de chamadas (stack), e caso este limite não seja respeitado, a aplicação será finalizada com a ocorrência de erro AdvPL “stack overflow in function”.

Informações adicionais

  • Melhoria realizada conforme análise das necessidades da ferramenta e melhoria contínua da plataforma de desenvolvimento do TOTVS Application Server.

  • Não há BOPS ou FNC relacionados.

  • Disponível a partir da build 7.00.090818P-091104

  • Sem rótulos