新・元地方の中規模印刷会社で苦悩するWebデザイナー改めWebディレクターの日記

自由な20代、窮屈な30代を経て、遂に40代になっちまったWebディレクター&パソコン講師の覚書と思う言(こと)。略称【ちほちゅう】

*

稼働中のシステムのバグ取り(EC-CUBE)

      2014/11/10

  • このエントリーをはてなブックマークに追加

1年以上前の記事です。内容が古い可能性があります。

すでに稼働中のシステムにバグを発見してしまった。
まだ、完全に先方に引き渡しをしていない段階だったので良かったが、
稼働中のシステムのバグ取りというかなり綱渡りな作業をしたその流れを紹介。

スポンサーリンク
 

ちなみに今回バグが発見されたのは「EC-CUBE」という日本発のオープンソースのEコマースシステム。
その商品並び替え機能がうまく動かないというもの。

いろいろ調べて辿り着いたのが以下のサイト
チェンジセット 16970 – EC-CUBE Trac – Trac
複数カテゴリ対応による[商品並び替え]のバグを改修」とのことなので、
どうも、ここにあるとおりに修正すれば直るらしい。
(赤で書かれた部分を緑で書かれた部分に修正、追記する)

まずは修正だ。
FTPで該当のファイルをダウンロード。ここまでは簡単。
そのファイルを「秀丸」で開く。「秀丸」はユニコードのファイルが直接開けて直接編集でき、そのままユニコードで保存できるテキストエディタだ。
ここで、たとえば「メモ帳」や「ワードパッド」等で開くとまともに開いてくれない。
仮に開いてくれたとしても保存時にエンコードをSJISにしてしまい、ちゃんと動かなくなってしまうう可能性があり、そっちのほうが怖い。
ちなみにマッキントッシュには同様の機能をもっているエディタで「Jedit」というのがあります。
これで何とか修正完了。もちろん、間違えないように。

続いてアップだ。
が、いかんせんすでに動いているサイトである。どうしたものか?
「insert_data.sql」に関してはおそらくインストール時に使うファイルだろうということで、さほど抵抗なくアップできた。
さて次は問題の「SC_Helper_DB.php」だ。これはおそらく動作部分の本体だろう。
そこで、なるべく被害を最小限に抑えるために以下の方法でファイルを入れ替えることにした。
1. FFFTP等のFTPツールで今動いているファイルをFTP上で別名に変える。(最悪新しいファイルがダメな場合。名前を元に戻すことで完全にもとのシステムに戻すことができるため。)
2. すかさず新しいファイルをアップ。今回はユニコードのファイルなのでバイナリ転送でアップする。
3. さらに軽く動作確認をし、該当の機能がバグを起こしていないか確認。
ここまでで一段落だ。

最後に実際動かして修正されているか確認してみる。
現在公開されているデータはすでにバグっているため、
新しいデータを新しいカテゴリーに未公開で登録して並び替えを試してみる。
よし、オッケー。チャント動くようになった。

次はバグってしまっている商品をなるべく障害なく正常に戻す。
一番確実なのは新しいカテゴリーを作ってそちらに全商品を移し、
バグってしまっているカテゴリーを削除してしまう方法。
が、これでは、カテゴリーへの直リンクURLが変わってしまうので却下だ。
実は、今回商品の追加時にこのバグが発覚したのだが、
時間がなかったため同じ商品を再度新規登録することで商品の順番を指示通りにしていた。
そのため、同じ商品が未公開で複数ある状態になっていた。
そこで、まずは未公開商品で並び替えをしてみる。
これでまずは癖を読み、公開商品に対して並び替えを実行しようという魂胆だった。
ところが、ここでトラブルが発生。未公開商品を並び替えたことが影響して公開商品の順序も変わってしまったのだ。
もう背に腹は変えられない。一気に癖を読んで並び替えだ。
ここはかなりシビレた。
時間にして数分。10分もなかったと思う。
一気に癖を読み並び替え完了。ついでに複数になっていた商品も綺麗に消すことができた。

寿命が縮んだ。

本来、仮サーバーさえあればなんてことないのですが、
ぶっつけ本番でお客様のショッピングサイトをオープンする運びになったために、
身を削る思いをしてしまいました。
今後はもうちょっと慎重に提案していこうかなぁ。と思ってます。

※4月23日追記
具体的なバグについて説明します。
各商品には順番を管理する数値が与えられるのですが、
その数値の初期値を配置する部分のプログラムか、
順序入れ替え時に数値を修正するプログラムにバグがあったのでしょう、
商品の順番を管理する数値が全て同じものになってしまっていたんです。
(通常は数値の小さなものから順に表示されるようになっている。)
そこで、バグは取れても、そういった状況での動作は想定していないハズなので、
どんな挙動をするかわからないためにかなり慎重になっていたのでした。

 - EC-CUBE, プログラミング, レビュー・レポート , ,

アドセンス広告メイン

Message

メールアドレスが公開されることはありません。

  関連記事

あけましておめでとうございます2014

1年以上前の記事です。内容が古い可能性があります。あけましておめでとうございます …

サクラはどこまでが詐欺なのか?

1年以上前の記事です。内容が古い可能性があります。出会い系サイトのサクラは詐欺に …

闇金融(ヤミ金)業者等、電話を使った詐欺グループの存在はNTTグループのステマじゃないのかと思った件

1年以上前の記事です。内容が古い可能性があります。親族が闇金融(ヤミ金)業者に引 …

災害時はツイッター(Twitter)が最強かもしれない

1年以上前の記事です。内容が古い可能性があります。今日、2時過ぎに東北太平洋沖を …

mixiの地域コミュニティオフに参加(於:わいず熊谷店) (11/18追記)

1年以上前の記事です。内容が古い可能性があります。今までオフラインはおろかオンラ …

no image
地球に優しいPDF「WWF」が主流になってくる(かも)

1年以上前の記事です。内容が古い可能性があります。今の会社ではよくある話なんです …

「和太刀」のライブ「演斗ス核(コア)+1」を見に行ってきた

1年以上前の記事です。内容が古い可能性があります。「和太刀(わたち)」という殺陣 …

[PR] これぞ猫砂の理想の姿!「キャッツ・エコ」

1年以上前の記事です。内容が古い可能性があります。久しぶりにコラブロさんからの依 …

ホリエモンついに収監。モヒカンで登場【今週のトピック】

1年以上前の記事です。内容が古い可能性があります。□ 「堀江貴文、収監のすべて」 …

アメリカにワールドカップを与えたい理由

1年以上前の記事です。内容が古い可能性があります。□ サッカー米女子代 …

血液型オヤジ