2013-04-17 4 views
5
apache2: libmemcached/storage.cc:341: memcached_return_t memcached_send_ascii(memcached_st*, memcached_server_write_instance_st, const char*, size_t, const char*, size_t, time_t, uint32_t, uint64_t, bool, bool, memcached_storage_action_t): Assertion `memcached_failed(rc)' failed. 

के साथ अजीब मेमकैड मुद्दा मुझे पता नहीं है कि इसे फेंकने के दौरान क्या होता है, जब इसे फेंक दिया जाता है, या क्यों।अपाचे

यह एक गंभीर त्रुटि है? यदि हां, तो क्या किसी को पता है कि मैं इसे कहां ठीक कर सकता हूं?

उत्तर

6

मैं देखने में यह libmemcached में storage.cc के 341 लाइन होगा। libmemcached इनपुट सत्यापन का अच्छा काम नहीं करता है इसलिए कहने के आधार पर .... आपके मुख्य मान (कुंजी में या कुंजी नेमस्पेस में रिक्त स्थान का उपयोग न करें) आपको त्रुटियों के साथ बहुत सारी परेशानी हो सकती है।

स्रोत को देखते हुए, libmemcache एक आदेश भेजने के बाद मेम्कैश सर्वर से एक उत्तर की उम्मीद है और आदेश भेजने में विफल रहा था। तो इसमें कई कारण हो सकते हैं (कुंजी त्रुटि, कनेक्शन त्रुटि, आदि)।

http://bazaar.launchpad.net/~tangent-trunk/libmemcached/1.0/view/head:/libmemcached/storage.cc

+1

धन्यवाद, बीमार ले – Ascherer

7

मैं (बिल्ड 1083) SugarCRM समुदाय संस्करण v6.5.15 के साथ एक ही मुद्दा था। मैंने ग्राहकों के साथ बाइनरी प्रोटोकॉल पर बातचीत करने के लिए memcached डिमन को मजबूर कर दिया है (libmemcached C++ क्लाइंट सहित)। यह मेरे लिए काम करता है, इसे आजमाएं।

डेबियन व्हीज़ी में, memcached पैकेज में /etc/memcached.conf पर एक कॉन्फ़िगरेशन फ़ाइल है। फ़ाइल के अंत में इस पंक्ति जोड़ दें:

-B binary 

फिर पुनः आरंभ memcached सेवा

service memcached restart 

और जानकारी: http://linux.die.net/man/1/memcached

-1

मैं बिल्कुल वैसा ही त्रुटि थी ("apache2" सिर को छोड़कर) जब एक विकासशील पुस्तकालय और यह एक थ्रेडिंग संबंधित त्रुटि थी। Memcached क्लाइंट का एक उदाहरण कई समवर्ती धागे द्वारा उपयोग किया गया था ताकि ग्राहक और सर्वर असंगत स्थिति में हुआ। इस प्रकार रिटर्न कोड पर दावा, rc, libmemcached में विफल रहता है। As far as I see, libmemcached आंतरिक संरचना जो कनेक्शन को परिभाषित करती है वह थ्रेड-सुरक्षित नहीं है।

एक ही समय में यह कल्पना करना कि आप इस संभवतः एक सूत्रण त्रुटि बना सकता है,, पीएचपी जो सूत्रण उपयोगिताओं प्रदान नहीं करता है में भी हो आसान नहीं है पर। वैसे भी आपको एक memcached कनेक्शन के साथ असामान्य कुछ करने के लिए अपने कोड का निरीक्षण करना चाहिए।

0

सबसे पहले - आप कनेक्शन सीमा जांच होनी चाहिए।

यह त्रुटि दिखाई memcached सेवा कनेक्शन की सीमा (-c परम) पर पहुंच गया। डिफ़ॉल्ट रूप से, 1024 कनेक्शन पर सेट सीमित करें। लेकिन अगर आपने मल्टीथ्रेडिंग करने की कोशिश की तो सीमा जल्दी से पहुंच सकती है।

डिफ़ॉल्ट config पथ: /etc/sysconfig/एक नज़र memcached