Arquivos de log corrompidos com caracteres NUL e texto de outros processos

1

Estou executando o Wind River Linux 4.3 em um computador de placa única incorporado Freescale (SBC). Saída de uname -a :

Linux ge101 2.6.34.10-myname-grsec-WR4.3.0.0_cgl #1 SMP PREEMPT Mon Aug 26 01:35:35 PDT 2013 ppc ppc ppc GNU/Linux

Existem vários módulos / processos em execução e a criação de arquivos de registro que estou interessado em coletar:

  1. Um registro do módulo do kernel em / var / log / messages
  2. Um aplicativo de espaço do usuário que está tendo seu stdout redirecionado para um arquivo de log. Este aplicativo é iniciado automaticamente na inicialização por um script init.d. O script faz isso com o seguinte: nohup ${executable_name} -C ${configfile_name} >> ${logfile} 2>&1 &
  3. Esse mesmo aplicativo de espaço do usuário grava outros dados em um arquivo separado no sistema de arquivos do SBC.
  4. Um script Python usando o módulo logging para gravar em um arquivo de log.

Estou vendo um problema bizarro em que esses 4 arquivos de log ocasionalmente são "corrompidos" da seguinte maneira:

  • Em qualquer lugar entre 78-309 caracteres NUL são inseridos no arquivo de log
  • O texto de outro arquivo de log (40 ou mais linhas) é inserido nele
  • Quando isso acontece, há um fragmento de dados faltando no arquivo de log

Além disso, há alguns casos em que apenas os caracteres NUL são inseridos e nenhum texto de outros registros é misturado.

Em um arquivo de log na ordem de 100 mil linhas, esse comportamento ocorre de sete a nove vezes.

Os caracteres NUL sozinhos seriam fáceis de remover durante o pós-processamento. No entanto, os dados inesperados que aparecem de outros arquivos estão quebrando os scripts de análise. E, claro, o pedaço de dados que falta é o mais problemático.

Alguém sabe o que pode causar esse comportamento bizarro?

    
por tony_tiger 07.01.2014 / 20:55

0 respostas

Tags