パスワードを忘れた? アカウント作成
13840849 story
テクノロジー

4月6日にGPS信号中の週番号でロールオーバーが発生、不具合が発生する機器も 46

ストーリー by hylom
ご確認を 部門より
あるAnonymous Coward曰く、

GPSではGPS衛星信号に含まれる週番号を使って日付を算出するが、この週番号は10ビット(最大値は1023)で管理されており、1024週目には0にリセットされる運用となっている。このリセットは「ロールオーバー」と呼ばれており、今年4月6日(米国時間)にこのロールオーバーが発生するそうだ。

これにより、ロールオーバーに対応していないGPS機器で問題が発生する可能性があるとのこと(The Register国土地理院Slashdot)。

ロールオーバー関連の挙動についてはフルノのドキュメントが詳しい。なお、前回のロールオーバーは1999年に発生していた(WIRED)。

  • DGPS運用停止の理由が、「(様々な要因から以前よりも測位精度が向上しているため)DGPSの必要性が小さくなってきていること」に加えて、「ロールオーバーにより信頼性が担保できなくなること」と、理由としてストレートに挙げられているのにちょっとびっくり。

    route127さんの日記 フカヒレ密漁とDGPS廃止 [srad.jp]
    海保 ディファレンシャルGPSの廃止について [mlit.go.jp] (PDF)

    ここに返信
  • by Anonymous Coward on 2019年02月18日 14時14分 (#3566662)

    まれにしかロールオーバーしないので、まれなロールオーバーの設計に不備が入りやすい
    もっと頻繁にロールオーバーする設計にすれば、すぐに欠点が見つかり修正される
    数か月に一度ロールオーバーするように設計するとか、そもそも週データを持たずに毎週ロールオーバーする設計にするとかで

    ここに返信
    • by nemui4 (20313) on 2019年02月18日 14時57分 (#3566689) 日記

      >まれにしかロールオーバーしないので、まれなロールオーバーの設計に不備が入りやすい

      GPS 衛星が放送している時刻情報「週番号」は、そのサイズが 10BIT、すなわち 0 から 1023 の範囲で出力されて
      おり、1024 週の次は 0 に戻ることが GPS 衛星の仕様として一般に知られています。

      1024週目 ~ 約19年半で必ずロールオーバーする仕様を「まれ」なことにしちゃいますか。
      まぁ、数年で壊れて使われなくなる前提の製品設計だとそれもありかもしれませんね。
      たまたま壊れずに使われてたら悲劇。

      • by Anonymous Coward

        バグとかじゃなくて、仕様としてロールオーバー1回分にしか対応していない機器はあるよ。
        というか、組み込みでファームアップデート無しなら、むしろそっちが普通なくらい。
        20世紀の頃に年を2桁で現して 80-99 なら 1900年代、00-79 なら2000年代とかやってたのと同じ感覚で週番号から年を推測する仕様。

        前回のロールオーバー後の 15〜19年前くらいに設計された機器なら仕様としてロールオーバーそのものに対応していない可能性はおおいにある。

        • そもそも、「GPSからの情報だけを元にした」場合、一周分を超えた週番号のロールオーバー判定は原理的には対応できないよね。
          簡単に言えば「時分秒だけ表示される時計を見て、日付も特定せよ」みたいな問題なわけで、別途
          「不揮発メモリを使ってロールオーバー回数を記録する」とか「年月日情報を別ルートから仕入れる」といった補完方法を用意しないと無理。

          …と、ここまで書いたところで、ちょっとググったら、GPSからの情報だけでも
          ・閏秒情報を見る(GPS時刻は閏秒がなくUTCとはずれているので、別途UTCとのズレも送信されている)
          ・衛星番号を見る(衛星の寿命は20年もないから、衛星番号からどのサイクルか判定できる)
          などといったアドホックなロールオーバー判定方法があるにはあるみたいです。
          でも、過去のデータからのサイクル判定はともかく、20年後の未来のサイクル判定に使うにはちょっと不確実過ぎて当てにするのは無謀そう。

          • by Anonymous Coward

            まぁロールオーバー回数ならめったに変化せずどこまで高寿命でも大した状態数は要らないので、
            古の物理的に焼き切るヒューズビットみたいなのでも問題なく記録できそう。

            ヒューズビットまでいくと不揮発メモリ呼びして良いのだろうか……

            • by Anonymous Coward

              ロールオーバーを判定するためには「前回よりも週数が減っている」ことの検出が必要なので、「最後に測位した時の週数」も不揮発記憶する必要があるかと。

              ずっと電源オフで20年ぶりに電源オンとかされたら、もうどうしようもない。

        • by Anonymous Coward

          ドライブレコーダーなんて録画をロールオーバーしない製品の方が多いしな
          断片化対応はけっこう面倒

      • by Anonymous Coward

        2000年問題やその後の二桁西暦保持実装を思い返せば何ら不思議ではない話だと思うのだが。
        その教訓を活かしてないって意味なら確かにお粗末だが、
        そういう実装がある事自体は当然というか、むしろ無いほうが驚くレベル。

        • by Anonymous Coward

          閏年を実装していない(デジタル)時計もあるし、日本でも元号制定=「大化」前は、干支紀年法が使われていた。

          # 前にも「GPSロールオーバー」騒動があった記憶があるが、あれからもう20年たったのか。

    • by Anonymous Coward

      内部時計を持っていない、かつGPS以外と通信する機能を持たない機器だと「今が何年何月何日」を特定するのはGPSの週番号以下だけが頼り。
      雑な実装だとは思うけど、低価格でそれほど長期間使用することを想定していない機器なら、「週番号がロールオーバーしたらダメ」とか「製造日から1024週経過したらダメ」というのはありうる。

    • by Anonymous Coward

      Windowsの49.7日問題とか思い出しますね。
      なんかぐぐるとWindows 10で特定のディスプレイドライバか何かに同様の問題があるみたいな書き込みも見かけますが……

      • by Anonymous Coward

        未だに49.7日に起因する問題はたまにでてますよ。
        数年前にあったのは、WindowsServer2012R2で、モニタをつけっぱなしに
        設定していた場合でも、49.7日でモニタの電源が切れてしまう問題とか。

        Windows Updateですでに修正済みですが、インターネットにつながっていない環境で、
        しかも24時間の監視システムなので、モニタが勝手に切れるのは困るんです

    • by Anonymous Coward

      まともなエンジニアなら10年に一回だろうが、一日一回だろうが、同じ話ですよ。

      テストケースを一つ追加して、ロールオーバー時にバグが出ないか試す
      という試験項目を追加するだけです。

      ロールオーバーの間隔は本質的な問題ではありません。
      ロールオーバーを考慮するかしないか、そのテストを
      ちゃんと行うかどうかという話です。

      毎週のロールオーバーで救えるのは
      テストを考えてない行き当たりバッタリのエンジニアとか
      趣味でプログラムを書いているアマチュアだけです。

      • by hjmhjm (39921) on 2019年02月19日 19時38分 (#3567774)

        理屈はあくまでそうやとしても、リスクは別やな。
        発生する頻度が少ないと、発生したときにちゃんと対処できてるのか、という不安自体がリスクやろ。
        そして、実際に対処できてないことも少なくないから、現実にトラブルになっとる。

        他コメで言い合いみたいになっとるけど、やればできるはずの理想かやってもできないかもしれん現実か、見てるとこがまったく違うんやから、結論なんかないで。w

        そういえばソースは忘れたけど、まれなサーバークラッシュに対処する単発リストアがそのときに限って(でもないやろけどw)失敗してまうので、いっそ逆に、リストアフローを恒常的にまわしたる、みたいなとこがあったな。

        • by Anonymous Coward

          なんで文章に方言?

          • by Anonymous Coward

            なんで文章に方言?

            清く正しく美しい日本語を守るために
            訛っている「なんで」という語ではなく「なぜ」という語を用いるべきです。

            また、体言止めは語の省略であり読者に対して語の補完を強いるものです。
            それは読者毎に補完する語が異なり複数の解釈を許すということでもあります。
            特に疑問文においては文意が不明瞭になりやすく
            時に方言よりも読解が困難になることさえあります。
            作文が苦手なうちはついつい多用してしまいがちですが
            可能な限り使用を避けるのがよいでしょう。

      • by Anonymous Coward

        > テストケースを一つ追加して、ロールオーバー時にバグが出ないか試す
        > という試験項目を追加するだけです。
         
        理論的に美しい職場環境にいらっしゃるようで羨ましい。

        • by Anonymous Coward

          自動券売機障害のとこにも湧いてるけど、とても現場を経験したことなさそうな理想論振りかざして、ダメとかクソとか言うやつなんなんだろうね。
          どこにお勤めか聞かせてほしいわ。

          • by Anonymous Coward

            これくらいで理論的に美しいとか
            プログラマ向いてないのでは?転職をおすすめします

            • by Anonymous Coward

              「ロールオーバー時に」「バグが出ないか試す」
              前半の条件は有無だけの簡素な(模擬信号計算の手間は除く)条件だが、
              後半が前半と競合しない全ての検査項目を含みうるってーのが分からん人も向いてない気がするな。

              # 美しいというか不明瞭。その定義で全部自動テストが通るんならすごく美しいと評せるかもだが。

        • by Anonymous Coward
          試験項目をたった一つ追加するだけだから費用は変わらないよね。
          というパターンかな。

          ついでに「すぐできますよね」と念を押しておきながら決裁を止めていたりする。
      • by Anonymous Coward

        過去日を扱わないシステムで、うるう年を完全に実装するかと言われると... AND 3 で決定しちゃいそう。
        次の例外って80年後...

      • by Anonymous Coward

        せやな [wikipedia.org]

        #「すべてがFになる」って、もう20年前の作品なんだ。

        • by Anonymous Coward

          #「すべてがFになる」って、もう20年前の作品なんだ。

          いわゆる理系に分類されるキャラクター達がリアルだなぁと思った最初の小生だなぁ。なつかしい。

      • by Anonymous Coward

        ロールオーバーの間隔は本質的な問題だよ。
        これ、問題が起きるのは設計に問題があるからではなくて、仕様上機器が対応していないからだから。
        20年間隔のロールオーバーだから、製品仕様として成り立つのであって、1週間ごとに更新なら仕様上対応しないなんてことはない。

        仕様でどこまでカバーするかは、プロなら必ず確認する事項だよね?
        コスト無限の仕事でも無い限り、何でもかんでも仕様に盛り込むことは出来ない。
        コストを考慮して適切な仕様にすることが、プロの仕事。

      • by Anonymous Coward

        仕様を100%満たす実装にするのか
        使用する分だけ満たせばいいのか
        使用する箇所でも問題になっても個別対応で済むものは切り捨てていいのか

        それを決めるのはエンジニアとは限らないし、コストや納期との兼ね合いで妥協しなければならないこともある
        そもそも決定権を持つ人間がテストまで書いてるのが稀だろう

        それこそ趣味でプログラム書いてるアマチュアの言い出しそうなことだと思ったよ

        • by Anonymous Coward
          >決定権を持つ人間がテストまで書いてるのが稀だろう
          稀だとしても、決定だけしてその決定が実施されたかどうか全く確認しないという人間に決定権を持たせるべきではありませんね。
      • by Anonymous Coward

        >ロールオーバー時にバグが出ないか試す
        これで済むんだったら、製品としてバグがないか試すの1つだけで済む気がします。

    • by Anonymous Coward

      SNMPv1のカウンタが4Gくらいで一周してしまって、前回との差分がマイナスになったりしたのを思い出しますね。

  • by Anonymous Coward on 2019年02月18日 14時55分 (#3566688)

    両指10本2進法
    意外と知らないプログラマも少なからず

    ここに返信
    • by Anonymous Coward on 2019年02月18日 15時21分 (#3566705)

      先生薬指が言うことを聞きません!

      • by Anonymous Coward

        先生薬指が言うことを聞きません!

        むしろ小指じゃボケェ▼o▼

        • by Anonymous Coward

          むしろ小指じゃボケェ▼o▼

          小指が0.5bit……!!

          • by Anonymous Coward

            薬指は握り込んで0、半分上がれば1、
            小指は半分上がっても0、まっすぐ伸ばして1、
            と妥協すればそれなりになんとか。

    • by Anonymous Coward

      エグリエクリ゛

      # サバラ!

    • by Anonymous Coward

      お探しのページが見つかりません

      • by Anonymous Coward

        これかな
        GNSS受信機のロールオーバについて [furuno.com] (PDF注意)

        要約するとこんな感じらしい。
        ・FURUNOの受信機では、機器内部の時計が正しければ、GPS週番号がロールオーバーしても自動で判断する。
        ・時計がまっさらの状態のままで起動すると、製品のリリース頃の日付が初期値になっているので、そこから1024週以内の日付になってしまう。
        ・この場合の対処方法は、コマンドで内部時計の日付を設定する。

  • by Anonymous Coward on 2019年02月18日 17時53分 (#3566856)

    秋月では対応モジュールのFAQ [akizukidenshi.com]を用意 [akizukidenshi.com]している。

    というかこのタイミングで取り扱いだしたので対応してるものを用意した、というのが正解か?

    ここに返信
    • by Anonymous Coward

      >その次のロールオーバー(2038年11月20日)には対応しておりません。

      #そして教訓が生まれぬまま時が過ぎ(オィ

      • by Anonymous Coward

        新たな2038年問題?

      • by Anonymous Coward

        ファームビルド時点から一回のロールオーバーが対応可能ならば、
        とりま今回の騒動が終わったあたりでファームをアップデートすれば40年程は大丈夫なんでは?
        20年だと動いてる可能性はまぁまぁあるが、流石に40年も保たんと思うし……

        • その秋月のコメントは翻訳が間違えてますね。
          リンク先の英語説明は

          the firmware will work properly in the next 20 years after it is built.

          と述べていることに注意。
          「一回のロールオーバーを超えて、ビルド時点から1024週間の動作は可能」なのであって、「2回目のロールオーバー直前まで(最長40年間)動作するわけではない」です。

          ビルド時点の週数をファームに持っておいて、受信した週数がそれより小さい場合は1回のロールオーバー後、そうでなければロールオーバー前、という判定をしているのでしょう。

          • by Anonymous Coward

            どんな理屈でロールオーバー判定を、と思ったらそういう事か。
            まぁ最新ファーム入れれば20年弱は動くよ、的に思っときゃいい訳だな。

  • by Anonymous Coward on 2019年02月20日 9時34分 (#3568037)

    使ってるカーナビ、手動で日付や時計の調整ができない。
    2013年モデルだが大丈夫か…スマホのナビも影響あり?

    新たな「2038年問題」という声もあるが、果たして??

    ここに返信
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...