2014-02-23 13 views
0

幾乎每次我想用app_dev.php查看我的網站頁面時,都會看到對話框「加載調試工具欄時發生錯誤」,如果我點擊Firefug查看詳細信息,則會看到以下錯誤信息:加載調試工具欄時出錯/無法獲取pthread鎖| Symfony2

FatalErrorException: Error: require() [function.require]: unable to obtain pthread lock (EDEADLK) in /Users/me/Sites/myproject/vendor/symfony/symfony/src/Symfony/Component/Debug/DebugClassLoader.php line 120

這實在是煩人...

非常感謝您的幫助

+0

我不能提供一個明確的答案,但我已經遇到過這個 - 我敢肯定它的相關成APC問題/錯誤。 –

+1

相關:http://stackoverflow.com/questions/13496165/php-fatal-error-require-unable-to-unlock-pthread-lock –

回答

0

這肯定是與APC,這是發射是錯誤的嘛。

http://lxr.php.net/xref/PECL/APC/apc_pthreadmutex.c#76

(該rwlock中可以發射相同誤差)

兩件事情:

  • 該消息可能是錯誤的;這取決於您的操作系統的缺省互斥鎖屬性,可以EDEADLK意味着你已經持有的鎖,不是說你不能獲得它
  • 沒有太多我們可以做些什麼...

APC支持許多不同類型的鎖定,因此,並且由於每個實現給出的各種返回值表示不同的鎖定狀態,APC的代碼庫不檢查對鎖定函數的調用的返回值,而是在鎖定函數內完全保留本身,就像你看到的那樣。業務邏輯雖然無法準備奇怪的狀態,如EDEADLK ...

這將是我的猜測,我可能是正確的,某事正在做一些事情,導致試圖遞歸鎖定緩存,可能這是由於調用include/require/autoloaders而不是調用來從用戶緩存中獲取數據。

沒有的事情,我是說真正的幫助......我們對此深感抱歉...

相關問題