2013-04-29 74 views
1

我在Plone 4.1.6中,如果您進入站點設置>用戶和組,然後單擊用戶的複選框「重置密碼」並單擊「應用更改」,系統掛起並在5分鐘後,我從Apache的這個錯誤:無法請求用戶密碼重置

Proxy Error 

The proxy server received an invalid response from an upstream server. 
The proxy server could not handle the request POST /@@usergroup-userprefs. 

Reason: Error reading from remote server 

Apache/2.2.22 (Ubuntu) Server at 192.168.1.4 Port 443 

錯誤後,我不得不重新啓動的Plone使Plone的再次迴應。

我的環境:

  • 的Plone 4.1.6(4115)
  • CMF 2.2.6
  • 的Zope 2.13.15
  • 的Python 2.6.8(未知,2013年4月27日,22: 1點31分)[4.6.3 GCC]
  • 擴展中心:
    • 重氮主題支持1.0b8 安裝一個控制面板,以允許上即時themi ng with Diazo
    • ThèmePlone classique 1.1.2 L'ancienthèmeutilisédans Plone 3 et antierieures。
    • 靜態資源存儲1.0b5 一種用於存儲和提供靜態資源文件
  • 我運行Plone的背後Aapache
  • 測試本地
  • 與VirtualBox的4.2.12
  • 運行的虛擬機文件夾Plone安裝在虛擬機上
  • Plone版本是4.1.6
  • 虛擬機正在運行Ubuntu 12.04 AMD64
  • Zeocluster 2個客戶
  • 電子郵件在Plone實例

據我所知是正確配置,一切工作正常與我的Plone實例,包括用戶和組提供的其他複選框。

我用ssmtp做了一個測試,從vm上的節點發送一封郵件給我自己,我沒有問題發送郵件。

我曾嘗試fg模式,一切似乎都沒問題。

我沒有檢查Apache日誌,一切似乎也沒問題。

如果創建一個SSH隧道來避免Apache並直接訪問Plone,我沒有代理錯誤,但系統永遠掛起。

我不知道該怎麼做才能解決這個問題。任何想法?

回答

1

python進程掛起時是否使用大量CPU?使用top檢查。

安裝ZopeHealthWatcher,然後當它再次掛起時,使用zope健康監視器來獲取每個線程正在做什麼的列表。這通常會讓你知道代碼在循環中,無限遞歸中的位置(這可能發生在zodb中,特別是在獲取和類似命名的情況下),或者它只是阻塞某些東西(例如,在網絡上的mtu問題鏈接到smtp服務器,例如,小電子郵件工作,但大的掛起)。

你也可以停止smtp服務器(或只是改變plone控制面板中的端口),看看你是否至少得到一個例外。如果Plone無法連接到SMTP服務器,默認情況下應該引發異常。

在極端極端的情況下,您可以連接到掛蟒蛇進程(我通常使用「top」來查找坐在100%CPU上的進程),然後您可以找到它掛在哪裏。這比使用ZopeHealthWatcher複雜得多,但我最近使用這種方法成功地追蹤了reportlabs字體代碼中的競爭條件,它非常強大。 gdb有什麼好處,它會阻止進程並允許你遍歷代碼,並在調用堆棧上下調用,這與ZopeHealthWatcher不同,它只是給你一個快照(有點像Heissenberg不確定性的事情,你可以觀察它的位置現在...)

+0

謝謝。這是有價值的調試技術。我發現用於Plone的SMTP配置的端口是587,而不是我想象的465。如果因爲這個原因,Plone不掛,那將會很棒。我想這是一個Plone錯誤。 – 2013-05-20 15:34:59