タグ

bugとprogrammingに関するat_yasuのブックマーク (7)

  • バグの間抜けな倒しかた - kuenishi's blog

    プログラムを書いていると、間抜けなバグをいくらでも仕込むことができる。たとえば一文字だけのTypoだったり、ifの括弧のつけわすれであったり、エラー処理をひとつ忘れていたり、もしくはその言語特有の間抜けなバグというものもあるだろう。そういったバグは往々にしてコードレビューはテストを掻い潜ってしまう。製品や番のコードに残ったままリリースされ、とてもヘンなデータが入ったり障害が起きたりしたときにだけ発露する。今回のはなしもそのエラー処理をひとつ忘れてリリースしてしまったことがきっかけではあるのだが、むしろバグの見つけ方が間抜けであったことをここに書いて今後の反省の材料としたい。 riak_cs#985 はそんなバグのひとつで、エラー処理をひとつ忘れて Riak CS のコネクションプールが漏れていたという話だ。再現条件としては、ユーザに関するAPI(一覧GETなど)を叩いたり、 Author

    バグの間抜けな倒しかた - kuenishi's blog
  • なぜ PHP の三項演算子は左結合なのか - y_uti のブログ

    PHP の三項演算子が左結合で使いにくいという話題についてです。 次のプログラムは大抵の言語では one を表示するのですが、PHP では two になってしまいます。 <?php $var = 1; echo ($var == 1 ? 'one' : $var == 2 ? 'two' : 'three') . "\n"; 三項演算子が左結合なので、このコードは次のように解釈され、 <?php $var = 1; echo (($var == 1 ? 'one' : $var == 2) ? 'two' : 'three') . "\n"; 文字列 'one' は真偽値としては true になるので、結果的に 'two' が戻されるというわけです。 このような言語仕様になっている理由が気になったので、探してみました。 Bug #61915 incorrect associativity

    なぜ PHP の三項演算子は左結合なのか - y_uti のブログ
  • BugStories

    Shiro(2011/09/16 02:28:53 PDT):ハードなバグに関する話って読んでてとてもおもしろいのだけれど、 いざ事例を探そうとすると思うように探せないので、何となくまとめておこう。 好きなように足してください。自分で書いてリンクするのも歓迎。 (2017/05/06 17:40:34 UTC: 新しい記事を前に足してゆくように変更) RubyのPathnameライブラリが体組み込みになったらGC周りのテスト失敗がおきたHow we found and fixed a rare race condition in our session handlingFinding a CPU Design Bug in the Xbox 360オーバーフローが引き起こした面白いバグの話The Horror in the Standard LibraryA tale of an imp

    BugStories
  • グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開

    ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)

    グーグルのバグ予測アルゴリズムを実装したツール「bugspots」、オープンソースで公開
    at_yasu
    at_yasu 2012/01/06
    ほほぉ、使ってみよ
  • 「2000年問題」が10年遅れてオーストラリアを直撃、金融システムが大混乱に陥る

    1995年を「95年」と表記するなど、年数の表記を西暦の下2桁のみで行っている一部のコンピュータで、「2000年(00年)」を「1900年」と解釈してしまった結果、コンピュータが誤作動する可能性があるとされた「2000年問題(Y2K問題)」が1990年代末に世界を騒がせましたが、オーストラリアで2010年を迎えた途端、金融システムにエラーが発生したそうです。 どうやら10年遅れる形で「2000年問題」で懸念されていた事態が到来してしまったことになりますが、いったいどうなっているのでしょうか。 詳細は以下から。 Bank error costs retailers > Inside Retailing > Articles page この記事によると、オーストラリアのクイーンズランドにある銀行のシステムが2010年1月1日を迎えた途端、なぜか日付を「2016年1月1日」であると誤認識してしま

    「2000年問題」が10年遅れてオーストラリアを直撃、金融システムが大混乱に陥る
    at_yasu
    at_yasu 2010/01/04
    えー、何で・・・bit演算でも、0111,1101,1010と0111,1110,0000はかなり違うし・・・/%dと%xか。ってそれじゃ今までの決済は・・・
  • asahi.com(朝日新聞社):おつり80円のはずが800円 JR九州、券売機でミス - 社会

    JR九州は18日、博多駅と和白駅で自動券売機に釣り銭の10円玉と100円玉を入れ間違えていたと発表した。券売機内の現金と売上額を調べたところ、両駅とも現金が1万円以上不足していた。得した人の方が多かったようだが、担当者は「珍しいミスなのに別々の駅で同時に起きるなんて」と首をかしげている。  同社によると、博多駅では17日午後1時10分〜18日午後1時25分、和白駅では18日午後2時10分〜3時、10円玉と100円玉を入れる収納箱を取り違えていた。両駅員は1日1回、券売機の釣り銭を補充しているが、客からの申し出を受けるまで気づかなかったという。両駅への申し出は「300円を入れて220円の切符を買ったら、800円が出た」など、多く受け取った客からだったという。  博多駅では501枚、和白駅では129枚の切符を発売。残額を調べたところ、博多駅は1万80円、和白駅は1万2620円不足していたという

    at_yasu
    at_yasu 2009/07/19
    おやま、珍しい/どこでx10されたのかしらん。
  • Visaカードで 23,148,855,308,184,500ドルの請求発生、原因はプログラムエラー | スラド

    Visaカード所有者に誤って23,148,855,308,184,500ドルの請求が発生するという事態が何件か起きていたそうだ(CNN.com, CNN.co.jp)。 家記事によると、この請求された金額からどのようなエラーが発生していたかを導き出せるとのこと。恐らく保存されている数字は「23,148,855,308,184,500.00」の100倍、すなわち「2314885530818450000」という数字になる。この数字を16進数で表すと「20 20 20 20 20 20 12 50」となる。C/C++を触っているプログラマーなら何が起きたか、お分かりだろう。16進数の「20」はスペースであり、2進数でゼロが入力されるべき箇所にスペースが入力されたため、世界の GDPを超えるような天文学的金額の請求が発生したのでないかと考えられるそうだ。 なお、Visaは問題のプログラムエラーは

    at_yasu
    at_yasu 2009/07/19
    20,20,20,20,20,12,50(16x)が入力されて金額になった話/charから単純にタイプキャストしただけ・・・?/てか、孫の孫の代まで払わせようと考えるなw
  • 1