سؤال

أقوم بتشغيل Redmine على Apache 2 باستخدام mod_rails (passenger) 2.0.3 وEnterprise Ruby 1.8.6.في كثير من الأحيان أحصل على خطأ من Apache عندما أحاول تسجيل الدخول.هل يعرف أحد كيف يمكنني تصحيح هذه المشكلة؟أرى شيئًا كهذا في Error.log الخاص بـ Apache:

[الاثنين 19 يناير 17:09:48 2009] [إشعار] معرف الطفل 8714 خطأ تجزئة إشارة الخروج (11)

الطريقة الوحيدة التي يمكنني من خلالها تشغيل التطبيق بعد ذلك هي إعادة تشغيل النظام بأكمله (إعادة تشغيل Apache فقط لن يساعد).

هل كانت مفيدة؟

المحلول

الخطوات الأولى هي:

  1. اكتشف مكان ترك الملف الأساسي على نظامك (قم بتمكين عمليات التفريغ الأساسية إذا لزم الأمر).

  2. يجري file(1) على الملف الأساسي الناتج.من المحتمل أن يقول هذا "...تم إنشاؤها بواسطة httpd"، ولكن من الجيد أيضًا التحقق منها.

  3. إشعال النار gdb مقابل الاسم القابل للتنفيذ من (2) والملف الأساسي من (1)، وابدأ في الحفر.الامر where (أو bt) مكان جيد للبدء:سيعطيك هذا تتبعًا للمكدس في وقت تفريغ العملية الأساسية.

يبدو أنك لا تتمتع بخبرة كبيرة في البرمجة بلغة C، لذا حظًا سعيدًا!يمكن أن يكون تعقب هذا النوع من الأخطاء بمثابة كلب حقيقي.يمكنك محاولة نشر تتبع المكدس من (3) هنا، ولكن لا تحبس أنفاسك أثناء انتظار الإجابة.في أفضل الأحوال، قد يكون اسم الوظيفة الفاشلة عبارة عن سلسلة جيدة لتقديمها إلى Google.

نصائح أخرى

وأنا واجهت مشكلة مشابهة مع segfault (11). وجدت التالية على ServerFault التي عرضت على ترقية كحل.

وكان تشغيل نسخة قديمة من أوبونتو، وكان المشكلة segfault. جلبت A do-release-upgrade نظام بلدي إلى أوبونتو 11.10 ومشكلة سحرية ذهبت بعيدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top