| 2006年03月24日(金) |
Yahoo!オークションのバグ |
先日実物を見て気に入ったので、 ネットオークションで某英会話学校の教材を入札した。
帰宅後にふと入札していたことを思い出し、 「あれ、どうなったっけ?」と見てみると、 私より高値で入札した人がいて、残り時間3分の状態だった。
「やばい!」と思って慌てて再入札した。 終了間際の入札なので、終了時間が延長になった。
私はライバルが再入札してくることを予想して、 時折F5キーを押しながら様子を見ていた。
そうしたら!
私が再入札する前の価格で終了しました!という 画面が表示されるではないか。
え、さっき延長されたのは何? 私の入札はどうなった?
驚きながらF5を連打すると、 今度は「あなたが落札しました!」という画面が表示される。
しかしながら、F5を押し続けると、 時折他の人が落札して終了したという画面が出る。
特に法則はないようだが、 終了間際の入札があって延長されたケースと、 そうでないケースの2つの結果のうち、 どちらかがタイミングによって表示されているようだった。
Yahoo!だからさ、バグがあっても驚かない。 Microsoftと一緒でね。
でもこの現象が起こるシステムの構成がよくわからない。 私の再入札が反映されずに終わってしまう、というなら理解できる。 でも2つのバージョンの結果が交互に表示されるなんて・・・ どういうデータの持ち方をしているのだろう?
本当に取引できるのかなぁと疑っていたのだけれど、 すぐに出品者から連絡があり、取引はできるようだった。
今ちょっと調べてみたけど、こりゃすごいね。
他人のIDと情報がごっちゃになり、 マイ・オークションとか出品物が全て混じって表示された。
数量1に2人の落札者がいる。
自分のIDが他者の出品物と関連づけされた。
いっくらでも事例が落ちている。 これらもやはり重い時間帯だったらしい。
さすがYahoo! テストしないでリリースしてるってのも本当なんだろうな。 Yahoo!BBが始まったときとか、すっごく面白かったもんねぇ。
おそらく、システムの作り自体がおかしいんだ。 サーバが重いからって情報が混濁するなんてありえない。 基本コンセプトからして顧客を舐めてるとしか思えない。
サーバが複数あって、トランザクションが集中する時間帯だと、 その同期タイミングにかなりの時間的ズレがあるってことか。 で、画面表示内容はどのサーバから行われるかによって、 変わってくること? 最終的には確定情報で同期をとるけど、 それまではダーティ・リード状態とかそういうこと?
それにしてもさ、中間処理状態だとしても、 他人のIDと混じるとかおかしいじゃん。
■メルマガ単語
goof 【名】 〈米俗〉ばか、お人好し、間抜け、ヘマ 【自動-1】 失敗する、へまをする、失態を演じる ・ I goofed! しまった! 【自動-2】 無駄に時間を過ごす、暇つぶしをする、ブラブラする 【発音】gu':f
blunder 【名-1】 大失敗、大間違い、ばかな間違い、失態、誤り、ミス、へま、どじ、ポカ ・ The teacher's blunder forced everyone to take the test again. 教師がミスをしたため、子供たちは皆再びテストを受けさせられた。 【名-2】 《囲碁》ポカ 【自動】 まごついてうろうろする、不注意で大失敗する、へまをする、不覚をとる ◆blunder は広い層の人々に使われるが、フォーマルな語ではない。かしこまった場では、fail や make a mistake などが使われることが多い。flounder の結果が必ずしも失敗とは限らないのに対して、blunder は結果が惨めであることを意味する。 ・ If he blunders again, he'll get fired. もし彼がまたへまをしたらクビになるだろう。 【レベル】10、【発音】blΛ'ndэ(r) ※「J&H」に出てきた"plunder"を思い出した。やっぱり"p"と"b"聞き分けられない。
|