全銀ネット障害に詳しい人に質問です。

C言語関連 | 工学552閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

ありがとうございます。リコンパイルでサイズが増えたのは型の問題ではなくアライメントの話だったけど、バッファオーバーランした理由はドキュメント不備だったということですね?

その他の回答(3件)

なんかもう日本企業の年功序列制度が根本的に悪いの認識です。ITの知識に乏しい人間が管理者になるにつれ、品質に対する理解も期待できずその結果今回のように詳細設計書を書いた人がレビューに参加していないという意味不明すぎる事態に発展してしまうのでしょう草草大草原 なんかの記事でみましたがAWSでは設計から保守まで同じ人間が担当することで品質を確保しているようですが、そういった要素を取り入れる知能を持ってない無勉強かつ無能な管理者ばかりの日本企業は永遠にこういった事態から逃れられませんね(再発防止なんて嘘っぱちで草草)大草原

>すみませんが、その回答は間違いですよ。int型はx86でもx64でも4バイトです。ちゃんと調べてください。 知ったかぶり止めておけ。 使う言語仕様やOSもしくはコンパイラによって挙動が違う。 採用しているデータモデルによって変わる。 CPU関係ない https://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88 自分が仕事に使っている言語もint/uintで定義するとビルド対象によって サイズが変わる。 サイズを固定したいならint32/int64などで定義する必要がある。

>int型はx86でもx64でも4バイトです。ちゃんと調べてください。 データモデルすら知らないでなんて言っているほどの無知が >ほとんどのシステムがLLP64かLP64を採用しています。また、今回の全銀ネットではLINUX何だからLP64であり、intは32bitが保証されます。 >だから、intが64ビット拡張によりサイズが増えたなんて結論はほぼほぼありえないのにそこにこだわって、相手をばかにするような人間に言われたく有りませんね。 無知がちょっと知って天狗になっているパターンか。

いいえ。アライメントの話ではありません。 例えば変数「int型」のサイズは、x86=32bitアーキテクチャでは32bitで、x64=64bitアーキテクチャでは64bitになる、という話です。なので、同じ配列数であっても、64bitアーキテクチャにすると32bitのときと比べて2倍のメモリ領域が必要になるが、それだけの領域を確保してなかったのが原因です。 まぁ実際に全銀ネット障害で問題になったのは、int型ではなくlong型ですけど。 よく口酸っぱく「int型など、変数は環境によってサイズが変わってくるから、sizeofを使うか、int32などとビット長を明示しろ」と言われてきましたけど、守られてなかった、ということですね。