--------------------------------------------
分科会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。ベータなのに小数点?

司会者:
製造後の再検査。



司会者:
まとめ。
デモでうまく動いているように見せかける、という話。
不具合の再現は大変だ、という話。。
環境の問題。
言葉の問題。
タイミングの問題。
製造後の再検査。

--------------------------------------------