パスワードを忘れた? アカウント作成
1954008 story
バグ

バッファロー、レコーダ予約がうるう年処理で動作しない問題 44

ストーリー by hylom
結構被害があるのね 部門より
Aluminum-Carbide 曰く、

バッファローのHDDレコーダー「DTV-H500R」「DVR-1Cシリーズ」「DVR-1シリーズ」でうるう年関連のバグが発見されたとのこと(バッファロー公式リリースAV Watch記事)。

「2月29日以降対象機器をスタンバイ状態にしたまま、一度も同機の電源ボタンを押してテレビ視聴をしなかった場合もしくは視聴しても視聴時間が5分以下だった場合予約録画が正常に行われない場合があることが判明した」とのこと。

先日シャープのレコーダーでもうるう年関連で「HDDの残容量があるにも関わらず予約ができない旨が表示される」というバグが発見されたが、こちらは「内部時計が不正となり、同日以降の予約録画が実行されない」というもの。「対象機器の電源ボタンを押し、5分程度チャンネルを変えずにテレビ視聴してから、もう一度電源ボタンを押してスタンバイ状態にすること」で対処できるという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • うるう年でよく問題が起こるのは、C言語の標準ライブラリに日付関係の関数が充実しておらず、標準の関数だけでは不足なので、日時を扱うアプリを作るたびに、日時の処理を再発明している状況だから

    仮にC言語の標準ライブラリに日時関数が充実して、再発明しなくてもよくなれば、アプリごとに日付処理を再作成しなくてもよくなってバグ混入もなくなる

  • by duenmynoth (34577) on 2012年03月06日 6時42分 (#2111973) 日記
    シャープに続いてメルコまでとは
    一体どういうプログラムにするとそういう事になるのかと
    それ以前にどういう仕様書でどういうテストをしたのか見てみたいですね

    #いっそのこと2012、2016、2020とかハードコーディングしとけばいいんじゃないかと
    • by mhe03222 (6917) on 2012年03月06日 7時19分 (#2111984)

      2000年以前より多いような気がします。
      アセンブラでコードを記述していた頃の方がまだ少なかったんじゃないですかね。
      そういえばK&RのC言語本にも演習が載ってたような気がするんですが、何が気にくわなくて自分で書いたんでしょうね。
      そうとうに枯れた処理のはずなのに。
      それとも閏年がない国の人がプログラミングしたんですかね。使ってる暦が違うとか。

      親コメント
    • by quililila (23086) on 2012年03月06日 7時09分 (#2111980) 日記

      単に閏年の事を忘れてただけでしょう。
      5分云々ってのはそれだけ電源が入っていれば受信電波から時計設定するので復帰するということかと。
      閏年の存在を忘れているのでハードコーディングってのも無理ですね。

      親コメント
    • by Anonymous Coward on 2012年03月06日 7時42分 (#2111988)

      こういう機器って専用のRTCチップを使ってたりするんじゃない?で、それがバグってると。

      設計に組み入れる方は、時間/日付勘定専用のチップが、まさかうるう年ごときも処理できない
      なんて初歩的なバグを抱えているはずがないとすっかり信じきって採用して、確認もしない。

      でも実際はそんなあほな子が作ったような残念RTC ICがしれっと出回っていたりする [wikipedia.org]んだなぁw。

      親コメント
      • そもそもRTCの日付計算って余計なお世話な気がする。
        OSの起動時とかに日付からシステムタイムに変換するコード書いてると、適当なところからミリ秒単位でカウントしてろとか思っちゃう。
        小さめな組み込み機器だと必要なんだろうか。

        親コメント
      • by Anonymous Coward

        このLSIの場合は、閏年の100年ルールだけ想定して、400年ルールを見逃してたって話でしょ。
        閏年が想定されていないのと同じ扱いにするのは違う気がするな。
        #厄介なのには違いないが。

        • by Anonymous Coward
          いや、そういう意味じゃなく。
          100年ルールも400年ルールも、その他のルールも含めて、既成のチップはちゃんと対応している前提で使ってるよね普通、という意味で。

          「ルールAには対応していますが、ルールBには対応しておりません。従いまして、閏年処理についてはアプリケーション側で再計算が必要です。」
          そんなチップ意味なさすぎ。
    • by Anonymous Coward

      とゆーか、そういう処理を毎回いちいち実装し直してるんだろうか?

      • by Anonymous Coward
        いちいちっていうほど複雑じゃないけどな。
        • by Anonymous Coward on 2012年03月06日 10時13分 (#2112046)

          簡単か複雑って問題じゃないでしょ

          親コメント
          • by Anonymous Coward

            #2112000 [srad.jp]この辺でも言われている通り、
            そもそも末端の方で実装する必要があると認識してないだろうなぁ。
            そーゆールールじゃない、と言う話だと思う。

            自分はWeb系の人間なので門外漢だけど、
            末端の方の処理で「毎回いちいち」カレンダー扱うなんて非効率な事をしてたのは
            学生時代(10年以上前)の趣味のCGIプログラムの時の話だもの。
            それは単に「ろくにライブラリを使えてなかった」からやってただけの話。
            まともなプログラマなら「毎回いちいち」閏年の計算が必要な組み方はしないよね。

            • by nim (10479) on 2012年03月06日 12時41分 (#2112165)

              java6 が和暦対応すると聞いてwktkしてたら、
              明治までしかなかったときのガッカリ感ときたら……

              親コメント
            • by Anonymous Coward

              その結果閏年が存在することすら忘れて落とし穴にハマると。
              いちいち明示的にコーディングしないにしても存在を忘れちゃダメだろ。

              • by Anonymous Coward

                > いちいち明示的にコーディングしないにしても存在を忘れちゃダメだろ。

                「簡単か複雑って問題じゃないでしょ」(#2112046) とのツッコミにむきになってるのかなぁと思うんだけど、
                「誰が」存在を忘れていたと推察したの?

        • by Anonymous Coward

          そんなの簡単だぜ!
          →間違えて顰蹙

          • by Anonymous Coward

            それを見てる奴が「こんな簡単なことを間違えるなんて(ドヤァ」
            まさに今回の問題の図式そのもの

      • by Anonymous Coward

        毎回実装してないからこそ、シリーズ物で不具合が発生しているんじゃないでしょうか。

  • by Anonymous Coward on 2012年03月06日 7時16分 (#2111981)

    閏年を廃止にした方が世界のためなのではないかと思いました。

    • by ksh2ksk4 (11188) on 2012年03月06日 9時46分 (#2112027)

      人の誕生日を勝手に廃止するなよ.

      親コメント
      • by Anonymous Coward

        年を取るのは翌日(3月1日)だから大丈夫ですよ
        # そういう問題ではない

        • by Anonymous Coward
          年齢が加算されるのは誕生日の前日の終了時です。
          • by Anonymous Coward

            誕生日の前日の開始時ですよね?

            • by Anonymous Coward

              年齢計算ニ関スル法律 [e-gov.go.jp]

              ① 年齢ハ出生ノ日ヨリ之ヲ起算ス
              ② 民法第百四十三条 ノ規定ハ年齢ノ計算ニ之ヲ準用ス

              民法143条 [e-gov.go.jp]

              (暦による期間の計算)
              第百四十三条  週、月又は年によって期間を定めたときは、その期間は、暦に従って計算する。
              2  週、月又は年の初めから期間を起算しないときは、その期間は、最後の週、月又は年においてその起算

      • by Anonymous Coward

        佐久間正英さん、こんなところで。

    • by USH (8040) on 2012年03月06日 20時07分 (#2112417) 日記

      よし、じゃあみんなの力を合わせて、地球の公転周期を0.0663%ほど加速するんだ。

      とりあえず、夕暮れに第2宇宙速度で真上にものを投げてみよう。

      親コメント
    • by Anonymous Coward

      閏年を無くしたらどのぐらいで季節との差を実感できるかな。

    • by Anonymous Coward

      大の月、小の月の区別もややこしいので、day of yearにした方が。

      季節がずれるのはやっぱり許せないので、いっその事、通算秒にした方が。起点は1970年あたりで。

      • Re:いっその事 (スコア:3, おもしろおかしい)

        by Anonymous Coward on 2012年03月06日 7時55分 (#2111993)

        だが待ってほしい。通算秒では日常生活では粒度が細かすぎやしないだろうか。

        そこで通算日ですよ。起点は1858年11月17日 [wikipedia.org]でどうでせう。

        親コメント
        • by Anonymous Coward

          日にしたら今度は閏秒が、ってなるんでは?

      • by nim (10479) on 2012年03月06日 12時40分 (#2112163)

        季節もずれず、閏年もない暦はちゃんと存在するじゃないですか。
        そう。みんなおなじみ、旧暦(太陽太陰暦)です。

        ま、代わりに閏月がありますけど。

        親コメント
    • by Anonymous Coward

      ユリウスのステマ乙

      • by Anonymous Coward

        ローマ教皇の優越なんか認めないから大昔のローマ皇帝の権威に従うぜ! って本末転倒すぎやしませんか>正教会

  • by Anonymous Coward on 2012年03月06日 7時36分 (#2111985)

    場合があるってことは、明確に原因箇所が分かってないってことでFA?

    >>それ以前にどういう仕様書でどういうテストをしたのか見てみたいですね
    こう言う人ほど、テスト仕様書にそった確認をしないんですよねぇ

    • by Anonymous Coward

      単に、発生回復条件を大雑把に書いているので、当てはまらない場合もありえるからでは。

    • by Anonymous Coward

      明確に書いていない=判っていない
      は短絡的過ぎるね。

    • by Anonymous Coward

      > こう言う人ほど、テスト仕様書にそった確認をしないんですよねぇ

      根拠のない決めつけをする人ほど、って事ならその通りだと思います。

    • by Anonymous Coward

      > 場合があるってことは、明確に原因箇所が分かってないってことでFA?

      なんでそうなるのでしょうか?
      普通に一般告知で使われる文言ですが知りませんか?
      製造などの内部での報告書なら許されませんが、一般人相手の告知ではそこまではしませんよ?
      せいぜい、ちょっと詳しい人相手に詳細告知を後で出すぐらいでしょう。

      > こう言う人ほど、テスト仕様書にそった確認をしないんですよねぇ

      根拠は?
      自分がそうだからってのは根拠になりませんよ?

      それとも「どういう仕様書でどういうテストをしたのか」を「テスト仕様書にそった確認」をしろってこと?
      だとしたら本末転倒ですね。

  • by Anonymous Coward on 2012年03月06日 19時39分 (#2112402)

    適当にググッたらこんなの [ibm.com]か見つかったんだけど、
    要するにこの手の問題というのは

    ユリウス通日から年月日形式に変換する関数が閏日処理をちょんぼしていたため、
    閏日以降はシステム日付と常に1日ずれるようになってしまった

    でFA?

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...