Apakah mungkin hanya satu bit yang beralih sehingga file saya menunjukkan kepada saya huruf "Q" dan bukannya "S"

22

Dalam aplikasi kami, kami menggunakan Hibernate dan PostgreSQL untuk menyimpan data. Dalam salah satu tabel database kami, kami memiliki kolom diskriminator yang mengatakan misalnya "TIPPSPIEL". Ini adalah string tetap dan tidak dapat dimanipulasi oleh pengguna mana pun.

Tiba-tiba kami memiliki satu entri di tabel besar ini di mana kami memiliki "TIPPQPIEL", bukan "TIPPSPIEL". Kami tidak tahu bagaimana ini bisa terjadi.

Apakah mungkin dengan cara apa pun bahwa hard disk kami beralih satu bit, jadi huruf "S" kami tidak lagi dikodekan sebagai "1010001" tetapi tiba-tiba menjadi "Q" pada hard disk dengan satu bit diaktifkan seperti ini: 1010011?

Saya bukan ahli pada hard disk sedikit fisika tetapi saya kira OS atau disk memiliki checksum dan hal-hal lain untuk memastikan bahwa ini tidak dapat terjadi.

Apakah mungkin hanya satu bit yang beralih sehingga file saya menunjukkan kepada saya huruf "Q" dan bukannya "S"?

PEMBARUAN: Kami membuat analisis lebih lanjut. Database slave kami mendapatkan WAL Records dari master (fitur PostgreSQL). Apa pun: server budak kami harus sinkron. Tetapi budak itu tidak sinkron mengenai baris khusus ini. Kita dapat melihat bahwa itu terjadi beberapa hari yang lalu tanpa ada interaksi dari pengguna pada entri khusus ini. Jadi itu HARUS agak membalik-balik. mengerikan!

Janning
sumber
Saya lebih suka menganggap ini berasal dari memori yang salah. Apakah Anda masih memiliki log, ketika kolom itu ditulis?
ott--
1
Ini tidak mungkin tetapi mungkin, bit dalam perjalanan mendapatkan terbalik dengan tingkat keteraturan yang tinggi, lihat 'bitsquatting'
Sirch

Jawaban:

10

Sangat jarang kami melihat pertanyaan yang benar-benar menarik di situs ini, jadi terima kasih pertama-tama.

Saya pikir apa yang Anda lihat memang ada kesalahan bit tunggal, luar biasa Anda bisa melihatnya jujur ​​tetapi Anda benar dalam mengasumsikan bahwa bit kedua paling tidak signifikan telah diaktifkan (dengan asumsi Anda menggunakan ASCII bagaimanapun).

Adapun checksum dll ketika ditulis ke disk itu kemungkinan akan diverifikasi sebagai baik - Saya cukup yakin masalah ini telah berkembang setelahnya melalui kesalahan kebocoran magnetik sederhana. Tapi Anda benar, ada pemeriksaan pengkodean yang dilakukan, itu bervariasi dari produsen tetapi mungkin ada kesalahan di suatu tempat mengatakan 'ini terlihat agak aneh' - tetapi opsi apa yang tersedia rantai IO Anda? menolak kamu seluruh blok? Saya akan berasumsi ini adalah disk non-RAIDed tunggal karena mereka RAIDed disk cenderung memiliki lebih banyak opsi yang tersedia ketika mereka mendeteksi kesalahan.

Ini aneh, meskipun hal semacam ini mungkin terjadi beberapa kali per detik di seluruh dunia.

Chopper3
sumber
1
Anda benar, itu adalah pengaturan disk non-Raid dalam hal ini. sebagai analisis saya lebih lanjut menunjukkan hal itu terjadi lama setelah catatan ditulis.
Janning
1
Jika saya 20 tahun sebagai sysadmin saya telah melihat 3 kasus satu bit-flip. Hanya satu yang bisa dibuktikan 100%. 2 lainnya diduga bit terbalik, kami tidak tahu pasti. (Bit bisa saja terbalik dalam memori setelah membaca file. Pada saat kami melihat perbedaan, file asli tidak tersedia lagi atau telah disentuh. Saya cukup yakin itu terjadi lebih sering daripada yang dipikirkan setiap orang, tetapi jarang diperhatikan dan biasanya tidak dapat dibuktikan jika diperhatikan
Tonny
1
Gagal membaca seluruh blok adalah persis apa yang dilakukan drive ketika mereka mendapatkan kesalahan yang tidak dapat diperbaiki. Tidak mungkin memiliki hanya satu bit flip di bagian data pengguna sektor ini, dan tidak terdeteksi. Bitnya pasti terbalik ketika ditulis ke disk.
psusi
Haruskah pertanyaan ini dijadikan kanonik?
Pemburu Rusa
@psusi Tidak mustahil, karena Anda hanya perlu membalik bit yang cukup di sektor ini untuk membuat ECC keluar dengan benar. Tidak mungkin, tetapi mungkin, dan produsen disk mengutip tingkat kesalahan yang cukup tinggi sehingga Anda benar-benar harus melihatnya. Saya pernah mendengar desas-desus bahwa orang-orang ZFS melihat mereka (karena checksum data tingkat ZFS) ...
derobert