क्या दृश्य के कारण लगातार हो रहा है लेकिन रुक-रुक कर उन्नत फोरम मॉड्यूल द्वारा प्रदान किया गया दृश्य नहीं मिल रहा है?


15

मुझे उन्नत फ़ोरम मॉड्यूल से लगातार, रुक-रुक कर त्रुटि हो रही है, जो तब होती है (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


क्या आपने व्यूज़, Ctools, या उन्नत फ़ोरम कतार में एक समस्या बनाने की कोशिश की है? यह मेरे लिए सवाल की तरह लग रहा है कि क्या दृश्य या उन्नत फोरम वर्तमान में रेडिस का समर्थन करता है? जहाँ तक मुझे जानकारी है, व्यूज़ एक रिलेशनल क्वेरी लैंग्वेज (एसक्यूएल) का उपयोग करता है ताकि यह प्रदर्शित हो सके। मुझे यकीन नहीं है कि रेडिस (एक कुंजी-मूल्य स्टोर) के साथ कितना अच्छा होगा। यह वास्तव में एक उत्तर नहीं है, लेकिन तब, मैं व्यक्तिगत रूप से नहीं जानता कि क्या इसका जवाब है। मैं यह भी सलाह देता हूं कि आप इस सवाल के लिए ड्रुपल आईआरसी चैनलों तक पहुंचें। सौभाग्य।
शौकिया बरिस्ता

दिलचस्प सेटअप आपके पास है।
शौकिया बरिस्ता

मैं केवल ड्रूपल के कैश बैकेंड के लिए ड्रॉप-इन प्रतिस्थापन के रूप में रेडिस का उपयोग कर रहा हूं, इसलिए यह दृश्य के लिए पारदर्शी होना चाहिए। मैंने बिना किस्मत के डू को पोस्ट किया। drupal.org/node/1110688
जस्टिन

@amateurbarista यह पैनथॉन ड्रुपल है।
जस्टिन

1
क्या आप अन्य कैश बैकेंड की कोशिश करने की स्थिति में हैं? यह संभावित रूप से पहचान सकता है कि आपको दृश्य के साथ कोई समस्या है या Redis के साथ।
mpdonadio

जवाबों:


1

ऐसा लगता है कि आपको आईआरसी से सही उत्तर मिला। मेरे अनुभव में "लगातार रुक-रुक कर" तब होता है जब कैश भरने वाले दो स्रोत होते हैं। सबसे आम है जब आपके पास एक विकास साइट और विभिन्न कोड आधारों पर एक मंचन / उत्पादन साइट होती है, लेकिन एक ही डेटाबेस। ड्रुपल-प्रदान कैश जो मैंने डेटाबेस से कनेक्ट करने के लिए कोड पढ़ा है, इसलिए रूट की गई / फ़ंक्शन जानकारी जो कैश की गई है दूषित हो जाएगी। व्यवस्थापक / मॉड्यूल पृष्ठ को हिट करने से मॉड्यूल कैश और स्थानों को ताज़ा करेगा, व्यवस्थापक / दृश्य प्रविष्टि पृष्ठ को हिट करने से आपकी त्रुटि साफ़ हो जाती है क्योंकि यह साइट के दृष्टिकोण से आपकी समझ को ताज़ा करता है बजाय इसके कि आप जो भी विरोध कर रहे हैं उसके परिप्रेक्ष्य से।

यदि आपके पास सर्वर व्यवस्थापक क्षमता है, तो पासवर्ड को अपनी साइट के डेटाबेस और पासवर्ड को अपनी सेटिंग में बदल दें। पीपीपी, और देखें कि क्या टूटता है। आपकी लिस्टिंग को दूषित होना बंद कर देना चाहिए और उनके साथ जो छेड़छाड़ हो रही है, उसे तोड़ देना चाहिए ... जब तक कि यह आपकी साइट से सीधे जुड़ा न हो और आपकी सेटिंग का उपयोग न कर रहा हो।

इसके अलावा, यह सुनिश्चित करने के लिए जांच करें कि आपके डोकरो में व्यू मॉड्यूल के कई इंस्टॉलेशन नहीं हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.