Tedious: علقت في الحالة النهائية

تم إنشاؤها على ١٢ يونيو ٢٠١٧  ·  5تعليقات  ·  مصدر: tediousjs/tedious

لإعطاء نظرة عامة سريعة ، أحاول إدخال عدة مئات من السجلات بشكل غير متزامن في قاعدة البيانات الخاصة بنا باستخدام المكالمات الفردية في mssql npm. ومع ذلك ، أثناء استخدام الإصدار الأقدم 3.3.0 من mssql ، لم أحصل أحيانًا على رد اتصال من npm. لقد قمت بتحديث mssql إلى 4.0.4 وما زلت لا أتلقى ردود نداء. لقد تعقبت ذلك حتى npm.
بعد processPreLoginResponse يتم إرساله إلى tls. ثم ينتقل إلى SentTLSSSLNegotiation. لسبب ما ، بعد بضع مئات من السجلات بمجرد وصولها إلى هنا ، يتم استدعاء socketEnd. ثم ينتقل إلى Final ، وتسمى وظيفة الإدخال ، ويسمى cleanupConnection (بدون معلمات) ، ويمسح الاتصال ويطلب مؤقتات ، ويغلق الاتصال ، ويتم استدعاء socketClose ثم يحاول الانتقال إلى Final مرة أخرى ، ووظيفة الإدخال لم يتم استدعاؤه ، ويبدو أنه معلق هناك إلى أجل غير مسمى.
هل لديك أي فكرة عن سبب استدعاء socketEnd في المقام الأول أو لماذا لا يصل إلى الكود الخاص بي مطلقًا حتى أتمكن من التعامل معه؟

التعليق الأكثر فائدة

تم دمج landondavidson @ jstephens7 https://github.com/tediousjs/tedious/pull/763 وإصداره كـ [email protected] .

يرجى إعلامنا إذا كنت لا تزال تواجه أية مشكلات. في غضون ذلك ، سأغلق هذه المشكلة. 🙇

ال 5 كومينتر

نواجه هذه المشكلة بالضبط باستخدام قاعدة بيانات azure. يمكننا إعادة إنشاء المشكلة بسهولة بعد حوالي 4 ساعات من تشغيل وظيفة اللازوردية على مؤقت مدته ثانية واحدة. هل هناك أي شيء يمكننا القيام به للمساعدة؟ هذه مشكلة كبيرة بالنسبة لنا ونود نوعًا من التحديث حول هذه المشكلة.

مرحبًا landondavidson ، آسف على الرد المتأخر ، هل تمانع في مشاركة الريبو لهذه المشكلة؟
كان لدينا # 574 الذي عالج خطأ اتصال متقطع في Azure DB ، وقد تم إصداره في v2.1.0 المملة ، ومعظم حزم تجميع الاتصالات تستخدم إصدارًا أقدم من برنامج التشغيل الممل ، هل يمكنك التحقق مما إذا كان قسمك يستخدم أحدث برنامج تشغيل؟

@ v-suhame ، لا نرى أي خطأ في الاتصال. المقبس يغلق علينا فقط في عملية التوصيل. لقد قدمت للتو طلب سحب مع الإصلاح الذي وضعناه في الإنتاج خلال الأسبوعين الماضيين. هذا موقع ويب به حمولة ثقيلة جدًا وقد اختفى الخطأ تمامًا مع تجميع الاتصال الذي أعاد محاولة الاتصال بعد الإبلاغ عنه.

تم دمج landondavidson @ jstephens7 https://github.com/tediousjs/tedious/pull/763 وإصداره كـ [email protected] .

يرجى إعلامنا إذا كنت لا تزال تواجه أية مشكلات. في غضون ذلك ، سأغلق هذه المشكلة. 🙇

يعمل الإصلاح السابق بالنسبة لي ، لكنني قررت تشغيل wireshark لمحاولة رؤية حركة مرور الشبكة التي تؤدي إلى الخطأ في المقام الأول. تمكنت من إعادة إنتاج المشكلة مرتين أثناء تشغيل التتبع.
لست متأكدًا من أهمية أي جزء مما استردته ، لذا سأقوم بتضمين ما لاحظته بين المرة مرتين التي حدث فيها الخطأ.
في المرتين كان لدينا PSH ACK و FIN ACK بحجم نافذة 66560.
بعد ذلك ، حصلنا في المرتين على RST ACK.
ثم يبدو أنه بدأ مفاوضات TLS التالية (مرحبًا بالعميل ، مرحبًا بالخادم ... رسالة مصافحة مشفرة)
بعد ذلك ، في المرتين بدأ إرسال بيانات التطبيق وحصلنا على TLS "تنبيه مشفر" متبوعًا بـ ACKs وتم استدعاء socket.end (لا مزيد من حركة مرور TLS / TCP).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات