Melhoria - Ocorrência e tratamento de stack overflow
Esta build contém uma proteção adicional para uma ocorrência crítica de falta de memória de stack em processamento de programas.
Abrangência | ERP 10, 11 e 12 |
Situação | Utilização de programas AdvPL, onde intencional ou acidentalmente houve recursividade de código (a função chamando ela mesma, aumentando a pilha de chamadas - stack). |
Ocorrência | Caso a memória interna do TOTVS | Application Server, destinada à alocação de pilha (stack), fosse inteiramente ocupada antes do limite de itens de chamada de função ( fixo em 200 níveis ) fosse atingido, a aplicação "congelava", mostrando no Log de console do TOTVS | Application Server a mensagem abaixo : **************************************** *** Stack Overflow found *** *** theThreadProc -DoExecute() *** **************************************** Adicionalmente, os recursos deste processo ficavam retidos, sem que a memória e recursos utilizados fossem liberados, podendo causar outras instabilidades no ambiente. O comportamento esperado numa condição desta natureza deveria proteger a execução de código, disparando uma ocorrência de erro fatal AdvPL antes do limite interno de memória de stack ser atingido. |
Melhoria | Implementada proteção no kernel de execução de programas AdvPL, para verificar a cada novo item na pilha de funções se a memória interna reservada para stack da aplicação ultrapassou os 90% de ocupação. Em caso afirmativo, a aplicação será finalizada com a ocorrência de erro fatal AdvPL "stack memory overflow", antes da memória interna ser esgotada. |
Informações adicionais |
|