なぜ私は無作為にこの致命的なエラーに遭遇する(Yiiフレームワークで)?

私は時には

Fatal error: require() [function.require]: apc_fcntl_lock failed errno:6 in C:\web\yii\framework\web\CWebApplication.php on line 345

コードコンテキスト:

        else
            $controllerID.='/';
        $className=ucfirst($id).'Controller';
        $classFile=$basePath.DIRECTORY_SEPARATOR.$className.'.php';
        if(is_file($classFile))
        {
            if(!class_exists($className,false))
                require($classFile);  ////////////THIS IS LINE 345
            if(class_exists($className,false) && is_subclass_of($className,'CController'))
            {
                $id[0]=strtolower($id[0]);
                return array(
                    new $className($controllerID.$id,$owner===$this?null:$owner),
                    $this->parseActionParams($route),
                );
            }
            return null;
        }

相対実行時環境:

OS:win2k3.
PHP Version 5.3.6 
Server API  CGI/FastCGI

apc:
Version 3.1.8-dev
APC Debugging   Disabled
MMAP Support    Disabled
Locking type    File Locks
Serialization Support   php
Revision    $Revision: 308812 $
Build Date  Mar 1 2011 13:31:44

このエラーの原因どうすれば修正できますか?

2

2 答え

apcのデッドロックのバグだと思う http://www.searchtb.com/ 2014/02/apc-lock-php-fpm.html apcのメンテナの1人にこのことについて尋ねたところ、彼はapcの代わりにopcacheを使うように提案しました。

0
追加された

これは私が時々遭遇するAPCの問題のようです。何が起こっているのかを100%は伝えることはできませんが、開発中は頻繁にファイルを変更、移動、上書きします。 APCは、バイトコードキャッシングを処理するために内部的に使用されるファイルのinodeを緩和しているようです。

私にとっては、エラーを修正する唯一の方法はウェブサーバーを再起動することです。

これは、ソースコードを頻繁に変更しないプロダクションシステムでも発生しますか?

0
追加された
ありがとう。私が遭遇したのとまったく同じ症状は、それが生産後に表示されないことを願っています。
追加された 著者 dotslashlu,
@LotusH:このエラーメッセージはどうですか?あなたはまだこの問題を抱えていますか? Windows Server 2008で動作しているIISサーバーでAPCを有効にした後も、同じエラーメッセージが表示されたため、私は尋ねています。IIS + Windows 7を搭載した自分のマシンで試したので、同じバージョンのPHP、同じバージョンのMySQL、同じデータ、同じバージョンのAPCで、問題なく動作します。それは本当に奇妙です:ほぼ同じ条件がありますが、Windows 7では問題ありませんが、Windows Server 2008では問題ありません...
追加された 著者 Sk8erPeter,
OK、申し訳ありません、私は2時間前に言ったことを取り消さなければなりません。私はサーバーをテストし、phpMyAdminがインストールされた別のサイトで、同じ "致命的なエラー:不明:apc_fcntl_lockがエラー0:6行目が不明です"というエラーメッセージを表示しました。 APCを無効にした後、すべてが再び機能しました...しかし、それは解決策ではありません。:\
追加された 著者 Sk8erPeter,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com