您在這裡

重建權限 出現 Ajax 錯誤

yosia's 的頭像
yosia 在 2013-01-17 (四) 15:49 發表

請問一下各位高手,
最近設定了多種的使用者角色的權限,目前會出現 需要重建權限的訊息,
但執行重建權限的時候,都會出現Ajax的錯誤,只能重建部分資料,大部分都沒有成功重建權限,
google了一下發現好像是資料量比較大(目前大概9xx筆資料)才會出現這個問題,

然後我找到國外的資料,有人說可以用drush執行權限重建,但透過drush 執行 eval 'node_access_rebuild();' 也只能重建一部分
請問這個有解嗎?

不好意思,因為發問的時候急著處理問題,因為是在線的網站,所以有點沒頭沒腦的
錯誤訊息如下:

發生一個 AJAX HTTP 錯誤。 HTTP 結果碼:500 附上偵錯資訊。 路徑:/?q=batch&id=187&op=do 狀態文字:error 回應文字:

在問題變嚴重前,我曾經有把time out那行註解掉,有成功重建權限,但詭異的是,第二次我以為也可以這樣處理,結果造成了我無法讀取網頁的問題,看伺服器的cpu記錄,會跑到100%滿載...,所以不曉得是哪裡出了問題,重點是連backup_migration都不能用了。

因此後來我還是放棄了不要off-line的奢望,一個一個的備份檔一一測試,結果發現問題似乎出現在一個想像不到的模組 html purifier,可能我設定有誤還什麼的,我只要在文字格式裡面停用,或者僅單獨使用html_purifier,問題就不會再發生了。

雖然找到了治標的方法,只是不曉得有沒有人有碰過相同問題,有真正的解決方案?
因為我還是搞不懂為什麼我第一次的重建權限可以成功,第二次卻失敗了,還造成了更嚴重的問題

node_access_rebuild 會執行 node_load, node_load 會 involve "html purifier"

Devel Timeout 會不會也是超時?? 即使注釋了 drupal_set_time_limit(240);, 還會根據 PHP 設定 ? 你看看有沒有不小心設定錯了

BATCH MODE 時會跳進
http://api.drupal.org/api/drupal/modules%21node%21node.module/function/_...

說不定死在這裏:
$nodes = node_load_multiple($nids, array(), TRUE);

修改 $limit = 20; 為 1 或 2 看看