MODxを使っているサイトで、
公開しているページも、管理画面も、真っ白で何も開けない状況になることがありました。
色々調べて、サイトキャッシュ「assets/cache/siteCache.idx.php」が壊れていることがわかり、
これを削除して、管理画面からキャッシュのクリアを行なうことで、なんとか復旧したのですが、
こういうことは、よくあることでしょうか?
壊れていた箇所は、以下のようになっていました。(**の部分は、実際には数値とか文字とかが入っています)
$a[***] = array('id' => ***, 'alias' => '****', 'path' => '****' $m[] = array('**' => '***');
最初の変数$aへの代入のコードが終わる前に、次の変数$mへの代入のコードが始まっていて、
結果として、二つの異なるソースコードが、途中まで重なっている状態のように思えます。
途中まで書き込んで中断してしまったのか、同時に書き込んで不整合が起きたのか?
おそらく、サイトキャッシュを書き出しているのは、
manager/processors/cache_sync.class.processor.php
の215~225行目(0.9.6.2の場合は、216~226行目)あたりかと思いますが、
これって、何らかの更新をした際、いつも呼ばれる処理ですよね?
でも、排他制御してないですよね?(サイト全体で同じ1つのファイルを皆が更新するのに)
ってことは、更新する人が二人以上いるとしたら、
元々、タイミングによっては、サイトキャッシュが壊れる仕組みになっているということですよね?
私の勘違いとか、私が何か見落としているとかなら、良いのですが…
どうなんでしょう?