mysql - कैसे एक Drupal max_allowed_packet त्रुटि को ट्रैक करने के लिए?




debugging caching (2)

मेरी मचान साइट्स में से एक ने हाल ही में प्रत्येक एडमिन पेज पर बड़ी त्रुटियों को उगलाने शुरू कर दिया है:

User warning: Got a packet bigger than 'max_allowed_packet' bytes query: UPDATE cache_update SET data = ' ... ', created = 1298434692, expire = 1298438292, serialized = 1 WHERE cid = 'update_project_data' in _db_query() (line 141 of /var/www/vhosts/mysite/mypath/includes/database.mysqli.inc). (जहां "..." क्रमबद्ध डेटा के लगभग 15 लाख अक्षर हैं)

मुझे नीचे ट्रैक करने के बारे में कैसे जाना चाहिए जहां त्रुटि उत्पन्न होती है? डीडीबी_क्यूरी को डीबगिंग कोड जोड़ना कोई अच्छा काम करता है, क्योंकि यह बहुत बुलाया जाता है?


इसे ट्रैक करने की कोई आवश्यकता नहीं है क्योंकि आप इसे ठीक नहीं कर सकते मुझे लगता है।

यह अद्यतन से कैश है। मॉड्यूल, जिसमें मॉड्यूल के अपडेट किए हुए संस्करण और इतने पर जानकारी है। इसलिए यह उस मॉड्यूल में "_update_cache_set ()" कॉल में से एक से आ रहा है।

एक जंगली अनुमान के आधार पर, मैं कह सकता हूं कि यह इस समारोह में है: http://api.drupal.org/api/drupal/modules--update--update.fetch.inc/function/_update_refresh/6

यह मूल रूप से आपकी साइट पर सभी परियोजनाओं के बारे में जानकारी के साथ एक विशाल सरणी का निर्माण कर रहा है और इसे एक एकल, क्रमबद्ध मान के रूप में संग्रहित करने का प्रयास करता है।

आपने इस साइट पर कितने मॉड्यूल स्थापित किए हैं?

मैं इस त्रुटि को "ठीक" करने के तीन तरीकों के बारे में सोच सकता हूं:

  • Max_allowed_packet आकार बढ़ाएं (my.conf में max_allowed_packet सेटिंग)
  • अपडेट अक्षम करें। मॉड्यूल (वैसे भी किसी स्टेजिंग / प्रोडक्शन साइट पर यह उपयोगी नहीं है, जब आपको पहले किसी भी साइट पर अपडेट करने की आवश्यकता होती है)
  • कुछ मॉड्यूल अक्षम करें;)

मुझे एक समान त्रुटि थी और लगभग एक घंटे के लिए दौर और गोल चला गया था।

512m तक स्मृति सीमा में वृद्धि हुई और अभी भी समस्या थी। और यह सोचा था कि पर्याप्त था तो कहीं और देख रहा था।

मैंने कैश को ड्रश से साफ़ कर दिया, अभी भी त्रुटि, और फिर डेटाबेस तालिकाओं को देखा।

मैंने देखा कि cache_update को छोड़कर सभी कैश टेबल साफ़ किए गए थे। मैंने इस तालिका और बैम को छोटा कर दिया, सब कुछ सामान्य रूप से काम कर रहा था।

मुझे मेमोरी सीमा त्रुटि मिलने से पहले, मुझे एक max_input_vars त्रुटि मिली क्योंकि मैं PHP5.4 पर PHP5.4 । लेकिन इस सवाल और जवाब ने मुझे इस तय करने के लिए प्रेरित किया। यह निश्चित नहीं है कि यह कैसे और क्यों काम किया, लेकिन यह किया।





drupal-6