আমি ফাস্টসিজিআই ব্যবহার করে এনজিনেক্সের পিছনে জ্যাঙ্গো চালাচ্ছি। আমি আবিষ্কার করেছি যে ক্লায়েন্টকে প্রেরিত কয়েকটি প্রতিক্রিয়ার মধ্যে, প্রতিক্রিয়াগুলির মাঝামাঝি সময়ে এলোমেলোভাবে ডেটা দুর্নীতি হচ্ছে (মাঝখানে কয়েক শতাধিক বাইট বা এটি হতে পারে)।
এই মুহুর্তে আমি এটিকে নিগনক্সের ফাস্টসিজিআই হ্যান্ডলার বা জ্যাঙ্গোর ফাস্টসিজিআই হ্যান্ডলার (যেমন সম্ভবত ফ্ল্যাপে একটি বাগ) হিসাবে বাগ হিসাবে চিহ্নিত করেছি, যেহেতু আমি স্ট্যাণ্ডলোন (অর্থাৎ runserver
) মোডে জ্যাঙ্গো সার্ভার চালানোর সময় এই সমস্যাটি কখনই ঘটে না । এটি কেবলমাত্র ফাস্টসিজিআই মোডে ঘটে।
অন্যান্য আকর্ষণীয় প্রবণতা:
এটি বৃহত্তর প্রতিক্রিয়ার উপর ঘটতে ঝোঁক। যখন কোনও ক্লায়েন্ট প্রথমবার লগইন করেন, তাদের সার্ভার ডিবিতে সিঙ্ক করতে 1MB খণ্ডের একটি গোছা প্রেরণ করা হয়। এই প্রথম সিঙ্কের পরে, প্রতিক্রিয়াগুলি অনেক ছোট হয় (সাধারণত একবারে কয়েক কেবি)। শুরুতে প্রেরণ করা 1 এমবি অংশগুলিতে সর্বদা দুর্নীতি দেখা দেয়।
এটি প্রায়শই ঘটে যখন ক্লায়েন্টটি ল্যানের মাধ্যমে সার্ভারের সাথে সংযুক্ত থাকে (যেমন লো-লেটেন্সি, উচ্চ-ব্যান্ডউইথ সংযোগ)। এটি আমাকে ভাবতে বাধ্য করে যে এনগিনেক্স বা ফ্লাপে কোনও ধরণের রেসের শর্ত রয়েছে যা বর্ধিত ডেটার হারের দ্বারা তীব্র হয়।
এই মুহুর্তে, প্রতিক্রিয়া শিরোনামে অতিরিক্ত SHA1 ডাইজেস্ট রেখে আমাকে এই চারপাশে কাজ করতে হয়েছিল এবং ক্লায়েন্টকে প্রতিক্রিয়াগুলি প্রত্যাখ্যান করেছে যেখানে শিরোনাম শরীরের চেকসামের সাথে মেলে না, তবে এটি এক ধরণের ভয়ঙ্কর সমাধান।
অন্য কেউ এর মতো কিছু অনুভব করেছেন, বা এখানে ফ্লপ বা এনগিনেক্স যে দোষে রয়েছে তা চিহ্নিত করার জন্য কীভাবে কোনও পয়েন্টার রয়েছে যাতে আমি উপযুক্ত দলের সাথে একটি বাগ ফাইল করতে পারি?
কোনো সাহায্যের জন্য আগাম ধন্যবাদ।
দ্রষ্টব্য: আমি লাইটটিপিডি + ফাস্টসিজিআই + জ্যাঙ্গোতেও কিছুক্ষণ আগে এখানে পোস্ট করেছি: https://stackoverflow.com অপ্রত্যাশিত ... যদিও এটি একই জিনিস নয় (দুর্নীতি বনাম দুর্নীতি), এটি ওয়েব সার্ভারের চেয়ে সাধারণ অপরাধী ফ্লপ / জ্যাঙ্গো বলে মনে হচ্ছে ..
সম্পাদনা: আমার পরিবেশটি কী তাও আমার নোট করা উচিত:
একটি ম্যাক মিনিতে ওএসএক্স 10.6.6
পাইথন ২.6.১ (সিস্টেম)
জ্যাঙ্গো ১.৩ (অফিসিয়াল টার্বাল থেকে)
ফ্লপ ১.০.২ (ফ্লপ সাইটে পাইথনের ডিম থেকে)
nginx + ssl 1.0.0 (ম্যাকপোর্টগুলি থেকে)
সম্পাদনা: জেরজাইকের মন্তব্যের প্রতিক্রিয়ায়, যে কোড পাথ প্রতিক্রিয়াটি একত্রিত করে তা দেখে মনে হচ্ছে (সংশ্লেষের জন্য সম্পাদিত):
# This returns an objc NSData object, which is an array.array
# when pushed through the PyObjC bridge
ret = handler( request )
response = HttpResponse( ret )
response[ "Content-Length" ] = len( ret )
return response
আমি মনে করি না যে এটির ভিত্তিতে বিষয়বস্তু-দৈর্ঘ্যটি ভুল, এবং এএএএফআইকে কোনও জ্যাঙ্গো এইচটিপ্রেস্পোনস বিষয়টিকে স্পষ্টত দ্বিপদী হিসাবে পাঠ্যের বিপরীতে চিহ্নিত করার উপায় নেই। এছাড়াও, যেহেতু সমস্যাটি কেবল মাঝেমধ্যে ঘটেছিল, তাই আমি মনে করি না যে এটির ব্যাখ্যা দেয় অন্যথায় সম্ভবত আপনি প্রতিটি অনুরোধে এটি দেখতে পাবেন।
সম্পাদনা @ আইওনেলএমসি: আপনাকে জ্যাঙ্গোতে সামগ্রী-দৈর্ঘ্য নির্ধারণ করতে হবে - নিজিনেক্স আপনার জন্য এটি সেট করে না, একবার আমি কন্টেন্ট-দৈর্ঘ্য স্পষ্টভাবে সেট করা অক্ষম করলে:
$ curl -i http://localhost/io/ping
HTTP/1.1 200 OK
Server: nginx/1.0.0
Date: Thu, 23 Jun 2011 13:37:14 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
AKSJDHAKLSJDHKLJAHSD