パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

容量が足りないんだってさ」記事へのコメント

  • 全銀システム障害の原因判明、メモリー不足でインデックステーブルが不正確な状態に [nikkei.com]

    メモリー不足に起因し、金融機関名などを格納したインデックステーブルに不正な値が紛れ込んだ。

     インデックステーブルはRCのディスク上にあるファイルから展開する。このファイルを作成するプログラムを実行したタイミングで、一時的に確保するメモリー領域が不足し、ファイルの内容が不正確になったという。

    ディスク上のデータからインデックステーブルを作成する処理中に

    • あくまで予想なのだけど
      OSが32bitから64bitへ変更
      →コンパイラも当然64bit版になる
      →古いCのソースを64bit版でコンパイルして使用
      →int型やchar型のバイト数が変わってメモリの領域を確保するのに計算が狂って確保した領域からメモリがあふれた・・・
          テストの時はギリあふれない程度の小さいデータでテストしてた・・・
      とかじゃないかなーとか思ったりする。
      しらんけど。

      どんなレポートが出てくるのか楽しみ←不謹慎かも

      親コメント
      • by Anonymous Coward

        テストでそれなりのサイズにしていても、日本信号の自動改札機が死んだ [wikipedia.org]みたいなパターンだと特定の倍数で起きるから。

        mallocが8バイト単位にそろえるのでアクセス違反してても余計に領域を確保してる範囲に収まれば死なない。
        けど、特定倍の時にはみ出てメモリアクセス違反で死亡とかね。

      • by Anonymous Coward

        sizeof(*uint32_t)をsizeof(uint32_t)としてたみたいな奴か……

にわかな奴ほど語りたがる -- あるハッカー

処理中...