Gelişmiş Forum modülünden sık, aralıklı bir hata alıyorum (WSOD) 500 hatasına neden oluyor. Üretimde, saatte yaklaşık 20 kez, muhtemelen tüm forum sayfası yüklerinin% 2-3'ünde bir saat oluyor. Bu sürekli aralıklı . Yerel olarak, hatayı sürekli olarak yeniden oluşturamıyorum, ancak oluşuyor.
Hata açık
Sitelerin 232 / tümü / modülleri / katkıda / advanced_forum / include / core-overrides.inc`:
Undefined yöntemine çağrı stdClass :: preview ()
Sorun advanced_forum_get_topics () fonksiyonunda yatmaktadır:
function advanced_forum_get_topics($tid, $sortby, $forum_per_page, $sort_form = TRUE) {
$term = taxonomy_term_load($tid);
drupal_add_feed('taxonomy/term/' . $tid . '/feed', 'RSS - ' . check_plain($term->name));
// Views handles this page
$view = views_get_view('advanced_forum_topic_list');
$view->sort_form = $sort_form;
return $view->preview('default', array($tid));
}
Esasen views_get_view () görünümü bulamıyor ve nesne dönüş satırında beklendiği gibi oluşturulmuyor. Yani sorun bazen görüşün varlığından habersiz olan Views ile yatmaktadır. Bu bana bunun bir kanca sorunu olduğunu düşündürüyor.
Garipleşmeye başladığı yer, hook_views_default_views () ve hook_views_plugins () uygulamalarıdır. Views.api.php'ye göre hook_views_default_views (), MODULENAME.views_default.inc adlı bir dosyada ve hook_views_plugins (), MODULENAME.views.inc adlı bir dosyada olmalıdır. Ancak, her iki dosya da MODULENAME.views.inc dosyasındadır.
Views.api.php sitesinden:
hook_views_plugins()
Bu kanca MODULENAME.views.inc dosyasına yerleştirilmelidir ve otomatik olarak yüklenecektir.
MODULENAME.views.inc, MODULENAME_views_api () tarafından döndürülen 'yol' anahtarı tarafından belirtilen dizinde veya 'yol' belirtilmemişse, .module dosyasıyla aynı dizinde olmalıdır.hook_views_default_views()
Bu kanca MODULENAME.views_default.inc içine yerleştirilmelidir ve otomatik olarak yüklenecektir. MODULENAME.views_default.inc, MODULENAME_views_api () tarafından döndürülen 'yol' anahtarı tarafından belirtilen dizinde veya 'yol' belirtilmemişse .module dosyasıyla aynı dizinde olmalıdır.
Bu rutinleri görünüşte doğru dosyalara bölmeyi denedim. Bu, Views'ın (Görünüm GUI listesinde göründüğü gibi) Gelişmiş Forum görünümünü tutarlı bir şekilde bulmasına neden oldu, ancak eklentiyi görmedi. Gelişmiş Forum'daki sayfalar iyi çalıştı, ancak Görünümler artık görmediği Gelişmiş Forum tarafından sağlanan bir stil eklentisine başvurduklarından görünümler boştu.
Views kancaları hakkında bir şey eksik olduğumu varsayıyorum, ama tamamen güldüm.
- Yığın: Drupal 7, Görünümler (7.x-3.3), CTools (7.x-1.0), Gelişmiş Forum (7.x-2.0)
- PHP FPM, APC, nginx, Redis
- Bu konuda yararlı bir şey bulamadım
GÜNCELLEME 1 : Kök nedenini çözemedim, ancak Redis'i devre dışı bırakıp Drupal'ın varsayılan veritabanı tabanlı önbellek depolama mekanizmasına geri dönme sorunun oluşmasını durduruyor gibi görünüyor.
GÜNCELLEME 2 : flushall
Redis'te bir işlem yaparak sorunu yerel olarak güvenilir bir şekilde çoğaltabilirim . Bir forum listesine bakmanın ilk sayfa yükü ölümcül olacaktır. İkinci sayfa yüklemesi (ve sonraki tüm sayfalar) düzgün çalışır . GÜNCELLEME: Hatayı gidermek için yönetici Görüntüleme giriş sayfasına basmam gerekiyor.
GÜNCELLEME 3 : Diğer sorun giderme işlemlerinde, sorunun yalnızca önbellek temizlendikten sonra, yalnızca Redis kullanırken Views önbelleğinin düzgün bir şekilde yeniden oluşturulmamasından kaynaklandığı görülmektedir. Standart Drupal önbelleğine geri dönerken sorun oluşmaz. Sorun oluştuğunda, görünümler için yalnızca 2-4 önbellek girdisi vardır, önbellek düzgün oluşturulduğunda 100'den fazla. Yönetici görünümleri liste sayfasını ziyaret etmek, önbelleğin tamamen oluşturulmasına neden olur ve sorun oluşmaz. Soruna neden olan herhangi bir Görünüm görünümü sayfasına veya yalnızca gelişmiş forum görünümüne vurup vurmadığınızı doğrulamam gerekiyor.
GÜNCELLEME 4 : IRC'deki yardımcı bir kullanıcı, Görünüm önbellek yarışı durumu sorunları ile ilgili bir sorun olabileceğini önerdi: 853864 , 1102252