[MASOCH-L] arquivo corrompendo mesmo com chattr

Jardel Fabricio Fortkamp De Araujo jardel.araujo at redeunifique.com.br
Wed Jan 27 15:52:26 -03 2021


Acredito que você consiga pegar quais processo acessam esse arquivo usando o comando lsof.
Daria para rodar um loop do lsof em backgroup para ficar monitorando e ver se aparece algum processo diferente que acessa esse arquivo.


Jardel Fabricio Fortkamp de Araujo 
Data Center | Unifique - Timbó 
[ mailto:jardel.araujo at redeunifique.com.br | jardel.araujo at redeunifique.com.br ] 	[ https://unifique.com.br/ ] 
	

----- Mensagem original -----
De: "Rejaine Silveira Monteiro" <rejaine at bhz.jamef.com.br>
Para: "Mail Aid and Succor, On-line Comfort and Help" <masoch-l at eng.registro.br>
Enviadas: Quarta-feira, 27 de janeiro de 2021 14:39:02
Assunto: [MASOCH-L] arquivo corrompendo mesmo com chattr

Oi pessoal,

Estou com uma situação um tanto bizarra.. Rodo um app  no Liniux SLES12
 de terceiros (Totvs/Protheus)

Esse app lê um arquivo de configuração (um txt chamado appserver.ini ) e
volta e meia esse arquivo de configuração aparece corrompido.

O desenvolvedor já tentou colocar um debug na aplicação , mas ainda não
encontrou nada.. Disseram que o app não deveria  escrever no arquivo
(exceto em situações muito pontuais e que , segundo ele, não parece ser o
caso) Logo sobrou a culpa para o SO, que supostamente (e por algum motivo
muito bizarro) estaria despejando algum lixo no arquivo... (o que acho
difícil, mas vamos lá)

De início já descartamos problema de hardware/memória e afins, pois ocorre
o problema em máquinas diferentes (sejam virtuais ou físicas)

Executo o comando file para detectar quando o arquivo está corrompido e ao
inves dele retornar, por exemplo, "ASCII text", ele retorna algo do tipo:

# file appserver.ini
appserver.ini: data

Quando edito o arquivo, há caracteres estranhos no início, meio ou final do
arquivo.

Já tentei rodar um strace no PID do processo, mas não me esclareceu muita
coisa:

unfinished ...>
4645  write(384,
"C\0\0\0(\0\0\0\v\0\0\0\0\0\0\0\0\0\0\0S\1\20\0\0\0\0\0\0\0\0\0"..., 71) =
71
8913  <... write resumed> )             = 80
<...etc>
9069  write(1, "/appserver.ini RESTORED IN MEMOR"..., 4096) = 4096
<etc...>
22886 write(242, "\25\3\3\0\32}u\f\274\210
\320X\334\227xnW\347\\cCH\227\354\365\20/\206g,", 31) = -1 EBADF (Bad file
descriptor)
22886 write(7, "\n2021-01-27T13:06:21.617032-03:0"..., 130) = 130
22886 write(7, "\n2021-01-27T13:06:21.620391-03:0"..., 154) = 154
22886 write(7, "\n2021-01-27T13:06:21.620615-03:0"..., 113) = 113
22886 write(1, "/jss/jobservice7/appserver.ini *"..., 4096) = 4096
22886 write(7, "\n2021-01-27T13:06:21.620902-03:0"..., 135) = 135

Me parece ser algo do tipo: algum child process/fork no processo PAI tenta
ler/escrever no arquivo enquanto algum outro child está com o mesmo aberto
ou algo do tipo..
Mas como posso descobrir isso (sem debugar por dentro da aplicação, pois
não temos acesso ao código?) Há alguma coisa que eu poderia fazer para
tentar mitigar o problema e descobrir exatamente o processo que está
escrevendo, de forma aleatoria, no arquivo?

-- 
*Esta mensagem pode conter informações confidenciais ou privilegiadas, 
sendo seu sigilo protegido por lei. Se você não for o destinatário ou a 
pessoa autorizada a receber esta mensagem, não pode usar, copiar ou 
divulgar as informações nela contidas ou tomar qualquer ação baseada nessas 
informações. Se você recebeu esta mensagem por engano, por favor avise 
imediatamente ao remetente, respondendo o e-mail e em seguida apague-o. 
Agradecemos sua cooperação.*
__
masoch-l list
https://eng.registro.br/mailman/listinfo/masoch-l


More information about the masoch-l mailing list