社保庁のシステムと云い、日本信号の自動改札機と云い、バグ内容についてわけのわからぬ報道が続いている。
まず社保庁だけど、
年金記録の持ち主を特定する手がかりの一つである生年月日のうち、日付がまるめられてコンピューターに記録された期間があり、社会保険庁が全国的に調査を始めたことが、25日午前の参院厚生労働委員会で明らかになった。
(中略)
問題の日付は、1?9日が1日、10?19日が10日、20?29日が20日、30、31日は30日として記録されている。
(中略)
原因について、蓮舫議員が「問題の時期にコンピューターを切り替えており、(正しく入力されたデータをまるめて変換する)プログラムミスがあったのではないか」と指摘したのに対し、石井部長は「その可能性を含めて調査している」と答えた。
asahi.com:生年月日まるめて記録、数十万人影響も 宙に浮いた年金
この記事(元の質疑応答でも?)では、どの時点で「丸められた」のかに言及していないので、なんとも云いがたいのだが、それならなぜ「プログラムミス」などと言う言葉が安易に語られるのだろう?
しかし、それよりもまず「生年月日をまるめて記録」と云う表現に違和感がある。
まるめると云うと、ふつうは金額等の数値に使うもので、日付や時間には使わないと思うのだが・・・それはともかく、ざっと考えただけでも可能性として
1.最初の入力時点からそのように入力された(マニュアルがあるはず)。
2.入力時点で、ソフトが下一桁を無視した。
3.システム移行時の変換ミス(プログラムでやったとは限らない)。
4.変換後のデータを新しいシステムが読み込む時点で切り捨てた。
5.そもそも日付は入力されていなかった(変換時か別システムが補った)。
6.。。。
ともかく、「63?66年度の4年間に就職や転職をしたり国民年金に加入したりした人のほとんどの生年月日が、そうした形で記録されていた」と言うのだが、「ほとんど」で全部ではない?のかとか、4年間だけなぜ?と謎だらけ。
次は先日の自動改札機が止まった問題の原因について、日本信号は具体的なバグの内容を発表したというのだが、これが発生当時に報道された内容に輪をかけた意味不明な内容。ほんとうにバグ内容を把握しているのだろうか?
障害の引き金になったのが、2バイト(2進法で16けた)のデータだった。例えば改札機の場合、ネガデータは5451件分(6万5518バイト)を一区切りとして処理される。処理は4バイトずつ進めるため、最後に2バイト余る。全角ひらがなや漢字1文字分のデータ量だ。
半端な2バイトも、件数がこの一区切りまでなら正常に処理されていた。だが、5452件以上になると「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」(同社)というプログラムの欠陥があった。
asahi.com:1文字分のミスで大トラブルに 首都圏改札機トラブル
この内容・・・そもそも数字のつじつまが合わない。
5,451件分のデータでなぜ65,518バイトになるのか?
一件が12バイトの固定長だとすれば、5,451件で65,412バイトである。固定長でないとすれば、そもそも5,451件で65,518バイトなどと決め打ち出来ないわけで・・・
これはやはり、一部の情報にあるように、件数ではなく、データ内容に関係なくパケットでの区切りと考えた方が明快だ。2進数として区切りのいい65,536バイトには18バイト足りないけれど、ヘッダーとして18バイトを使うとすれば、これも明快につじつまが合う。
さらに「処理は4バイトずつ進めるため、最後に2バイト余る」に至っては、もうこれ自体がバグを暗示しているとしか云い様がない。
そもそもバイトデータと思われる元データ(パケット処理の話ならさらに・・・)を、4バイト区切り(int32かlongで扱ってるってことだろ?)で処理すること自体がバグの温床だ。正気のプログラムとは思えない。
あるいはデータとしては4バイト数値(int32またはlongが三つで12バイト・・・)だとしても、「最後に2バイト余る」わけで、パケットに分解された生データを扱っていると言う自覚なしのプログラムであることは明確だろう。
それにしても、2バイトの差を、全角一文字に喩えた記者は、よほど自分の(中途半端な)知識をひけらかしかったに違いない。が、あまりに中途半端すぎて、専門家の失笑を買うことしか出来なかったわけだが(笑
それはともかく、さらに謎なのは「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」と言うクダリだ。
この数字のつじつま合わせ・・・85件や5件の意味を誰か説明してくださ??い(-_-;)
なお、もし12バイト固定長だと仮定した場合は、85件で1020バイト。バッファーを1024バイト(2の10乗・・・)か1025バイト(1024+1)取っていれば、4バイト(か5バイト)が漏れる可能性まではわかった。が・・・まさかそれを5件と?
だとすると、当初の「特定のバイト数の時」と言うのが嘘になる。
それとも単に5,451件以降のネガデータは一見正常に処理されていたように見えて、実は単に「無視されてしまってた」だけの話だったのだろうか?
謎が謎を呼びすぎる報道の連続だ、今回の事件は。
...
投稿者 shoda T. :
20:21
|
コメント (3)
|
トラックバック