【鉄道】1文字分のミスで大トラブルに 首都圏改札機トラブル[07/10/28]

このエントリーをはてなブックマークに追加
1しゃぎり ◆d......inc @窓際店長見習φφφ ★
 首都圏の鉄道で12日と18日の早朝に起きた日本信号(本社・東京)製の自動改札機と窓口
処理機の障害の原因は、プログラムがわずか日本語1文字分のデータの処理を誤ったため
だったことがわかった。「極めて単純なプログラムミス」と専門家が指摘する欠陥は、のべ
727駅、260万人の足に影響する事態に発展した。

 12日は改札機4378台、18日は窓口処理機101台で障害が起きた。どちらの機器も、IC
乗車券「Suica(スイカ)」と「PASMO(パスモ)」の相互利用に対応している。

 日本信号によると、期限切れなどの理由で使えなくなったカードをチェックするため、無効
カードの情報(ネガデータ)が相互利用センターのサーバーから各駅の駅サーバーに送られて
くる。駅サーバーはデータ処理に必要な情報を加えて、改札機や窓口処理機にネガデータの
情報を送る。

 両機器は毎朝の立ち上げの際、ネガデータの最新版を取り込む。その際、窓口処理機は
駅サーバーから直接データを受け取るが、改札機は監視盤で書き換えられたデータを受け取る。

 障害の引き金になったのが、2バイト(2進法で16けた)のデータだった。例えば改札機の
場合、ネガデータは5451件分(6万5518バイト)を一区切りとして処理される。処理は4バイト
ずつ進めるため、最後に2バイト余る。全角ひらがなや漢字1文字分のデータ量だ。

 半端な2バイトも、件数がこの一区切りまでなら正常に処理されていた。だが、5452件以上に
なると「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」(同社)というプログラム
の欠陥があった。

 相互利用が始まった3月から9月下旬まで、ネガデータは障害が発生する件数に達していな
かった。以後もたまたま障害の条件をすり抜けていたが、10月12日のデータは「5件」に合致
して2バイトが欠落し、改札機が立ち上がらなくなった。

 窓口処理機でも同様の処理が行われているが、データの受け取り方の違いから12日に障害
は起きなかった。だが、18日には「5件」の条件に当てはまった。

 今回の事態を受けて日本信号では、すべての機器のプログラムの見直し作業を進めている。

http://www.asahi.com/national/update/1028/images/TKY200710270271.jpg
http://www.asahi.com/national/update/1027/TKY200710270270.html
2名刺は切らしておりまして:2007/10/28(日) 16:42:25 ID:SQ+Dxy+s
  ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (,,  )  <  >>2ゲットしようと来てみれば
     .(  つ   |  こりゃまた とんだ駄スレだなぁ オイ
     | , |    \____________
     U U

 |  まあ せっかくだからやっといてやるよ   |
 \  ハイハイ 今だ>>2ゲットズザー っとくらぁ /
    ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

            ∧∧
           (゚Д゚O =3
      ⊆⊂´ ̄  ソ ヤレヤレ

ドッコイショ・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧∧          (´;;
    (゚Д゚ ,)⌒ヽ    (´⌒(´
     U‐U^(,,⊃'〜... (´⌒(´⌒;;

ハァ、ダルッ・・・帰るか
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
  ポ  ∧∧  ポ
  ン  (゚Д゚ ,) . ン
   (´;) U,U )〜 (;;).
(´)〜(⌒;;UU (´ )...〜⌒(`)
3名刺は切らしておりまして:2007/10/28(日) 16:43:38 ID:26N/V9V+
記事を書いたやつバカ?
バグの重大性に、1文字分かどうかなんてどうでもいい話だろが
4名刺は切らしておりまして:2007/10/28(日) 16:43:44 ID:UZ85AplG
いったいいくら損害賠償責任を被るんだろう?
このふざけたプログラムを書いた奴の人生は台無しだな。
5名刺は切らしておりまして:2007/10/28(日) 16:43:44 ID:NkCGWetz
担当した
アルバイトが悪い
6名刺は切らしておりまして:2007/10/28(日) 16:45:32 ID:egJUZmYP
レアケースにも見えないから、納入検査に問題がある気が
7名刺は切らしておりまして:2007/10/28(日) 16:45:43 ID:jULGVHQS
つか、自動改札のプログラムって、各社バラバラで作ってるの?
8名刺は切らしておりまして:2007/10/28(日) 16:46:30 ID:yKgePptD
>>1
産業
9名刺は切らしておりまして:2007/10/28(日) 16:46:36 ID:f6p68SSD
こういうことが起こっても、一切責任問われないシステム屋って良い商売だな
10名刺は切らしておりまして:2007/10/28(日) 16:46:44 ID:W4BIleXg
「○んこ」
たった2バイト、文字にすれば全角ひらがな一文字分だが、
放送業界では○に入れる文字によっては重大な事故に繋がる。
11名刺は切らしておりまして:2007/10/28(日) 16:48:26 ID:oyVuxBaX
まぁ、一区切り以上のデータなんてくるわけねーw
って思ってたんだろうなw
12名刺は切らしておりまして:2007/10/28(日) 16:49:04 ID:k7viNztg
俺はバグでこんなすごい被害を出したぞ! part自由
http://pc11.2ch.net/test/read.cgi/prog/1180240243/

>>9
あとで裁判沙汰になるけどな
13名刺は切らしておりまして:2007/10/28(日) 16:50:08 ID:QSS9a4Rl
なんでint?
14名刺は切らしておりまして:2007/10/28(日) 16:50:22 ID:z6WPaBp0
いっそのこと球団名を、デーブライオンズにしたらどうだ?www
15名刺は切らしておりまして:2007/10/28(日) 16:50:57 ID:9AoteOpk
しらを切り続けるyahooやgoogleよりは、原因を発表するんだから良心的だな
16名刺は切らしておりまして:2007/10/28(日) 16:51:00 ID:W4BIleXg
21世紀なんてくるわけねーw
って思ってたプログラマのせいで2000年問題が起こったようなもんか
17名刺は切らしておりまして:2007/10/28(日) 16:51:30 ID:NkCGWetz
>>10
あ い う え お
き さ し せ ち
て な ね ま め
よ れ わ

意外とあるな
18名刺は切らしておりまして:2007/10/28(日) 16:52:32 ID:7vmtoZ1x

ちゃんと上限を設定してテストさせなかったヤツが悪い。
19名刺は切らしておりまして:2007/10/28(日) 16:55:52 ID:ukDWp0Qt
ウンコ知新
20名刺は切らしておりまして:2007/10/28(日) 16:55:53 ID:k7viNztg
>>16
「21世紀なんてくるわけねーw」じゃなくて
「その頃までこのシステムが使われてるわけねーw」が正解。
あとコードのコピペ。

いまだにWin98を使ってるアホがいることからもわかるように
システムはいつ廃棄になるかわからんから怖いよな。
21名刺は切らしておりまして:2007/10/28(日) 16:56:09 ID:QSS9a4Rl
どうせ適当な仕様で中国あたりで作らせたプログラムなんだろ
22名刺は切らしておりまして:2007/10/28(日) 16:56:48 ID:FsQwHucP
>>17
歓呼
頑固
断固
全戸
判子
万古
文庫
23(,,゚д゚)さん 頭スカスカ:2007/10/28(日) 16:59:15 ID:XGkpU1QK
こういうことはこれからも続くでしょうね

一級のサイバーテロリストよりも、ハッカーよりも
メーカーのチョンボの方がはるかに恐ろしいことを
認識したほうがいい
24名刺は切らしておりまして:2007/10/28(日) 17:00:13 ID:PEvQR2Qr
よくあること。プログラマは悪くない。被害も小さいし
25(,,゚д゚)さん 頭スカスカ:2007/10/28(日) 17:02:37 ID:XGkpU1QK
原因について最初の数日間に書かれたことは全部ウソと
わかります、世の中そういうもんだと認識して下さい。

(´-`).。oO(あれ? レアケース??)
26名刺は切らしておりまして:2007/10/28(日) 17:03:41 ID:5bFHo223
なに?
2バイト余る・・・?
4バイト・・・6万5518バイト・・・

6万人もアルバイト雇って2人余ったってことか?
2人余ると自動改札機が故障するのか?
27名刺は切らしておりまして:2007/10/28(日) 17:05:12 ID:8hXCMK1Q
スレと関係ない話をするが

草加信者は企業の人事を目指すらしい
なぜかと言うと人事に食い込めたら後は仲間を優先的に受からせる事が出来るから。
当然既存の社員は重要ポストにつかせる。
信者だらけにして企業を食い物にする、例えば家電系だったら返品された売り物に
なる商品やわざと多く仕入れた商品を信者の経営する小さい会社にかなり安く横流しするんだよ。
カルトは就職を斡旋するのを売り物にしてるのはこういうからくりがあるからなんだよね。
次第にその企業は食い物にされる運命なんだな。
28名刺は切らしておりまして:2007/10/28(日) 17:06:40 ID:CrK6Hyby
うにっくす野郎とももろーらが何の取り得もないビッグエンディアンなんか使うから
29名刺は切らしておりまして:2007/10/28(日) 17:08:28 ID:f6p68SSD
260万人の時給を2000円程度、一人の遅れが10分として
260万×2000×1/6=8億6666万か・・・
大した被害じゃないな。
30名刺は切らしておりまして:2007/10/28(日) 17:08:59 ID:vDYR+mhV
藤原博文御大の御託宣
    ↓
31名刺は切らしておりまして:2007/10/28(日) 17:09:19 ID:iSx7olWZ
頭狂クオリティー
32名刺は切らしておりまして:2007/10/28(日) 17:11:37 ID:LsCHSAy1
テストが甘かったのはもちろんなんだろうけど
ここまで報道されるほどプログラムはインフラなんだな
33名刺は切らしておりまして:2007/10/28(日) 17:15:11 ID:h7Rb8rcW
設計書とテスト内容を突き合わせてないから
条件に漏れが起きたんだろうね。

設計書も適当なのかも。
34名刺は切らしておりまして:2007/10/28(日) 17:17:36 ID:j8Ph1Hfo
障害の引き金になったのが、2バイト(2進法で16けた)のデータだった。例えば改札機の
場合、ネガデータは5451件分(6万5518バイト)を一区切りとして処理される。処理は4バイト
ずつ進めるため、最後に2バイト余る。全角ひらがなや漢字1文字分のデータ量だ。

6万5518バイトで5451件分とすると、1件分は約12バイト
2バイトを漢字一文字とすると1件分は約漢字6文字のデータということか?
PASMOやSUICAの1件分のデータってそんなに少ないの?
35大 名 古 屋 ビ ル ヂ ン グ:2007/10/28(日) 17:17:56 ID:q3XcqfGR
よく分からんアサp記者が生半可な云ひ換へした結果、
素人にも玄人にも理解できない文章に成り下がつた
典型の如き記事だが。

6万5518バイト → 16ビット(65536-1)分の枠
5451件 → 65518を割り切れん(12余り98)
         1件12バイトか?

玄人衆の解説おながいしまつ。
36名刺は切らしておりまして:2007/10/28(日) 17:18:19 ID:nTeEEPON
>>23

>一級のサイバーテロリストよりも、ハッカーよりも
>メーカーのチョンボの方がはるかに恐ろしいことを

クラッカーが他のシステムを攻撃するときは、バッファオーバフローや
SQLインジェクション等の、実装上のチョンボを突くのが普通だよ。
37名刺は切らしておりまして:2007/10/28(日) 17:18:36 ID:fZcz85nG
一文字でトラブった伝説にまた新たな一ページが・・・

  初代 宇宙ロケットが一行のコードミスで発射後に大爆発
 二代目 火星探査機が単位の取り違えによる数字記入ミスで行方不明に
 三代目 一文字の書き間違いで東京260万人が立ち往生

まだまだ続くぜ!俺達の戦いはこれからだ!
38名刺は切らしておりまして:2007/10/28(日) 17:19:33 ID:sqNGZ0Sy
「○ックス」

たった一文字によって、昼間には放送できなくなる
39名刺は切らしておりまして:2007/10/28(日) 17:20:11 ID:0qezHPER
製造物責任に該当しないのか
ソフトウェアでもハードに乗っければ動産扱いだろ。
40名刺は切らしておりまして:2007/10/28(日) 17:20:36 ID:gD68eD7C
なんかいろんなことがわけ分からん
> ネガデータは5451件分(6万5518バイト)を一区切りとして
65518÷5451=12.019446
割れねえぞ。おい。
ネガデータ1件分のバイト数はいくつよ?
41名刺は切らしておりまして:2007/10/28(日) 17:21:06 ID:zItH94Ej
初音ミク問題も
案外こんなことだったりして。
42名刺は切らしておりまして:2007/10/28(日) 17:21:21 ID:aPmku/xT
これは重要なテーマだよ、「たかが一文字分」で「あの大騒動」だ
ソフトの危機が叫ばれて久しいけど、まじめに国家レベルで取り組まないとな
今回は「人命」にはつながらなかったが、このままでは・・・危ない
43名刺は切らしておりまして:2007/10/28(日) 17:22:01 ID:KjXziJN2
6万5518(バイト)/5451(件)が割り切れないのは、可変長データってことか?
なら、ゲートキーパーがいるし、データパックのサイズ(64Kのはず)があるんだから、データ件数に上限値の計算がおかしい。
仕様が、途中で変わって、既に開発してたコードの対応チェックができてない。ってみたいだな。
44名刺は切らしておりまして:2007/10/28(日) 17:23:36 ID:kJBH6EyT
>>41
こんな所にまで工作員が・・・・・・・・
45名刺は切らしておりまして:2007/10/28(日) 17:24:17 ID:SvQLdNmq
1文字違えば大違いの例

+ と ×
46名刺は切らしておりまして:2007/10/28(日) 17:26:26 ID:zItH94Ej
>>42
いや、間接的には人命にも繋がるでしょ。
47名刺は切らしておりまして:2007/10/28(日) 17:27:01 ID:HpVQ+9oj
一文字だが2バイトなのでかなり間違えてるぞ
48名刺は切らしておりまして:2007/10/28(日) 17:27:13 ID:p3680IEC
一文字違えば・・・
COBOLの「.」
49名刺は切らしておりまして:2007/10/28(日) 17:27:28 ID:zItH94Ej
>>38
放送は出来ると思うが・・・
50名刺は切らしておりまして:2007/10/28(日) 17:28:00 ID:p3680IEC
「○んぽ」
じゃね?
51名刺は切らしておりまして:2007/10/28(日) 17:28:58 ID:D6/l9XAG
この手の話題にしちゃエラい詳しい話出してきたな。
普通なら「ループの終了条件ミスりました」程度なのに。

こんなん入ってるならネガデータでも通過できちゃったとか、いろいろな
バグ入ってそうだな。
52名刺は切らしておりまして:2007/10/28(日) 17:29:26 ID:ahUznsF1
とはいえ、プログラム作成で、一番手を抜きやすいのがテストだったりするんだよな。
以前バイトでプログラムのテストをやった事があったのだが、酷いありさまだったし。

2〜3回データと押して出力しておしまい・・・なんじゃそりゃ?
運用中にプログラム修正で金取ろうとしているとしか思えん・・・。
53名刺は切らしておりまして:2007/10/28(日) 17:29:45 ID:aPmku/xT
>>46
 間接的にはつながっていたのかなあ?
 インフラってそういう意味だし
 安易に「便利なもの」には釣られるな、という教訓か
54名刺は切らしておりまして:2007/10/28(日) 17:29:57 ID:so8UxIkg
ふっかつ の じゅもん が ちがいます
55名刺は切らしておりまして:2007/10/28(日) 17:30:00 ID:uIOFhSH0
64K全部がデータなら、12*5461=65532くらいか?
64K全部が使えるわけではないだろうから、それより少なめ?

56名刺は切らしておりまして:2007/10/28(日) 17:30:17 ID:zItH94Ej
>>51
そんな表現じゃ朝日の読者には理解できないでしょ。
57名刺は切らしておりまして:2007/10/28(日) 17:31:58 ID:E69gZAS7
>>39
まあ受託開発契約の中に、免責項目が入ってるだろうね
てゆっか今時青天井の損害賠償に発展するような開発契約なんて、まともな請負会社なら結ばない
開発費に対する想定される最大被害がでかすぎるんだよね
コンピュータが便利なことの裏返しなんだけどさ
58名刺は切らしておりまして:2007/10/28(日) 17:32:09 ID:8D0WoFfr
>>37
> 初代 宇宙ロケットが一行のコードミスで発射後に大爆発
これってFORTRANのDO文の香具師だったっけか?

>二代目 火星探査機が単位の取り違えによる数字記入ミスで行方不明に
>三代目 一文字の書き間違いで東京260万人が立ち往生
59名刺は切らしておりまして:2007/10/28(日) 17:32:24 ID:uIOFhSH0
>>51
ループの回数が一回多いをやらかす奴は多いぞ。そういう奴に限って人のせいにするから困る。
60名刺は切らしておりまして:2007/10/28(日) 17:32:35 ID:LsCHSAy1
>>40
>>43
可変長じゃこの話自体おかしいから、共通部があるんじゃないかな

5451×12+106=65518
106バイト中にクレジット会社のコードとかが入って、繰り返し部はクレジットカードのコード12桁
・・・ってクレジットカードって16桁だよな
61名刺は切らしておりまして:2007/10/28(日) 17:32:38 ID:2zFomRva
一文字分のミスで大違いの例

= と ==

62名刺は切らしておりまして:2007/10/28(日) 17:33:08 ID:zc3/BqUk
1文字だろうが100000文字だろうが、不具合は不具合だろ・・・・
63名刺は切らしておりまして:2007/10/28(日) 17:33:41 ID:5xVI3hKK
結論
大規模システムはC++で書くな
64名刺は切らしておりまして:2007/10/28(日) 17:34:09 ID:gD68eD7C
1区分
15byte(本体データ)1byte(処理データ)
65名刺は切らしておりまして:2007/10/28(日) 17:34:14 ID:zItH94Ej
>>34
イオカードの裏の印字程度のデータでしょ。
それほど多くもないのでは。
66名刺は切らしておりまして:2007/10/28(日) 17:34:48 ID:8D0WoFfr
>>52
>とはいえ、プログラム作成で、一番手を抜きやすいのがテストだったりするんだよな。
>以前バイトでプログラムのテストをやった事があったのだが、酷いありさまだったし。

そりゃ請負交渉で納期短縮と委託料負けろって言われて、どこ削るかといわれれば
テストしか削るとこないもんな
67名刺は切らしておりまして:2007/10/28(日) 17:35:02 ID:8StRdCV1
>>13
現在主流の32ビット機の場合、レジスタは32ビット(4バイト)だから、一度に
処理できる4バイト単位で処理した方が早い。
1バイト処理しようが4バイト処理しようがCPUで消費する時間は殆ど変わら
ない(厳密には多分逆に1バイトの方が僅かに余分に掛かる)から、1バイト単
位で処理したら4バイト単位で処理するより4倍の時間が掛かる。

にしても、この程度のテスト漏れも発見できないとは、あんまりレビュー体制が
きちんとできていないのか、人手が足りないのか。
一番の原因は、MKテストすらまともにできていないプログラマの実力不足って
とこかなw
68名刺は切らしておりまして:2007/10/28(日) 17:35:25 ID:v8jCgDW5
x>おめこ
○>まんこ
69名刺は切らしておりまして:2007/10/28(日) 17:36:25 ID:uIOFhSH0
>>60
無効Suicaを弾くデーターっぽいから、Suicaのシリアルかな?
とりあえずSuicaの裏に書いてある番号を収めるには7バイトくらいか
70名刺は切らしておりまして:2007/10/28(日) 17:38:36 ID:fTBQ9qOm
俺が言いたかったことは、既に>3に書かれていた。

さすが朝日新聞。
朝日なら「数の問題ではない」って記事を書くべきなのに。
71名刺は切らしておりまして:2007/10/28(日) 17:39:44 ID:uQI/D5DW
とはいえ、他の新聞社では書くことすら不能な記事だな。
72名刺は切らしておりまして:2007/10/28(日) 17:42:22 ID:qllDDfwi
ただ社会も「システムはいつも完全に動く」を前提にしてるのはおかしいんだよな。
動かないときにどうするかを考えておかないと。
73名刺は切らしておりまして:2007/10/28(日) 17:42:40 ID:zItH94Ej
>>70
たった一文字がこれほどまでに大きな事故を引き起こす、
という問題提起なのでは?

まあ、朝日はたった二文字の英文字で自滅したわけだが。
74名刺は切らしておりまして:2007/10/28(日) 17:43:03 ID:dv8udFR7
問題は作業者の環境
せかされ、どなられ、いじめられればいい物なんか出来わしない。
もう精神論はかんべん、あとべき論も
75名刺は切らしておりまして:2007/10/28(日) 17:43:18 ID:LsCHSAy1
>>69
クレジットカードの頭6桁が企業コードみたいだから、それを共通部に入れれば
繰り返し部は10桁あれば足りるね
76名刺は切らしておりまして:2007/10/28(日) 17:44:11 ID:zItH94Ej
>>72
初音問題で、
検索エンジンに完全性を求めてる人がいたことに正直驚いたよ・・・
77大 名 古 屋 ビ ル ヂ ン グ:2007/10/28(日) 17:46:25 ID:q3XcqfGR
>>55の云ふやうに"5451"ではなくて"5461"だら
5461*12=65532で16bitに近くなる。
シカーシ余りは65535-65532=3で、「最後に2バイト余る」
訳ではないのでヤパーリ分からん。
78名刺は切らしておりまして:2007/10/28(日) 17:47:30 ID:X07PfUh1
>>73
激しくワロタ
79名刺は切らしておりまして:2007/10/28(日) 17:53:12 ID:RcFO3k9W
人民解放軍のサイバーテロ部隊が興味持ってるだろうな…。
80名刺は切らしておりまして:2007/10/28(日) 17:56:33 ID:qdHrKz7q
こんなコーディングミスいつでもある

むしろテストケース書いたやつが悪い
81名刺は切らしておりまして:2007/10/28(日) 17:58:20 ID:ZevInzS4
>>69
シリアル番号15桁で50bitで7byte
パスモ、ICOCAと相互利用出来るから、会社識別でアスキー2文字か。
あと3バイトで返事(有効無効残額などなど)。十分入るじゃん。

82名刺は切らしておりまして:2007/10/28(日) 17:59:25 ID:PMYD8U5E
スイカやパスモ使うから被害に遭うんだよw
あたま悪いやつ多いなw
83名刺は切らしておりまして:2007/10/28(日) 18:00:48 ID:aPmku/xT
>>76
 あれは「完全性」ではなくて、グルグル先生は既得権力(いろいろ名前のあがる
会社だ)から全くのフリーではなかった、てのが本質な
 フナムシ祭りの最中にあそこにいたが、そりゃー自給700円は引いたよ
84名刺は切らしておりまして:2007/10/28(日) 18:03:42 ID:NGBPttPq
実際にこのプログラムを作ったのは派遣の孫受けの曾孫受けの
そのまた下請けの派遣社員だろうな。
85名刺は切らしておりまして:2007/10/28(日) 18:05:36 ID:basISjvb
最近は地方の路面電車やバスなどにも
ICカードがあるわけだが

大丈夫なんだろうか
86名刺は切らしておりまして:2007/10/28(日) 18:09:16 ID:Rgt5zAsf
だいたいそんな間違え易いデータ構造にしてる方もどうかしてるわな。

8bitCPUの頃なら、少しでもデータ量を減らして、処理や通信の負荷を
減らす為に、釈迦力になってたけど。
87名刺は切らしておりまして:2007/10/28(日) 18:12:53 ID:5xVI3hKK
>>80
俺のいた現場はどこでもモジュール仕様書く奴とコード書く奴とテストケース書く奴と
テストする奴が同一だった。
そしてやってる人間の8割が孫請け以下で扱いはPG。
88名刺は切らしておりまして:2007/10/28(日) 18:15:11 ID:aPmku/xT
>>84
日本人は「形のある物」には金を払うが、「形のないもの=ソフト」は無料
と思い込んでる節があるからなあ〜
ソフト書いてる人は大変だと思うよ
89名刺は切らしておりまして:2007/10/28(日) 18:18:14 ID:eZX9dsWC
改札機の導入が、1日あたり幾らのコスト削減になってたのか。
改札機のハード、ソフトあわせた費用が、何日(年)で回収できる予定(できてた)のか。
それも考慮に入れなければならない。
90名刺は切らしておりまして:2007/10/28(日) 18:18:54 ID:basISjvb
ソフトじゃなく
それが提供するサービスに
金を払うのだが
91名刺は切らしておりまして:2007/10/28(日) 18:19:22 ID:/sTRqWQH
同情するなあ。せめて慌てて見直して直したら新しいバグを埋め込むとかしないように気を付けて。
92名刺は切らしておりまして:2007/10/28(日) 18:19:27 ID:SvQLdNmq
>>90 おまい、良いこと言う
93名刺は切らしておりまして:2007/10/28(日) 18:21:10 ID:2nfDW9Im
>>89
そそ、金の流れる所が増えただけのETCがいい例だよね。
94名刺は切らしておりまして:2007/10/28(日) 18:27:52 ID:8D0WoFfr
>>86
あの当時は「大切に使え血の1バイト〜RAMは限りある資源です〜」の世界だったな
95名刺は切らしておりまして:2007/10/28(日) 18:31:14 ID:GefbthqJ
1ビットのミスでも大トラブルだぞ
96名刺は切らしておりまして:2007/10/28(日) 18:32:31 ID:SvQLdNmq
1ビット違えば数字は2倍
97名刺は切らしておりまして:2007/10/28(日) 18:38:00 ID:OMg3Mt0/
あまりにもケアレスミスで
素人がプログラムしたんじゃないか?
98名刺は切らしておりまして:2007/10/28(日) 18:38:48 ID:aPmku/xT
>>94
スーパーマリオの開発だな
99名刺は切らしておりまして:2007/10/28(日) 18:41:05 ID:2nfDW9Im
>>98
ドラクエ3だと思うな。
100名刺は切らしておりまして:2007/10/28(日) 18:42:29 ID:lQl3zV01
記事が意味不明だと思うのは俺の日本語能力のせいか?

データは2バイト区切りで鯖からやってくる
それを処理する改札機は4バイトずつ処理
最大で65518バイトやってくる
今まではそれ以下だったが、それを超えて、かつ4で割り切れない容量だったから
改札機臨終

エロい人、これでいいの?
全角1文字分は関係ないやんけ。文字の処理で詰まったのかとおもた。
101名刺は切らしておりまして:2007/10/28(日) 18:51:08 ID:xf8lsFwy
>>100
俺も本文を読むまで、特定の1文字を処理ミスしたのかと思っていた
どうやら、記者がプログラムを全く知らないみたいだな
102名刺は切らしておりまして:2007/10/28(日) 18:51:59 ID:44PtbiKw
後、システム開発が大規模になって、開発費が高騰、真っ赤っかになる会社も増えて来た。
んで、その真っ赤っかな事業部売却とか。
103名刺は切らしておりまして:2007/10/28(日) 18:52:06 ID:2nfDW9Im
1バイトのべたうち転送ならもしかしたら起こらなかった?
と思い始めた、テストはしていた、しかし、テストの相手が4バイト
のマシンでおこなった・・・・・・
ワードバウンダリーのトラップじゃん!これってw。
104名刺は切らしておりまして:2007/10/28(日) 19:25:19 ID:9+wqc8m9
ネガデータは5451件分(6万5518バイト)を一区切り
なので、ネガデータ1件は65518/5451=12バイト。
割り切れない分は何かの制御用。

「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」
というのは、12*85=1020なので多分1024バイトのバッファに入れ
10件とか16件とか単位でループして80件960バイトまでは良いが、
バッファの最後とデータの最後が重なるとしくじるんでしょう。
105名刺は切らしておりまして:2007/10/28(日) 19:29:13 ID:1zK5EpAd
特定の1文字の処理ミスじゃなくて、
5451件分しか正常に処理できなかったっていうことか。
106名刺は切らしておりまして:2007/10/28(日) 19:50:15 ID:2zFomRva
>>84
だいたい、日信自体がソフトウェア部門全体を子会社待遇にしてる。
http://www.nisshin-soft.co.jp/
107名刺は切らしておりまして:2007/10/28(日) 19:54:23 ID:SA75IPpD
>>99
FC版EDは、演出の素晴らしさと容量の節約っぷりに泣けたっけな。
108名刺は切らしておりまして:2007/10/28(日) 20:24:04 ID:0yFJCzVa
どうせ、プログラマのミスじゃなくて仕様をきったヤツのミスだろ。
109名刺は切らしておりまして:2007/10/28(日) 20:35:02 ID:MwdX5f1E
その昔、低レベル言語でごりごり書いていた頃の伝説プログラマは、ビットシフト
するだけでぜんぜん別の処理になるという、箱根細工のような超絶技巧を駆使した
らしい。
110名刺は切らしておりまして:2007/10/28(日) 21:10:35 ID:ZmBstsEi
今のCPUではそもそも出来ない自己書き換えとか駆使したっけ。

でだ、この欠損データで処理しそびれた分は、お客に不都合とか起きてないのかな?
111名刺は切らしておりまして:2007/10/28(日) 21:12:28 ID:p33kHw4O
「1文字だけでこんな大騒ぎになる仕組みがおかしい。」とか偉い人が切れてそうな予感。
112名刺は切らしておりまして:2007/10/28(日) 21:16:24 ID:2zFomRva
>>110
書き換えたはずなのに、プリフェッチに先を越されていたりな。
113名刺は切らしておりまして:2007/10/28(日) 21:17:13 ID:Bz7XN/v1
また日本信号ですか
114名刺は切らしておりまして:2007/10/28(日) 21:20:41 ID:dEiusQAP
一瞬、文字列処理が原因かと思った
115KUM(゚_゚)N ◆o4DQN..yEA :2007/10/28(日) 21:26:54 ID:YumXpwlB
(゚_゚)今朝のがっちりマンデー
http://www.tbs.co.jp/gacchiri/oa20071028-mo1.html
116名刺は切らしておりまして:2007/10/28(日) 21:28:42 ID:TdprTAPG
>「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」

難しい間違い方だな。どういうプログラムだこれ?
117名刺は切らしておりまして:2007/10/28(日) 21:29:27 ID:9+wqc8m9
>>110
それはあり得るでしょうね。記事では「期限切れなど」ってあるけど
盗難されたカードの利用停止でも使われていると思うので、
ネガデータを取りこぼしてたら不正使用されてしまっているかも。
118名刺は切らしておりまして:2007/10/28(日) 21:29:44 ID:JCw71RSG
出版業界なんて、誤字は当たり前だけどな
119名刺は切らしておりまして:2007/10/28(日) 21:34:41 ID:2IRPD+Gt
ここでインド人を右に
120名刺は切らしておりまして:2007/10/28(日) 21:35:26 ID:LsCHSAy1
>>117
更新できなかった分は次の更新で当然リカバリされてると思う
が、そもそもシステム障害が起こったあの日、定期券がなかろうとなんだろうと
通り抜け出来たから、不正利用としては引き落とされないと思う。
(動いていた自動改札は、朝に既に更新ができたところばかりだから)
121名刺は切らしておりまして:2007/10/28(日) 21:46:43 ID:FMBA5krh
テストに問題ありだな
単体テスト、全体テストともに引っかかりそうなものなのに
122名刺は切らしておりまして:2007/10/28(日) 21:48:25 ID:mwTLwHFA
そもそも2バイト文字で管理してる時点でアウトじゃね?
クレカみたいにローマ字に変換して1バイト文字で管理しなきゃね。

プログラムで日本語みたいな2バイト文字が混在したデータの処理
は結構面倒なんだよな。

123名刺は切らしておりまして:2007/10/28(日) 21:50:19 ID:nzvYzH6Z BE:1230552959-2BP(100)
>>89
この前のシスアドの午後問題で似たような問題があったなw
124名刺は切らしておりまして:2007/10/28(日) 21:51:02 ID:u7a5LiTv
ごちゃごちゃと読む気のしない記事だが
要はバグに気をつけろってことだな
125名刺は切らしておりまして:2007/10/28(日) 21:51:41 ID:red/GpSn
ネガデータをオートチャージする際の与信に使っているのか。
オートチャージができないようになるだけなら被害は最小限だったのに。
まあそんな設計ができるくらいなら最初からこんな障害はおこさないだろうが。
126名刺は切らしておりまして:2007/10/28(日) 22:09:33 ID:JdsQxCuQ
短納期でテストも満足にできないのにどうしろと
障害おきても現場は知るかって感じだろうな
管理職が責任取ればいい
127名刺は切らしておりまして:2007/10/28(日) 22:09:53 ID:9+wqc8m9
>>120
そりゃそうですね。
ネガデータは日々の差分で、トラブルの日の分がそのまま抜けて
しまっただろうと思ったんだけど、相互利用後に件数が増えていって
問題の件数に達したということだから、全件洗い換えですね。
128名刺は切らしておりまして:2007/10/28(日) 22:13:43 ID:qsQJ3Kge
ネ申データに見えたw
129名刺は切らしておりまして:2007/10/28(日) 22:15:33 ID:zItH94Ej
>>128
神様もデジタル化の時代か・・・
130名刺は切らしておりまして:2007/10/28(日) 22:17:26 ID:f06w4aX7
記事見ると、コンピュータはこんなわずかなデータの処理ミスで
大きな影響が出るんだとでも言いたげなんだが、よく読むと
処理自体がダメダメだったってことじゃん。
131名刺は切らしておりまして:2007/10/28(日) 22:20:49 ID:8FDiKD4/
コストパフォーマンスの問題だね。
1億円かけて3%の確率でトラブルになるのと、
20億円かけて0.1%の確率でトラブルになるのだと、
前者が選択されるってこと。(数字は適当)
トラブルが起こらなかったら儲けモノだしね。
132名刺は切らしておりまして:2007/10/28(日) 22:22:31 ID:LsCHSAy1
>>127
全件洗い替えはしてないと思うけどな
単純に更新できてから自動改札を起動すれば(つかそうするしかないが)
あっさり正常な状態になる

不完全な更新で自動改札が起動できることはないから
不正使用も発生しない、と思われる
133名刺は切らしておりまして:2007/10/28(日) 22:35:35 ID:gbniEueB
>>122
2バイト文字の処理じゃなくて、データが2バイト分欠落したことによるダウンじゃないのか

それを2バイト=1文字と関連付けて、日本語1文字分のミスでってことだろ
134名刺は切らしておりまして:2007/10/28(日) 22:38:22 ID:BWEGzM6U
>>122
2バイト文字で管理しているわけではない。おそらく4バイト単位のバイナリ。
ユニシス側から、最後に2バイト余っちゃってそれが原因、
2バイトってのは日本語1文字分だ、とかなんとか説明があったんじゃないの?
朝日記者にはその日本語1文字ってのが重要に聞こえたのだろう。
135名刺は切らしておりまして:2007/10/28(日) 22:45:29 ID:VeWXZhN/
     ∧_∧     
    (  ゚,_ゝ゚)バカジャネーノ オマエラが2バイト、2バイト
   //\ ̄ ̄且\       言っている間ミカン6個食べたよ
  // ※.\___\
 \\※ ※ ※ ※ ※ヽ
   \`ー──────ヽ
    ────────
136名刺は切らしておりまして:2007/10/28(日) 22:45:49 ID:qZ0uxe7F
バグなんていつもそんな門だ

原因が特定できたことは救い
137名刺は切らしておりまして:2007/10/28(日) 22:46:44 ID:z/roDFUK
コンマ間違えて宇宙船大爆発よりマシだろう
138名刺は切らしておりまして:2007/10/28(日) 22:47:18 ID:LsCHSAy1
>>136
だな

「原因不明で発生待ち」
こんなバグはいっぱいある
139名刺は切らしておりまして:2007/10/28(日) 22:54:19 ID:1VTQfLBu
>>61
「A==Bのとき実行せよ」のはずが、
「BをAに代入せよ。そしたら無条件に実行せよ。」になるわけだな。
140名刺は切らしておりまして:2007/10/28(日) 23:01:02 ID:FMBA5krh
>>134
>朝日記者にはその日本語1文字ってのが重要に聞こえたのだろう。

これは見出しとしておもしろいとか思ったんだろうな。
1バイトどころか1ビットの0/1フラグを間違えてシステム止まることあるのに
141名刺は切らしておりまして:2007/10/28(日) 23:02:03 ID:zcSfsmgJ
>>131
そのトラブルでどれくらいの損害が出るかしだいで後者を選ぶ
142名刺は切らしておりまして:2007/10/28(日) 23:36:35 ID:A6zaKAJD
データ仕様がgdgdに変更され続けたら、こんなことも起きるかもね。
143名刺は切らしておりまして:2007/10/28(日) 23:36:44 ID:fmp3GBwf
>>139
おしい
144名刺は切らしておりまして:2007/10/28(日) 23:45:05 ID:gbniEueB
AにBを代入し、その結果が(Bの値が)0以外なら実行せよ
145名刺は切らしておりまして:2007/10/28(日) 23:57:34 ID:YHajPC1U
よくわかんね。
だれかソースコード張ってくれ。
一区切りデータを複数になると処理関数を変えてるのか?
ライブラリにするなり継承するなりで何ともないと思うが。
146名刺は切らしておりまして:2007/10/29(月) 00:07:37 ID:gbniEueB
ループ判定のミスじゃないの?

4バイト単位で処理って言っているからそれがどういった処理なのか不明だけど

前処理:
4バイト単位で読み込み
残り2バイトになったとき、残りバイト数の確認判定でミス
2バイト分のデータを処理せずループ終了

本処理:
前処理からのデータを取得
処理中に2バイト分データが足りないため(読み込み段階でかも)不正処理落ち

システムダウン/機器の起動に失敗

とか、、、
147名刺は切らしておりまして:2007/10/29(月) 00:16:43 ID:7lEQMSwR
>>146
単純にそれかもな。
一区切りまで処理して、後ろのデータ何もせずそのまま終了。
一区切りなら影響ないけど後ろに有効データがあるときは
2バイト分ずれるっていうの。んーまあ恥ずかしい範囲かな。
せめてフェールセーフでなんとかしろよってとこだが。
148名刺は切らしておりまして:2007/10/29(月) 01:19:03 ID:dX3Xx96s
日本信号潰れろ
149名刺は切らしておりまして:2007/10/29(月) 01:36:16 ID:13pU6pZ0
書き込みテスト
150名刺は切らしておりまして:2007/10/29(月) 01:52:00 ID:dD/BeV70
文明社会って怖いね
151名刺は切らしておりまして:2007/10/29(月) 01:52:06 ID:dO9h5DYJ
1は意味不明。
ソース出してくれれば意味解るのだが。
152名刺は切らしておりまして:2007/10/29(月) 03:18:14 ID:1FQc5lSw
お前らマ板から来ただろw
153名刺は切らしておりまして:2007/10/29(月) 03:38:32 ID:L2jOEr3O
>>27
ああ、それで人事部を希望した僕は退職させられたのか。
154名刺は切らしておりまして:2007/10/29(月) 04:09:55 ID:ISMTl4Gu
>>151
そうだな
下手な記事書くぐらいなら、ソースか仕様書でも見せた方が説得力がある
155名刺は切らしておりまして:2007/10/29(月) 09:09:37 ID:K3eucmuC
新聞紙面にソースコードが並んでもそれはそれでどうなのか・・・
156名刺は切らしておりまして:2007/10/29(月) 09:55:10 ID:frpPQQbM
>>155
そこかしこからツッコミ入りまくって、ものすごく品質の高いデバッグができるかも。
157名刺は切らしておりまして:2007/10/29(月) 10:29:31 ID:Bll9BGFT
1文字だけ間違ってるから現場でトラブルになる。
1文字しか合ってないとしたら現場ではトラブルにはならないと思う。
158名刺は切らしておりまして:2007/10/29(月) 11:09:43 ID:EZsZ9/om
件数で割っても端数が出るし
中途半端なビット数で処理して
バグを埋め込んだ感じ?
159名刺は切らしておりまして:2007/10/29(月) 19:09:11 ID:0mfZFBm0
ソースコードなんて公表は無理でしょ、さすがに、、、
すっごい見てみたいけど、、、

バイト数と件数が合わないのは、中間処理のヘッダみたいなものでも付加してるんじゃないの?

理解できないのは最初の5451件分は正常処理されるのに、以降の85件増すごとに5件の割合でってところ

「5451件分を一区切りとして処理している」なら、5452件目の処理って発生しないんじゃないの?

5451件をひとつのブロックとして処理して、5452件目は次の処理単位にまわされるんじゃないのかなあ???
160名刺は切らしておりまして:2007/10/29(月) 20:09:02 ID:sB7MhEad
>>159
64KB超えると1kB毎に64バイトの読み落としと俺は読んだ。

8ビットCPU用でキャリーオーバー黙殺するようなループの
プログラムが昔から実績あって、16ビットCPUに流用したら
隣のバイトにちょっかい出しちゃった、とかはどうだろう?
アドレス指定は全部マクロでマップしちゃってるような奴で、
運悪く隣のバイトはループ変数だった、とか。

8ビットCPUならもっと多いデータでも正常に動く実績があるわけで…
テスト端折りたくならね?
161名刺は切らしておりまして:2007/10/29(月) 20:41:29 ID:ubJYSe/j
朝日さんに、UTF-8の場合は漢字1文字が何バイトか教えてあげたい。
162名刺は切らしておりまして:2007/10/29(月) 20:44:10 ID:2PIQpvzn
バグなんて、こんなもんだろ。普通。
一々、記事にするか?
163名刺は切らしておりまして:2007/10/29(月) 20:50:27 ID:4uMQ/a/d
「コンピュータは人間の命令通りに動くが、人間の思い通りに動くとは限らない」
って誰が言ったんだっけ?
164名刺は切らしておりまして:2007/10/29(月) 20:56:55 ID:GzMKpTgN

やっぱり某社だったらはモジの気配よまないといけないのだろうな
165名刺は切らしておりまして:2007/10/29(月) 20:57:25 ID:E9BtUitE
バイトに責任を押し付けて社員はお咎め無しか
166名刺は切らしておりまして:2007/10/29(月) 21:39:40 ID:yHamyvAV
>>165
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧   
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ   
 u-u (l    ) (   ノu-u     
     `u-u'. `u-u'
167名刺は切らしておりまして:2007/10/29(月) 22:06:53 ID:0mfZFBm0
>>160
納得できたような出来てないような

理解できたような出来てないような

流れがいまいちつかめない・・・

1バイト変数が並んだ状態でマップしているが、実際は2バイト変数なのでってことだよね?

64KB超えたときにだけ、それが起きるのは何でだろう・・・
168名刺は切らしておりまして:2007/10/29(月) 23:12:34 ID:l9Y/jebR
>>156
いいねそれ、ソース全リスト載せて「皆様からのご指摘をお待ちしております」
169名刺は切らしておりまして:2007/10/29(月) 23:30:17 ID:mG0lJKXe
やたらに半端な数が出てくるのは、きっと途中で仕様が変わったからに違いない。
その仕様の違いにプログラマーがついていけなかったのが原因ではないか?
170名刺は切らしておりまして:2007/10/29(月) 23:36:33 ID:TVL6xCvk
>>88
そこまで言わんでも、やっとるわ。


あんまり、一般に話しても、民生機器ほど、
興味持たれないし、特許や機密性があるから、話が出ないだけ。


SIL4とか有るぞ。
171名刺は切らしておりまして:2007/10/30(火) 00:00:42 ID:S4FNFDrl
>>169
面倒な処理は前段階のシステムがやるのが正解な訳けでね
つまり最初に設計したやつが大バカ
172名刺は切らしておりまして:2007/10/30(火) 00:12:00 ID:jfaENSo4
>>171 おまいが、SEならこんな問題起きなかったというのかい?
173名刺は切らしておりまして:2007/10/30(火) 01:02:07 ID:HqCBI0+U
こういうシステムは、ハード屋とソフト屋が同じ釜の飯を食わないと。
174名刺は切らしておりまして:2007/10/30(火) 01:06:28 ID:q4bns6a6
今回は完全にソフト側のミスでしょ
175名刺は切らしておりまして:2007/10/30(火) 01:51:51 ID:8xcz9GSh
>>172
保障する、俺なら!
176名刺は切らしておりまして:2007/10/30(火) 13:35:31 ID:IZb/t7H2
1の記事を見ると「些細なプログラムミスが大きな被害を招いた」みたいに読めるけど、
よく読んでみるとあまり些細なミスじゃないんじゃないか?
177名刺は切らしておりまして:2007/10/30(火) 14:15:33 ID:FejhHAuk
で、データの大きさがわからないわけだが。
178名刺は切らしておりまして:2007/10/30(火) 14:24:13 ID:tCwkXKH0
とりあえずキリのいい64kで受け取っておいて、余分なデータは無視しておけば良かったんじゃないかな?
179名刺は切らしておりまして:2007/10/30(火) 15:19:55 ID:L3cSiI1v
>>168
ていうか、それがオープンソースの考え方だけどね。

「ソフトウェアのソースコードは無料である。その代わり、それを使ったサービスで金を取る」がビジネスモデルらしい。
デバッグ類はマニアのボランティア。
180名刺は切らしておりまして:2007/10/30(火) 15:25:57 ID:YL3RUuDh
記者の「たかが一文字分2byte」てのがコンピューターの処理を人間の脳同様の柔軟性で考えとるからな
181名刺は切らしておりまして:2007/10/30(火) 21:54:42 ID:Pt6Eu5Js
>>180
たかが1文字の間違いを柔軟に処理できないコンピュータ。
このような無味乾燥な人間味のない環境に囲まれて育つ子供達はかわいそう。

・・・とかな(w
182名刺は切らしておりまして:2007/10/30(火) 22:17:11 ID:B40JH8yT
「だがしかし待ってほしい」が口癖の連中がよく使う手段だな。(w
183名刺は切らしておりまして:2007/10/30(火) 23:03:56 ID:+Rcdzcc7
2バイト余らせなきゃいいじゃない
184名刺は切らしておりまして
内部設計の段階で間違っていたんだろうな