व्यवस्थापक पृष्ठों में घातक त्रुटि


15

मैं Magento 1.7 स्थापित है और यह अब तक ठीक काम किया है।

मैं दैनिक आधार पर उत्पादों का आयात करता हूं। यदि कोई नया निर्माता है, तो मैं इसे ड्रॉप डाउन आधारित निर्माता विशेषता में जोड़ता हूं।

आज, मैंने विशेषता बैक-एंड में नए निर्माता विकल्प को जोड़ा है और उत्पादों को आयात करने के लिए चला गया है जो सफलतापूर्वक आयातित उत्पाद हैं।

लेकिन उसके बाद मैं Magento के व्यवस्थापक साइट के किसी भी पृष्ठ को खोलने की कोशिश करता हूं, यह नीचे त्रुटि संदेश के साथ समाप्त होता है

घातक त्रुटि: लाइन 36 पर Mage_Core_Model_Abstract :: clearInstance () /var/www/html/app/code/core/core/Mage/Catalog/Model/Category.php पर ओवरराइड नहीं कर सकता

रेखा 36ने {इस वर्ग के लिए अभी शुरुआत की है

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36

और मैंने जाँच की है Mage_Catalog_Model_Categoryलेकिन नाम के साथ कोई विधि परिभाषित नहीं है clearInstance। यह वास्तव में कष्टप्रद है।

FYI करें: मैंने कोड का एक भी वर्ण नहीं छुआ है मैं सिर्फ ADMIN साइट का उपयोग उत्पादों को आयात करने और कुछ आवश्यक विशेषताओं को जोड़ने के लिए कर रहा हूं


क्यों -1 मैं यहां लोगों की मदद करने के लिए हूं। क्या यह Magento के बारे में सवाल पूछने की जगह नहीं है।
धूप

-1 के बारे में, कभी-कभी लोग अजीब प्रतिक्रिया करते हैं ... आपकी समस्या के बारे में, यह आपके त्रुटि संदेश में लिखा गया है, बस इसे पढ़ें। "अंत में अंतिम विधि नहीं पा सकते ..."। आप उस चीज़ को ओवरराइड करने की कोशिश करते हैं जो आप (कोई या जो इसे बुरी तरह से कोड नहीं कर सकते हैं)
सिल्वेन रेई

@ SylvainRayé: मैंने कोड का एक भी वर्ण नहीं छुआ था, क्या आपने प्रश्न पढ़ा है ?, मैं सिर्फ उत्पाद आयात करने के लिए ADMIN साइट का उपयोग कर रहा हूं। यह Magento है जो त्रुटि फेंक रहा है और फिर से यह Magento है जो इसे बुरी तरह से कोड करता है
धूप

@ SylvainRayé: त्रुटि के रूप में आपको लगता है के रूप में लाइट नहीं है, विशेष रूप से जब यह कोर कोड से आता है और यहां तक ​​कि जब कोड को छूने के बिना।
धूप

डाउनवोट परियां इस समुदाय में काफी आक्रामक हैं, उन्हें अनदेखा करें। एक समस्या हो सकती है जहां तृतीय पक्ष विस्तार वर्ग का विस्तार या अधिलेखित करके समस्या का कारण बनता है। कोशिश करो और सभी 3th पार्टी एक्सटेंशन को अक्षम देखने के लिए कि अगर मदद करता है
Sander Mangel

जवाबों:


5

यह व्यवहार सामान्य रूप से तब तक नहीं होगा जब तक कि आपने किसी तरह से Magento के कोड को संशोधित नहीं किया है - यह 3rd पार्टी एक्सटेंशन, कोर कोड संपादन या सामान्य अनुकूलन के माध्यम से हो।

तथ्य यह है कि व्यवस्थापक में होता है, किसी भी डेटा मॉडल से पहले वास्तव में लोड किया जा रहा है (उत्पाद ग्रिड आदि) एक विस्तार से इसका कारण होगा - आयातित डेटा नहीं।

यह उत्पाद ग्रिड पर घटित हो रहा था - फिर यह एक असफल आयात के परिणामस्वरूप उत्पाद मॉडल हो सकता है।

लेकिन एक त्वरित खोज के बाद, उसी त्रुटि के साथ Magento स्टोर के बहुत सारे अनुक्रमित Google खोज परिणाम हैं। तो यह कोर में हो सकता है (यद्यपि, हम इसके पार कभी नहीं आए) - लेकिन मुझे संदेह है।

1.7 में कोर को देखते हुए

+34 abstract class Mage_Catalog_Model_Abstract extends Mage_Core_Model_Abstract
+35 {
+36     /**
+37      * Identifuer of default store

आपके पास clearInstance()विधि का कोई ओवरराइड नहीं होना चाहिए । वास्तव में, इस विधि को केवल एक बार, में घोषित किया जाता हैapp/code/core/Mage/Core/Model/Abstract.php

final public function clearInstance()

मैंने देखा है कि इस प्रकृति की त्रुटियां तब होती हैं जब लोग गलती includeसे एक ओवरराइड क्लास के लिए उपयोग किया जाता है (परिणामस्वरूप इसे दो बार लोड किया जा रहा है)।


मानक डिबग प्रक्रिया का पालन करने के लिए आपके सबसे अच्छे विकल्प हैं

  1. एक साफ कोर को पुनर्स्थापित करें
  2. एक साफ adminhtml dir को पुनर्स्थापित करें
  3. ./app/code/localनिर्देशिका का नाम बदलें
  4. ./app/code/communityनिर्देशिका का नाम बदलें

और देखें कि क्या समस्या बनी रहती है।


3

यहाँ समस्या APC के साथ है, APC अक्षम करें और समस्या दूर हो जाएगी।


APC को अक्षम करना कोई विकल्प नहीं है। लेकिन अच्छा विचार है! मैं ऐसा कभी नहीं सोचूंगा! @sunlight क्या आपके पास एक से अधिक Magento स्थापित है? और उसी उपसर्ग को परिभाषित किया? यह उसी कैश के अंदर किसी अन्य स्टोर की समस्या हो सकती है।
फैबियन ब्लेसश्मिद्ट

3

इस विशिष्ट त्रुटि के लिए php मानकों द्वारा जाना:

घातक त्रुटि: लाइन 36 पर Mage_Core_Model_Abstract :: clearInstance () /var/www/html/app/code/core/core/Mage/Catalog/Model/Category.php पर ओवरराइड नहीं कर सकता

इसका स्पष्ट अर्थ है कि आपने कक्षा Mage_Core_Model_Abstractका उपयोग करके विस्तारित किया है

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract

और इस वर्ग के भीतर आपने clearInstance()एक फ़ंक्शन के रूप में परिभाषित किया है।

चूंकि clearInstance()फ़ंक्शन एक अंतिम फ़ंक्शन है, इसलिए आपको किसी भी विस्तारित कक्षा में इस फ़ंक्शन को संशोधित करने की अनुमति नहीं है।

क्या वास्तव में आपकी रेखा ३६ है ऊपर और नीचे की रेखा से कुछ डमी कोड जोड़कर आप मान लें कि रेखा ३६ है।

मैंने डेवलपर्स को विशिष्ट फ़ोल्डर में फ़ाइलों को संशोधित करने या देखने के लिए देखा था, जहां कंपाइलर के साथ सच्चे php वर्ग फ़ाइलों के लिए सेट किसी अन्य फ़ोल्डर में होता है।


मैं जाँच की है, मैं किसी भी विधि नामित नहीं है clearInstanceमें localऔर communityपूल। हालाँकि, मैंने समस्या को अस्थायी रूप से हल करने के लिए फ़ंक्शन घोषणा से अंतिम कीवर्ड हटा दिया है, लेकिन यह मुझे परेशान कर रहा है कि जब मैंने finalफ़ंक्शन के सामने कीवर्ड वापस जोड़ दिया है, तब भी चीजें ठीक से काम कर रही हैं।
धूप

संभवतः आपकी कक्षा को दो बार सोनासी द्वारा बताए गए अनुसार शामिल किया जा रहा है: मैंने इस प्रकृति की त्रुटियां देखी हैं जब लोगों ने गलती से एक ओवरराइड क्लास के लिए शामिल किया है (जिसके परिणामस्वरूप इसे दो बार लोड किया जा रहा है)।
Oscprofessionals

2

मुझे नवीनतम PHP 5.4 संस्करण के साथ एक अलग Magento संस्करण (फ्रंटएंड क्षेत्र में) पर एक ही समस्या थी और इसे कोड या किसी भी कैश द्वारा हल नहीं किया जा सकता था। क्या आपने संस्करण की जांच की?

यदि यह स्थिति है, तो पहले वाले संस्करण में रोलबैक एक कोशिश के लायक होगा।


2

बस यह अनुभव किया और बहुत ही समान सेटअप बताते हुए अपुष्ट बग पोस्ट किया।

यह एक बग के साथ प्रतीत होता है के संयोजन के साथ

  • PHP 5.4.12+
  • Magento 1.7.x (1.13.x EE)
  • APC (3.1.x)

Apache error_log AH00052 दिखाता है: चाइल्ड पिड XX एक्जिट सिग्नल सेगमेंटेशन फॉल्ट (11)

इस समय समस्या के दो सबसे अच्छे समाधान यह प्रतीत होते हैं:

ए) डाउनग्रेड पीएचपी को कम काम के संस्करण में, संभवतः 5.4.11 या नीचे।

बी) एपीसी को डिसेबल करें, यदि संभव न हो तो देखें ए :)


Im एक ही समस्या का सामना कर रहा है PHP 5.3.27 के साथ MariaDB, Magento 1.7.0.2, जिसमें कोई APC नहीं है। Im भी वार्निश + nginx का उपयोग कर। इसका एक अंतरिम मुद्दा है जो कभी-कभी php-fpm, वार्निश, nginx, आदि को पुनरारंभ करने के लिए मजबूर करता है। वैसे, मुझे कोई भी गैर-कोर क्लीयरेंस विधि कहीं भी घोषित नहीं मिली। शायद दो बार कक्षाओं सहित कुछ है। लेकिन यह अजीब है, क्योंकि अगर यह एक पार्सर त्रुटि थी, तो यह हर बार होता है।
रिकार्डो मार्टिंस

1

मैंने Magento 1.9 के लिए PHP रन के तरीके को स्विच करके (होस्टिंग कंट्रोवर्ल पैनल में मैंने रन PHP को स्वाइप किया ... फास्ट सीजीआई एप्लीकेशन के रूप में) इस मुद्दे को हल किया। मुझे पूरी तरह से पता नहीं है कि इस बदलाव के अन्य परिणाम क्या हैं। फिलहाल यह पता लगाने की कोशिश की जा रही है।


0

मैं उसी समस्या की उम्मीद कर रहा था। कोर पूल से बाहर कहीं भी कोई स्पष्ट विधि घोषणा नहीं थी ।

मैंने अपने nginx access.log और error.log का विश्लेषण किया और देखा कि ये त्रुटियां तब दिखाई देती हैं जब Google और बिंग बॉट मेरी साइट पर हजार बार कुछ ही मिनटों में अलग-अलग url में आते हैं, जो मैगेंटो से कई अनुरोध और प्रश्न करते हैं। यह चीजें मेरी साइट को नीचे ले जाती हैं।

मुझे लगता है कि मैंने तय किया है कि Google से क्रॉलर की शक्ति को कम करके और उनके वेबमास्टर के पैनल में बिंग करें।

अपनी लॉग फ़ाइल का विश्लेषण करने और शीर्ष आगंतुक उपयोगकर्ता-एजेंट को देखने के लिए आप GoAccess या अनुरोध लॉग विश्लेषक का उपयोग कर सकते हैं ।

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