-------------------------------------------- 分科会1 セッション S1-4-1 テーマ :組み込み百物語 コーディネータ:木元 峰之 日時 :2005/8/25 20:30-22:30 会場 :B会場 席数 :80席 参加者 :30人程度 -------------------------------------------- -------------------------------------------- 概要: 組み込みシステム開発に関わって、思いがけず見てしまったあんなことやこんなこ と。本当にあった怖い話、恐ろしいコード。そんな経験を持っているのは、あなた だけではないかも知れません。信じられない現象から目を背けるのではなく、背後 にある共通点を、化学的に考証してみませんか。 この分科会では、皆さんからの情報提供を元に、組み込みソフトウェア開発の問題 点、失敗事例、ワーストプラクティスなどを取り上げます。そこから、組み込みシ ステム開発における重要課題を認識し、現実的な対応策を探って生きます。皆様の 参加を、心よりお待ちしております。 -------------------------------------------- -------------------------------------------- 内容: A: USB製品を作った。USB を指すと"再起動しますか"というメッセージが出る。設定 を少し変えたのが、原因だった。一晩で、USBを7000回くらい抜き差ししたことも 。帰るのが朝の5時とか。解決に1ヶ月もかかった。 S: ある製品がが時々落ちる。解決するまで、社員は帰ってくるな、というのは常識。 再現がなかなかならない。6時間くらいでやっと再現した。しかし、ログをとって なくて、恐ろしい。スイッチを換えたら直った。こういうバグは、10年に一回くら いは経験しているかと。不具合は最初は何が原因か分からない。再現しないと分か らない。 司会者: CDプレーヤで、ディスクを入れても何もできない。これがいつなるか分からない。 全力でコマンドを送っていると起こる?すごい大変だった。不具合の再現で割りと 苦労している。 S: もっとひどい話。中規模のものを作る。設置のときにテストする、筐体が入らない ので。不具合表が送られてきて、交換機の立ち上げで中にダウン。なぜだと思い ます? B: 電圧が低い。 C: 契約電流をオーバー。 D: 振動で。 S: 正解。交換機は、立ち上げに10分。再現してみるが起こらない。起動中に落ちるし か分からない。ハードディスクで落ちるという報告があった。もっと早く言え。HD のシークエラー。工事中で振動があった。隣でドリルを使っていた。ちょうど 重なっていた。振動させてやると、数回目で再現できた。不具合表が不十分だとこ ういうことが起こる。 E: ATMの交換機の話。現地(アメリカ、テキサス)に入れるときに、ノイズが乗って落 ちる。現地に行ってみたが、一週間再現しない。晴天だったため、不具合が起きな かった。雷雨のときに再現。雨が降ると起こる(ノイズ)。雨と関係があるはず。 ノイズを測定する装置で図ると、ある一定の方向からノイズが。給水塔が無線で雨情 報を通信していることが原因。3月くらいは、天候が荒れる?ノイズが乗らないように シールなどを使うが、テストではなしでやっていた。 E: 2000年問題のときは、不具合が起きないか監視してた。 F: リアルタイム(現在進行)の話。インドで不具合が再現。日本では起きない。ログ が消える。なぜだと思います? S: インド洋上の赤道直下である装置を30日間動作させてると落ちた。持ち帰って 検証するが、分からない。インドは暑い。高温高湿、70度。半導体の特性が変わ る、高温だと。例外処理もできなくなって、落とす。想定外。30日もそういう場所 で動作させるとは想定外。75度が30日は想定外。 S: プロジェクトX、S社、トランジスタの話。船で運ぶと歩留まりが悪い。太平洋 を通して、パナマ運河経由でワシントンへ。日本でやってもなぜ歩留まりが悪い のか分からない。なぜだと思います? S: 熱か湿気かのとちらか。年代も関係あり。生産精度の問題。潮風もあったかも。1 ヶ月もコンテナに積んでいると、半導体の特性が変わって、半導体でなくなってい た。輸送方法を変えれば、なんとかなる。 S: ハワイの高度が4000m級に納品したことも。危険箇所危険手当がある。 S: 高いところでの問題。日本で動くパソコンを持っていても使えない。HD は、0.75 気圧以下だと、ヘッドが浮かないのが原因。高いところの観測室は、気圧が低い。 S: とある国の HD は、聞いた話、ディスクを読み書き中に電源を抜いたが、何も起こ らない。正常。なぜ助かった?20年前。電源抜いても一定時間電圧を保って安全地 帯まで持っていく。月にロケットを持ってった国は違うな。 司会者: インド・ネタがある方。 G: インドにかかわる会社と共同で、インドにいった。ある問題点を見つけたが、日本 人には問題だが、インドではそうでもない。時間の感覚がちがう。プッシュしない と動かない。コーヒーだけを取ってくるだけの人もいる。 DVDの扱いが違う。日本では再現しないのに、インドでは再現。DVDで記録面を適当 に扱うこと原因。 司会者: どういうわけだか毎週7時にワークステーションが落ちる。掃除のおばちゃんが、 電源を抜いていた。 S: 聞いた話。防災無線を、とある市役所に設置。が、阪神大地震が発生。防災無線が 起動しない。原因は停電。UPSが動かない。テストはしたつもり。 司会者: 停電テストは? S: それ以降追加。関西では大地震はないと思ってた。そういうこと知らない人が作る と、やばい。 司会者: IBMのシンクバット。Gセンサがついている。コンセントの線にひっかかって、その 瞬間のみエアバッグみたいなのが。 S: M社は、30年前から落下試験をしている。ラジカセを1.5mから落とす試験。壊れる とだめ。 司会者: 電子部品は熱に弱い。 H: 半田ごての当てすぎで部品が壊れる。 S: いくらやってもコピーが失敗。コピーコマンドを使っているが、コピーできない。 ログを送ってもらったら、”copy a;file_a file_b”。セミコロンとコロンを間違 えてた。夜中の2時から3時間かかった。 司会者: 全角半角の話。びっくりマークを間違えた。 I: キーボードで、1とlの表示が同じで、問題が。 司会者: 0とOが区別つかない。*の文字が化ける。=とスラッシュを重ねたやつに化ける。 フォントが壊れてる?入れなおしたが直らない。16ドットフォントしか積んでいない のに、12ドットで見てた。 S: プログラミングネタ。"double ax; double bx;"。double は使わないでくれっって お願いしたら、float になっていた。float と double の属性を知らないやつがい る。 J: あるビットが立っているかの判定でマスクして判定したが、ソース上では合ってい るが、動作させると不具合が。コンパイラの最適化が原因。レジスタの幅が異なっ ていた。見ているビットが違う。 司会者: コンパイラのバグは、アセンブラを見ないと分からない。 float で整数のイコール判定はやってはいけない。 S: いまどきの GCC では、Warning を言ってくれる。が、Warning を取り除かない人 がいる。 司会者: Warning は取り除いた方がいい。 K: 組込みで、USB でアプリケーションから使うが、表示がおかしい。週1回に再現。 調べてみると、USB をさすタイミングが原因。 司会者: 携帯もあるタイミングで不具合が。 S: あるキー操作をすると携帯が落ちる。再現テストでは再現しない。2CH などでたた かれる。ある人がやると起きた。若い子がやると起きる。若い人の指が速いので 起きる。中年ではボタンを押すスピードが遅いので起きない。 司会者: 一太郎で、早く入力するとバグが。 S: タイミングネタ。当たると痛い。 司会者: P社のもので、ソフトのバグでHDが飛ぶ。あるOSを使うとHDにバッドセクタができ る。厳密にはソフトが原因ではない。 司会者: 原因は、HD単体にライトバックキャッシュ機能がある。電源を切るときに、HDに書 き出してしまったため。 S: PC8000 で、FDは遅いんで、マウント時にキャッシュする。が、あることをし忘れ て、大変なことに。なぜか? L: ストップボタンを押してから。 S: マウントするまではディスクを認識しない。抜くときはアンマウント。そうしない と、キャッシュが書き込まれない。ファイルが壊れる。 司会者: HAMANA2のプログラムをしていた。300Kのファイルをアセンブラで。実行ファイル は44K。 司会者: デモのときだけ、うまくいってるように見せかける、ということも。 司会者: 不具合の再現が大変。 S: 一年に一回不具合が、あることも。新年に起こる。交換機の話。電話がかからない 。しばらくたつと使えるようなる。なぜか?リブートするとOK。 S: 今年は起きなかった。 司会者: 単に、容量オーバー? S: 違う。バッテリバックアップはしている。その会社は新年で、1週間休みで、その間 バッテリが持たなかったのが原因。電力問題。バッテリの容量を上げて何とかなっ た。 司会者: 環境の問題。温度・湿度など。日本以外で起こりえる。 司会者: 言葉の間違い。コロンをセミコロン。 S: モジュールという言葉は危険。C言語にはモジュールということばはない。 M: オブジェクト指向 も危険。 S: 単体試験の単体って何?タスク?モジュール?関数? 司会者: ベータ5.1。ベータなのに小数点? 司会者: 製造後の再検査。 司会者: まとめ。 デモでうまく動いているように見せかける、という話。 不具合の再現は大変だ、という話。。 環境の問題。 言葉の問題。 タイミングの問題。 製造後の再検査。 --------------------------------------------