Páginas filhas
  • 19458773 DFWKLOGIX-1205 DT Função 4GL LOG_file_remove provocando STACK Overflow


01. DADOS GERAIS

Produto:

TOTVS Framework

Linha de Produto:

Linha Logix

Segmento:

Tecnologia

Módulo:

Framework (Linha Logix) - Tecnologia

Função:Exclusão de arquivo em disco - file.4gl / file.prw
País:Brasil
Ticket:19458773
Requisito/Story/Issue (informe o requisito relacionado) :DFWKLOGIX-1205


02. SITUAÇÃO/REQUISITO

Ao acionar a função 4GL log_file_remove() ocorre falha de Stack Overflow para um arquivo em disco apenas na situação que atende as seguintes características durante a execução do Logix:

    • Arquivo a ser excluído do disco do servidor de aplicação;
    • Build AppServer 7.00.131227A, versão 32 bits;
    • Sistema operacional LINUX;
    • Nome do arquivo contém espaço em branco (Exemplo: Arquivo_teste  (2024).doc);
    • Arquivo não existir no disco do servidor.

O problema somente ocorre na tentativa de excluir um arquivo que não existe fisicamente no servidor de aplicação e que atenda as demais características acima citadas.

03. SOLUÇÃO

Devido a uma falha de stack de chamada INTEROP entre 4GL e ADVPL, o build AppServer em uma determinada situação isolada, envia valores de parâmetros da função framework desenvolvida em 4GL chamada Log_file_remove() para uma função ADVPL, também chamada Log_file_remove(), que são recebidos na camada ADVPL com valores de uma chamada anterior desta mesma função, não sendo o valor correto do STACK de execução e isso acabava provocando uma chamada recursiva da própria função.

A alternativa para contornar de forma isolada o problema foi realizando a troca da chamada da função 4GL Log_file_remove() para a chamada ADVPL , sendo _ADVPL_Log_file_remove(<parâmetros>) para evitar a falha de passagem de argumentos da camada 4GL para ADVPL. Em paralelo, a situação para correção no build AppServer foi reportada junto ao time de tecnologia da TOTVS SP para providenciar a correção a partir do AppServer build Harpia.

04. DEMAIS INFORMAÇÕES

Não se aplica.


IMPORTANTE!

Disponível a partir do pacote oficial 12.1.2407 ou Framework Fix 12.1.2403(fix01)


05. ASSUNTOS RELACIONADOS

  • Não se aplica.