2013年10月19日18:05
P・NO NAMEさんの日記

先週、岡田斗司夫氏が運営する有料SNS・クラウドシティが連日にわたりサーバーダウンするという事件が起こりました。

これを受けて、岡田社長は、10月9日にサーバーダウンの原因の説明と謝罪を自社公式ブログにて行いました。

この謝罪文では、原因についてまだ特定できていない旨が書かれており、結びには詳細がわかり次第続報を出す旨も書かれています。

ですが、現時点までにその後詳細についての発表はありません。

http://blog.livedoor.jp/cloudcityblog/archives/32939869.html

さて、こちらの謝罪文の2を見ると「サーバの負荷過剰の原因について」

「これは「クラウドシティの改造」が元になっている可能性が高いです。」とあります。

クラウドシティはopenPNE(オープンピーネ)という名称のオープンソース(無料・自己責任利用のプログラム)を利用しています。そして、このクラウドシティのソースコードは、

https://github.com/1000maru/cloudcity-ex

にすべてアップロードされています。

このgithubは、すべてがいつどのような変更を施したかがあきらかとなるバージョン管理用のサイトです。

さて、添付ファイルをご覧ください。こちらが7/15に変更のあった部分です。http://i.imgur.com/s2acXZE.png

緑色の+の部分が新規に追加されたところであり、赤いーの部分がこの時点で削除されたものです。

そして、説明にある
「コメントがついた全ての日記をページを指定して取得する」機能
については1364行目から、この時点で新しく新規に追加されていることがわかると思います。

また、説明にある
「誰かがトップページを開けるたびにデータベースの日報コメントをすべて読みに行き、該当部分を表示するプロセスを発生させます。」

の部分は、赤く表示されている570行目で、

cdc.r_datetime

MAX(cdc.r_datetime)

に変わっているのがわかるでしょうか。これが原因です。これは七月に書き換えられたコードです。

また1375行目にも同様のMAX記載がありますから、こちらも同じ作用となっていました。


不思議なのは、この説明文を読む限りでは、すでに原因がわかっているようです。

それにもかかわらず、その後も数日にわたってサーバーダウンが続きました。

最終的に、プロセスを監視していた社員が、問題であるSQLを特定し指摘したことで原因がわかったと掲示板に記載がありましたが

そのあとの改修では、この問題となったソースコード自体を変更するのではなく、

トップページの画面表示での掲載箇所を非表示にするという方法で、該当機能を利用しないように変更するという不思議な改修方法がとられました。

また、こちらの担当プログラマは現在活動していないとのことです。

*****

次にここからが今認識した問題なのですが、画像の添付の元であるファイルについては、数日前までgithubにて公開されていたのですが、現在は削除されております。

以上の事実から以下の部分は推測ですが、

このプログラム管理者は、早い段階から問題箇所に気づいていたのにもかかわらず、
責任の重さに耐えかね、あたかも六月に行った施策が原因かのように周囲と社長に報告し
まわりの社員はそうと知らずに連日徹夜をして原因調査していた。

また、代表取締役は、プログラマから言われた内容をそのままリリースに書いた。

という疑惑がもたれています。


なお、単純に問題が特定できなかったことが原因だったとしても

この程度の「きわめて基本的な間違い」をすぐに改修できず
数日にわたって有料サービスをサーバーダウンさせるという事態を招いたことは

有料サービスであるSNSを運営する母体としての、技術水準として大いに不足に思うところであることに変わりはありません。


<追加情報>

「この機能はもともと高負荷をかけていたけど、目には見えない範囲の影響で済んでいました。」

のように言っているのはごまかしであり

指摘した箇所を、MAXという「最大値をとる」関数に書き換えたことにより、「毎回、すべてのコメントの最大の更新日付を取得する」ということをおこなっています。

最初の影響が少なかったのは、コメント数がサーバーのキャパシティ内だっただけです。日々人々が活動し、コメントが増え続けることで、最大値をとるための時間は徐々に長くなりました。


=====

以上のような経緯のなか、このサーバーダウンの原因の一部であるかのように言及された「六月市長が異議を唱えたことで」シティは泥沼の論争となりました。

10日以上たってもまだ紛争中です。嘆かわしいことです。

=====



これらのソースコードは、数日前までに全世界に公開されておりました。

現時点では、削除されています。

削除権限があるということは、この主でだるプログラマは活動していることになります。

いずれにせよ、このような単純ミスが数ヶ月にわたり放置されたあげくサーバーダウンをしなければならなかった技術はお粗末の一言に尽きます。

この該当箇所の削除も、会社としてやったのか、あるいはプログラマが個人的にやったのか

いずれにせよ、証拠を隠滅する意図であったとのそしりは、もはや免れないことでしょう。

このような悪質な対応をする集団だと知っていたら、もっと早くに公開すべきでした。