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: **************************************** |
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 |
|