É possível que apenas um bit mude para que meu arquivo me mostre uma letra "Q" em vez de um "S"


22

Em nosso aplicativo, usamos o Hibernate e PostgreSQL para armazenar dados. Em uma de nossas tabelas de banco de dados, temos uma coluna discriminadora que diz, por exemplo, "TIPPSPIEL". É uma sequência fixa e não pode ser manipulada por nenhum usuário.

De repente, tivemos uma entrada nessa enorme tabela em que tínhamos "TIPPQPIEL" em vez de "TIPPSPIEL". Não temos idéia de como isso pode acontecer.

É possível, por qualquer meio, que o nosso disco rígido esteja alternando um pouco, para que a nossa letra "S" não seja mais codificada como "1010001", mas de repente se torne um "Q" no disco rígido com um bit alternado da seguinte forma: 1010011?

Eu não sou um especialista em física de disco rígido, mas acho que um sistema operacional ou um disco possui somas de verificação e outras coisas para garantir que isso não possa acontecer.

É possível que apenas um bit mude para que meu arquivo me mostre uma letra "Q" em vez de um "S"?

ATUALIZAÇÃO: Fizemos uma análise mais aprofundada. Nosso banco de dados escravo obtém seus registros WAL do master (recurso PostgreSQL). Seja como for: nosso servidor escravo deve estar sincronizado. Mas o escravo não estava em sincronia com relação a essa linha em particular. Vimos que isso aconteceu há alguns dias sem nenhuma interação de um usuário nessa entrada específica. Portanto, deve ser um pouco invertido. assustador!


Prefiro assumir que isso veio de uma memória defeituosa. Você ainda tem o log quando essa coluna foi gravada?
ott--

1
Seus improvável, mas possível, bits em trânsito se virou com um alto grau de regularidade, consulte 'bitsquatting'
Sirch

Respostas:


10

É tão raro vermos uma pergunta realmente interessante neste site, por isso, obrigado em primeiro lugar.

Eu acho que o que você está vendo é realmente um erro de bit único, é incrível que você consiga ser honesto, mas está correto ao assumir que o segundo bit menos significativo foi alterado (supondo que você esteja usando ASCII de qualquer forma).

Quanto às somas de verificação etc., quando gravadas no disco, é provável que tenham sido verificadas como corretas - tenho certeza de que esse problema se desenvolveu posteriormente por meio de um simples erro de vazamento magnético. Mas você está certo, há verificações de codificação feitas, varia de fabricante, mas provavelmente há um erro em algum lugar dizendo 'isso parece um pouco estranho' - mas que opção sua cadeia de E / S tem disponível? negar-lhe todo o bloco? Eu vou assumir que este é um único disco não RAID, pois eles discos RAID tendem a ter mais opções disponíveis quando detectam erros.

É estranho, embora esse tipo de coisa provavelmente tenha acontecido várias vezes por segundo em todo o mundo.


1
Você está certo, era uma configuração de disco não Raid neste caso. como minha análise posterior mostra, aconteceu muito depois que o registro foi gravado.
Janning

1
Se meus 20 anos como administrador de sistemas, já vi 3 casos de um único golpe de bit. Apenas um deles pode ser provado 100%. Os outros 2 eram suspeitos de serem bits invertidos, não podíamos dizer com certeza. (O bit pode ter invertido a memória depois de ler o arquivo. Quando percebemos a discrepância, o arquivo original não estava mais disponível ou havia sido tocado. Tenho certeza de que isso acontece com mais frequência do que todos pensam, mas raramente é percebido e geralmente não demonstrável, se for notado.
Tonny

1
Falhar na leitura de todo o bloco é exatamente o que as unidades fazem quando obtêm um erro incorrigível. É impossível ter apenas um bit invertido na parte de dados do usuário do setor e passar despercebido. O bit deve ter sido invertido quando foi gravado no disco.
psusi 12/07/2013

Esta pergunta deve ser feita canônica?
Deer Hunter

@psusi Não é impossível, pois você só precisa de movimentos de bits suficientes no setor para fazer o ECC funcionar corretamente. Improvável, mas possível, e os fabricantes de disco citam taxas de erro suficientemente altas que você realmente deveria esperar ver. Eu ouvi rumores de que pessoas ZFS vê-los (devido a somas de verificação de dados de nível ZFS) ...
derobert
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.