ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

飛田ショウマの憂鬱 (9)

»

20XX 年 3 月 7 日

八十田建設株式会社
総務部システム管理課 石岡課長様

株式会社シグマファクトリー
情報システム営業部システム開発課 首藤

見積書管理システム システム障害に関する報告書

20XX 年 3 月 5 日に、見積書管理システムが数時間使用不可となった障害が発生したため報告いたします。
八十田建設株式会社様には、大変ご迷惑をおかけしました事、深くお詫び申し上げますとともに、障害内容の詳細な経緯、原因、および今後の対応について下記の通りご報告申し上げます。

・障害発生日
 20XX 年 3 月 5 日(土)

・経緯
 10:05 世田谷営業所より、新規見積書作成を実行するとエラー画面に遷移してしまい、見積書作成ができない、との連絡が、総務部システム管理課 田邊様へ入る。
 10:13 渋谷営業所、町田営業所からも同様の事象の連絡。
 10:20 田邊様が現象を確認。
 10:28 田邊様により見積書管理システムの再起動。結果は変わらず。
 10:30 弊社長谷部へ連絡。直ちに対応開始。
 11:30 システム管理課 田邊様より、応対中の顧客に早急な見積書の提示が必要であり、Excel で作成するために、資材マスタの全データを送って欲しいとの連絡。長谷部よりCSVファイルを送信。
 11:45 送信したCSVファイルがテストデータであったことが判明。改めて最新データを送信。
 12:48 エラーログの調査により、ヌルポインターエラーが発生していることを確認。
 13:05 原因が資材マスタの異常データを読み込む部分であることが判明。夜間バッチを管理メニューから再実行。
 13:12 バッチ処理の再実行完了。
 13:15 新規見積書作成の正常稼働を確認。

・発生原因

  1. 毎日、2:00AM に実行されている夜間バッチ処理の一つ、資材部品価格マスタ差分インポート処理が、ネットワークの瞬断により、異常終了した。
  2. 1. によって、レコード長が不正なファイルが残ったままになった。
  3. インポート処理に続いて実行される反映処理が異常終了した。
  4. 異常終了の場合、データベースをロールバックすべきだが、ロールバック処理の実装が洩れていた。
  5. そのため、資材マスタデータの一部が、ヌルデータのまま残った。
  6. 異常終了の場合のエラーメールは、システム管理課に送信されており、その場合、システム管理課で再処理を実行する手順になっていたが、システム管理課の担当者が出社しておらず、メールの参照が行われなかった。
  7. 新規見積書作成の初期化処理時に、直近に更新された資材の一覧を取得しているが、異常となったマスタデータが含まれており、読み込み時にエラーとなった。マスタデータの読み込み時にエラーとなることが仕様として想定されておらず、予期しないエラーとしてエラー画面に遷移された。

・対応
 長谷部の指示の元、エラー原因となった読み込みプログラムを特定。原因が資材マスタにあることが判明。夜間バッチログを精査し、異常終了であることを確認。バッチ処理の再処理を実行。

・再発防止策
 全プログラムの精査を早急に実行し、異常終了時のロールバック、エラー発生時の処理などが抜けている部分の修正を実施いたします。また、異常発生時の通知方法を、エラーメール以外の方法でも行うようにいたします。通知方法につきましては、別途、ご相談の上、実装させていただきます。さらに全プログラムの修正については、必ず管理者の承認を通した上で実施することといたします。
 また、御社システム管理課担当者様におかれましては、エラーメールの確認を必ず行う運用を徹底していただけますよう、お願い申し上げます。

以上

 


20XX 年 3 月 7 日

様式TR-02 障害報告書

ソリューション事業部
情報システム営業部 システム開発課 首藤

八十田建設見積書管理システムにおける障害報告書

■顧客:[154041] 八十田建設株式会社
■システム名:[YASO_MITSU001] 見積書管理システム
■発生日時:20XX.3.5 10:05
■障害レベル:[ 重大 ]
■事象概要:見積書管理システムが数時間使用不可となった
■経緯詳細:別紙、八十田建設株式会社様向け障害報告書を参照
■原因:

  1. 夜間バッチとして実行している、資材部品価格マスタ差分インポート処理(YAMB041) が、3/5 2:00 に実行されたが、上流ネットワーク機器の瞬断によって異常終了した。
  2. その結果、インポート対象ファイル(/var/tmp/IMPPARTS0305.dat) が、1041 行めの途中まで受信した段階で保存された。
  3. 上記の時点で、エラーメールが八十田建設システム管理課のML(yasoda_mitsumori) 宛に送信された。
  4. 続いて実行された資材マスタ更新処理(YAMB044) が、上記のファイルを読み込む際に異常終了した。この際、データベースがロールバックされなかった。このため、資材マスタの2,247 件が、参照コード、単価、有効フラグがnull のままとなった。
  5. 見積書作成・編集画面(YAMG031) では、初期化処理時に直近に更新された資材一覧を取得しているが、その際、nullデータを読み込んだため、初期化処理失敗としてエラー画面に遷移した。

■対応内容:

  1. 八十田建設システム管理課 田邊氏より連絡を受け、長谷部チームリーダーが自宅から駆けつけ、直ちに原因究明を開始。
  2. 迅速に原因箇所を特定するため、細部を熟知しているサブリーダー飛田、野見山を招集。長谷部の指示の元、エラーログの調査を実施。
  3. 原因箇所を特定後、対応内容を検討。サブリーダー2 名より、失敗した夜間バッチの再処理を行うことによって正常動作が見込めると提案。長谷部チームリーダーが提案を検討、承認。八十田建設へ連絡。
  4. 八十田建設システム管理課より、正常稼働の連絡を受け、対応完了とした。

■再発防止策:

  1. 異常終了時にはシステム管理課のMLにエラーメールを送信しており、今回の事象は同メールを確認する運用が徹底されていれば業務開始前に防げたとの認識である。この件に関しては八十田建設システム管理課に、メール確認の運用の徹底を依頼済み。
  2. 今回の事象では、インポート処理が異常終了したにも関わらず、後続の更新処理が実行されてしまったことが障害の原因となった。このような状況を想定した設計、およびテストが実施されていなかったことは、大きな問題であると言えるため、すでに改修に着手済み。
  3. マスタ更新処理が異常終了したとき、ロールバック処理が実行されなかったため、不完全な状態のマスタが残る結果となった。これは設計、およびテスト洩れである。この部分を担当した派遣社員の篠崎が残した不具合であることが判明した。すでに改修に着手済み。
  4. 上記と同様の仕様洩れ、テスト洩れが存在していないか、全プログラムの調査を、長谷部チームリーダーの指示により着手済み。
  5. 今後、影響範囲の大小に関わらず、プログラムの追加、改修等を実施する際には、必ずチームリーダーの承認を得るよう、開発プロセスの見直しを行う。これは「シグマファクトリー新システム開発基準」にも合致する。

■所感:

 今回の障害は、本番稼働後、わずか5 日めで発生し、なおかつ主要機能が数時間にわたって使用できなくなるという重大なものであった。開発期間が短かったとはいえ、異常時のテストが不足していたことは、その言い訳になるものではない。開発プロジェクトのマネージャとして責任を痛感するものである。
 ただ、障害対応そのものにおいては、土曜日であったにも関わらず、原因究明、対応策の提案等を迅速に実施することができたことは評価すべきである。特に事象発生から収束まで一貫して指揮を執り、的確な指示を出した長谷部チームリーダーの功績は、これが初めての開発チームリーダーであることを鑑みると特筆すべきものであると言える。
 また、開発時に、マネージャおよびチームリーダーの指示を無視して、サブリーダーたちがスケジュールを無視し、充分な設計フェーズを経ずに実装フェーズを進めていたことも明らかになった。このように、入念に組み上げられた開発計画を無視した実装を行うことが、本事象の遠因となったことは否めない。このような問題が表面化したことは、むしろケガの功名と言うべきであろう。これを教訓に、今後の開発業務では、より一層、指揮系統を堅牢なものにしていく所存である。

以上

(続)

 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

「レッドビーシュリンプの憂鬱」(罪と罰:改題)はこちらから。書評を書いていただいたコラムニストの方々、ありがとうございます。

 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

「ひいらぎ飾ろう@クリスマス」が漫画化されました。今回は劇画調です。

xmasLink.png

Comment(16)

コメント

通りすがり

うへぇ~。見事なまでの保身ぶり。これ現場にいたらキレるは。

長谷部くんも完全に加担側に回ったか。。

papopu

今回は報告書の書き方講座(責任転嫁版)か。
面白くは無いね。
これで飛田くんは転職か。

ななし

いつも楽しく読んでいます。
巧妙→功名と思います。

匿名

裏スケジュールの存在も、課長に献上し始めましたか。

匿名

伏線回収というかスピンオフから罪と罰へはどうつながるのかだと
この時点で飛田が辞めるほどの何かは読み取れませんし
これを契機にイニシアティブにコンサルを頼んでという訳には行きませんからね
罪と罰が関東の初回なので

hoge

保身のためにメンバーを裏切るとは・・・・

匿名

これコードレビューの際の伏線回収ですかね…

たーじん

「石岡課長様」
2重敬称にしている。。。
この時点でイケテナイ書類。。。

jo

6話のコードレビューで長谷部の指摘通りに修正した結果ですね。
前話で首藤と長谷部がいらないといった異常系のテストを省いた結果、飛田の指摘した通りのエラーが発生した、と。

匿名

>今回の事象は同メールを確認する運用が徹底されていれば業務開始前に防げた
素晴らしい運用だなぁ

リーベルG

ななしさん、ご指摘ありがとうございました。

rana

2月末で契約切れた篠崎さんのせいにされてる。

jan

既にいない篠崎さんのせいにするとは素晴らしいゲスっぷりですね。。

NNN

「ひいらぎ飾ろう@クリスマス」漫画化の画像リンクを踏むと、自ページ(飛田ショウマの憂鬱 (9))に飛んでしまいます。
今回は別ページからいきましたが、前に漫画化したときの画像リンクはそんなことなかったので設定ミスなのか私だけなのか…

リーベルG

NNNさん、ご指摘ありがとうございます。
設定ミスです。すみません。

通りすがり

この業界、やっぱりこういうテクニックに長けてないと、
生きていけない業界なんだなと
妙に納得
業務は違えど、こういう人いるもんなぁw

コメントを投稿する