दिलचस्प पोस्ट
क्रोम डेवलपर टूल में == $ 0 (डबल बराबर डॉलर शून्य) क्या होता है? मुख्य कार्य में "WINAPI" क्या होता है? RxJs 5 में कोनेरी 2 एचटीटीपी नेटवर्क कॉल के परिणाम को साझा करने का सही तरीका क्या है? सी / सी + + जांच अगर एक बिट सेट है, अर्थात चर चर कमांड लाइन तर्क में * का मुद्दा कैसे चेक बॉक्स राज्य सहित MVC में नियंत्रक के लिए IEnumerable सूची पारित करने के लिए? आप एक आइफ्रेम के लिए कैसे पोस्ट करते हैं? "++" और "-" ऑपरेटरों को एक्सकोड 7.3 से हटा दिया गया है अंतर्निर्मित जावास्क्रिप्ट फ़ंक्शंस के स्रोत को कैसे देखें? मैं एक उल्टे गिट कमिट को "अन-रिवर्ट" कैसे कर सकता हूं? उदाहरण: मैसेजिंग का उपयोग कर गतिविधि और सेवा के बीच संचार जावा एक सरणी से डुप्लिकेट निकालें? फ़ाइल या असेंबली को लोड नहीं किया जा सका या इसके निर्भरता में से एक स्वयं ट्रैकिंग संस्थाओं का उद्देश्य क्या है? ब्रेक के बिना स्विच करें

कैसे गलत 32 टूटी हुई पाइप को रोकने के लिए?

वर्तमान में मैं अजगर में निर्मित ऐप का उपयोग कर रहा हूं। जब मैं इसे व्यक्तिगत कंप्यूटर में चलाता हूं, तो यह बिना समस्याओं के काम करता है

हालांकि, जब मैं इसे एक उत्पादन सर्वर में ले जाता हूं यह मुझे निम्न के रूप में संलग्न त्रुटि दिखा रहा है:।

मैंने कुछ शोध किया है और मुझे कारण मिला है कि अंतिम उपयोगकर्ता ब्राउज़र कनेक्शन बंद कर देता है, जबकि सर्वर अभी भी डेटा भेजने में व्यस्त है

मुझे आश्चर्य है कि ऐसा क्यों हुआ और यह मूल कारण क्या है जो इसे उत्पादन सर्वर में ठीक से चलने से रोकता है, जबकि यह मेरे व्यक्तिगत कंप्यूटर पर काम करता है किसी भी सलाह की सराहना की है

Exception happened during processing of request from ('127.0.0.1', 34226) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__ self.finish() File "/usr/lib/python2.7/SocketServer.py", line 694, in finish self.wfile.flush() File "/usr/lib/python2.7/socket.py", line 303, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) error: [Errno 32] Broken pipe 

वेब के समाधान से एकत्रित समाधान "कैसे गलत 32 टूटी हुई पाइप को रोकने के लिए?"

आपकी सर्वर प्रक्रिया को सॉकेट में एक SIGPIPE लिखना मिला है। यह आम तौर पर तब होता है जब आप दूसरे (ग्राहक) पक्ष पर पूरी तरह से बंद सॉकेट पर लिखते हैं यह तब हो सकता है जब कोई क्लाइंट प्रोग्राम तब तक प्रतीक्षा नहीं करता जब तक कि सर्वर के सभी डेटा प्राप्त न हो जाएं और केवल एक सॉकेट बंद कर देता है ( close फ़ंक्शन का उपयोग करके)।

सी प्रोग्राम में आप सामान्यतः SIGPIPE सिग्नल को अनदेखा करने या उसके लिए डमी सिग्नल हेन्डलर सेट करने का प्रयास करेंगे। इस मामले में एक बंद गर्तिका को लिखते समय एक साधारण त्रुटि लौटा दी जाएगी आपके मामले में एक अजगर एक अपवाद फेंकने लगता है जिसे क्लाइंट के समय से पहले डिस्कनेक्ट के रूप में संभाला जा सकता है।

यह उस पर निर्भर करता है कि आपने इसे कैसे परीक्षण किया, और संभवतः व्यक्तिगत कंप्यूटर और सर्वर के टीसीपी स्टैक कार्यान्वयन में अंतर पर।

उदाहरण के लिए, यदि आपका sendall हमेशा व्यक्तिगत कंप्यूटर पर तुरंत (या बहुत तेज़ी से) पूरा हो जाता है, तो कनेक्शन भेजने के दौरान कनेक्शन कभी भी टूट नहीं सकता है यह बहुत संभावना है यदि आपका ब्राउज़र उसी मशीन पर चल रहा है (चूंकि कोई वास्तविक नेटवर्क विलंब नहीं है)।


सामान्य तौर पर, आपको अपवाद को संभालने से पहले मामले को संभालना आवश्यक है, जहां ग्राहक समाप्त होने से पहले डिस्कनेक्ट होता है।

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

टूटी पाइप त्रुटि आमतौर पर तब होती है यदि आपका अनुरोध अवरुद्ध या बहुत लंबा और अनुरोध-साइड टाइमआउट के बाद, यह कनेक्शन बंद कर देगा और तब, जब उत्तर-पक्ष (सर्वर) सॉकेट पर लिखने की कोशिश करता है, तो यह पाइप टूटी त्रुटि

यह इसलिए हो सकता है क्योंकि आप डेटाबेस में डेटा डालने के लिए दो विधि का उपयोग कर रहे हैं और इस कारण साइट धीमा हो गई है

 def add_subscriber(request, email=None): if request.method == 'POST': email = request.POST['email_field'] e = Subscriber.objects.create(email=email).save() <==== return HttpResponseRedirect('/') else: return HttpResponseRedirect('/') 

उपरोक्त कार्य में, त्रुटि है जहां तीर इंगित कर रहा है। सही कार्यान्वयन नीचे है:

 def add_subscriber(request, email=None): if request.method == 'POST': email = request.POST['email_field'] e = Subscriber.objects.create(email=email) return HttpResponseRedirect('/') else: return HttpResponseRedirect('/')