私は休眠中の断層について考えていましたが、例を見つけることができません。定義上、休止状態の障害とは、エラーを引き起こさず、したがって障害を引き起こさない障害(コードの欠陥)です。誰か私に例を教えてもらえますか?私の頭に浮かんだのは、未使用のバグのあるコードだけでした。ありがとう
1823 次
2 に答える
4
休止状態の障害は、想像以上に一般的です。ほとんどのプログラマーは、コードが誤った動作を示していなくても、「私は何を考えていたのか、どうすれば正しく実行できるのか」と考える瞬間を経験しました。古典的なケースは、たとえばメモリ割り当ての失敗など、コーナーケースの処理に問題があることです。
char *foo = malloc(42);
strcpy( foo, "BarBaz" );
上記のコードはほとんどの状況で正常に機能し、テストに問題なく合格します。ただし、メモリの枯渇によりmallocが失敗すると、惨めに失敗します。障害はありますが、休止しています。
于 2012-07-30T08:40:04.373 に答える
2
休止状態の障害は、システムに正しい入力[編集:または状況]を送信するまで明らかにならない障害です。
古典的な例はTherac-25からのものです。技術者がシステムの使用に「流暢」になるまで、入力時にありそうもないキーのセットによって引き起こされる競合状態は発生しませんでした。彼らは一般的な治療法のキーストロークを覚えていました。つまり、彼らは非常に素早くそれらに入ることができました。
私の頭に浮かぶ他のいくつかのもの:
- 2000年が来るまで、Y2Kバグはすべて休止状態の障害でした...
- Photoshop7はWindows7マシンでも問題なく動作しますが、1TBのディスクがいっぱいであると見なされます。空き領域を保持するために使用されるデータ型は、このような大量の空き領域を考慮して設計されておらず、オーバーフローが発生して空き領域が不十分に見えると説明されています。
- TFTPを使用して32MBを超えるファイルを転送すると(ブロックカウンターは16ビットで65535にしか到達できません)、多くの古い実装で休止状態のバグが明らかになる可能性があります。
この最後の一連の例では、これらのシステムがそのようなインスタンスをサポートすることを要求する仕様がなかったため、実際には障害ではないと主張することができます。しかし、それは仕様の完全性に入ります。
于 2012-11-05T00:17:33.353 に答える