मुझे उन्नत फ़ोरम मॉड्यूल से लगातार, रुक-रुक कर त्रुटि हो रही है, जो तब होती है (WSOD) होने पर 500 त्रुटि का कारण बनती है। उत्पादन पर, यह प्रति घंटे लगभग 20 गुना हो रहा है, शायद सभी फ़ोरम पृष्ठ के 2-3% प्रति घंटे। यह लगातार रुक-रुक कर चल रहा है । स्थानीय रूप से, मैं लगातार त्रुटि को पुन: उत्पन्न नहीं कर सकता, लेकिन ऐसा होता है।
त्रुटि जारी है
साइटों की लाइन 232 / सभी / मॉड्यूल / कंट्रीब / एडवांस्ड_फोरम / शामिल / कोर-ओवरराइड्स.आईएससी:
अपरिभाषित विधि को कॉल करें stdClass :: प्रीव्यू ()
समस्या उन्नत_forum_get_topics () फ़ंक्शन के साथ है:
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));
}
अनिवार्य रूप से view_get_view () दृश्य को खोजने में विफल रहता है और ऑब्जेक्ट वापसी लाइन पर अपेक्षा के अनुरूप नहीं बनाया जाता है। तो समस्या दृश्य के साथ झूठ लगती है कभी-कभी दृश्य नहीं जानते हैं। यह मुझे लगता है कि यह एक हुक समस्या है।
जहां यह अजीब होने लगता है, हुक_व्यू_डॉफॉल्ट_व्यूज़ () और हुक_व्यूज़_प्लगिन्स () के कार्यान्वयन हैं। Views.api.php के अनुसार हुक_व्यूज_डेफॉल्ट_व्यूज () MODULENAME.views_default.inc नामक एक फाइल में होना चाहिए और हुक_व्यूज_प्लगिन्स () MODULENAME.views.inc नामक फाइल में होना चाहिए। हालाँकि, दोनों फाइलें MODULENAME.views.inc फ़ाइल में हैं।
Views.api.php से:
hook_views_plugins()
यह हुक MODULENAME.views.inc में रखा जाना चाहिए और यह ऑटो-लोड किया जाएगा।
MODULENAME.views.inc को MODULENAME_views_api (), या .module फ़ाइल के समान निर्देशिका, यदि 'पाथ' अनिर्दिष्ट है, द्वारा दी गई 'पथ' कुंजी द्वारा निर्दिष्ट निर्देशिका में होना चाहिए।hook_views_default_views()
इस हुक को MODULENAME.views_default.inc में रखा जाना चाहिए और यह स्वतः लोड हो जाएगा। MODULENAME.views_default.inc को MODULENAME_views_api () द्वारा दी गई 'पथ' कुंजी द्वारा निर्दिष्ट निर्देशिका में होना चाहिए, या .module फ़ाइल के समान निर्देशिका, यदि 'पथ' असत्यापित है।
मैं प्रतीत होता है सही फ़ाइलों में इन दिनचर्या को विभाजित करने की कोशिश की। इससे व्यूज लगातार एडवांस्ड फोरम व्यू को खोजने लगा (जैसा कि संकेत दिया गया कि यह व्यू जीयूआई लिस्ट में दिखाई दिया) लेकिन प्लग-इन नहीं देखा। एडवांस्ड फोरम के पेज ठीक-ठाक चले, लेकिन दृश्य खाली थे क्योंकि उन्होंने एडवांस्ड फोरम द्वारा उपलब्ध कराए गए एक स्टाइल प्लगइन का संदर्भ दिया था जो अब देखने को नहीं मिल रहा था।
मुझे लगता है कि मैं दृश्य हुक के बारे में कुछ याद कर रहा हूं, लेकिन मैं पूरी तरह से स्तब्ध हूं।
- ढेर: Drupal 7, Views (7.x-3.3), CTools (7.x-1.0), उन्नत फोरम (7.80-2.0)
- PHP FPM, APC, nginx, Redis
- मैं इस मुद्दे में मददगार कुछ भी नहीं मिला
अद्यतन 1 : जबकि मैंने मूल कारण को हल नहीं किया है, ऐसा प्रतीत होता है कि रेडिस को अक्षम करने और ड्रुपल के डिफ़ॉल्ट डेटाबेस-आधारित कैश स्टोरेज तंत्र पर लौटने से समस्या उत्पन्न होने से रुक जाती है।
अद्यतन 2 : मैं स्थानीय रूप से flushall
रेडिस में कर स्थानीय रूप से इस मुद्दे को दोहरा सकता हूं । फोरम लिस्टिंग को देखने का पहला पेज लोड घातक होगा। दूसरा पेज लोड (और सभी बाद में) ठीक काम करता है । अद्यतन: मुझे त्रुटि दर्शाने के लिए व्यवस्थापक दृश्य सूची पृष्ठ को हिट करना है।
अद्यतन 3 : आगे की समस्या का निवारण करने पर दृश्य कैश के ठीक से कैश के बाद पुनः निर्मित नहीं होने के कारण दिखाई देता है, केवल रेडिस का उपयोग करते समय। मानक Drupal कैश में वापस आने पर समस्या उत्पन्न नहीं होती है। जब समस्या केवल 2-4 कैश प्रविष्टियों के लिए होती है, तो दृश्य 100 के विपरीत मौजूद होता है, जब कैश ठीक से बनाया जाता है। व्यवस्थापन दृश्य सूची पृष्ठ पर जाने से कैश पूरी तरह से बन जाता है और समस्या उत्पन्न नहीं होती है। मुझे यह देखने की आवश्यकता है कि क्या समस्या के कारण कोई दृश्य दृश्य पृष्ठ, या केवल उन्नत फ़ोरम दृश्य मार रहा है।
अद्यतन 4 : आईआरसी पर एक उपयोगी उपयोगकर्ता ने सुझाव दिया है कि यह दृश्य कैश दौड़ की स्थिति से संबंधित समस्या हो सकती है: 853864 , 1102252