سؤال

هناك الكثير من التقارير عن فشل النظم في فهم عام 2010 ولكن ليس لدي فكرة عن السبب. الأنظمة الحالية التي أعتني أنها تعمل بشكل جيد بقدر ما أستطيع أن أقول ولكن أود أن أعرف ما هي المشكلة الفعلية هي البحث بشكل أفضل.

هل يمكن لأي شخص أن يسقط بعض الضوء عليه من فضلك؟

يحرر: http://www.rte.ie/business/2017/0105/bug.html. - معلومات حولها تؤثر على بطاقات الائتمان في ألمانيا

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

المحلول

العديد من البروتوكولات المستخدمة في الخدمات المصرفية والاتصالات - بما في ذلك بروتوكول SMS - تشفير السنة كما BCD. في بايت واحد.

من 2000-2009، يمكن للمرء أن يخطئ بسهولة في تفسير السنة كرقم ثنائي قياسي لأن الترميز سيكون هو نفسه:

Encoding  Binary-interpreted  BCD-interpreted
0x01      2001                2001
0x02      2002                2002
...
0x09      2009                2009
0x10      2016                2010
...

من المحتمل أن يكون سبب علة Windows Mobile.

نصائح أخرى

تفسير واحد ممكن هو في المقال أدناه

http://www.theregister.co.uk حتى الآن/01/05/symantec_y2k10_bug/

يذكرني بمقالتك الحديثة حول إصلاحات الأخطاء Y2K الرخيصة والقذرة حيث وضع بعض المبرمجين غير الضميرين بسيطة إذا كان <10 = 20XX خلاف ذلك التاريخ 19xx

كان Spamassassin قاعدة للاحتفال بالتواريخ بعيدة جدا في المستقبل كما البريد المزعج:

/20[1-9][0-9]/

جاء الإصلاح بعد أيام من فوات الأوان، لكنه بسيط للغاية:

/20[2-9][0-9]/

أراك مرة أخرى في عشر سنوات.

لدي نظام في العمل يستخدم حقل عام رقم واحد. نعم. رقم واحد. لذلك السبب في فشل هذا النظام هو أن "2000" يتم التعبير عنها كما هو "2010".

كان الشخص الذي سمعته عنه هو إصلاحات سريعة فعل الناس من أجل Y2K دون التفكير فيه. لذلك إذا كان xx <10 ثم 20xx آخر 19xx.

قد يكون من المقرر أن يكون المطورون الشباب الذين بدأوا مهنهم بعد Y2K ويستخدمون رقمين لتمثيل السنة.

لقد تعتني بقليل من عام 2010 فشل في موقع نهاية الأسبوع الماضي، وكان مجرد نتيجة للرقابة في الترميز.

اعتقد شخص ما أنه سيكون من الجيد تعيين قيمة عنصر القائمة إلى DateTime الحالي. Year.Now () عندما تحتوي القائمة فقط على العناصر حتى عام 2009.

ddlItem.findByText(DateTime.Now.Year.ToString())

إليك لقطة شاشة لحماية نورتون سيمانتيك نقطة النهاية

النص البديل http://img695.imageshack.us/img695/4500/152010112800am.jpg.

لطيفة حقا أن لا أحد @ سيمانتيك أبلغ عملائها ... حتى يتم نشر المقال: http://www.theregister.co.uk حتى الآن/01/05/symantec_y2k10_bug/

هذا هو وجود خطأ في مكون ينقسم السنة في جزأين. يتم استخدام الجزء الثاني في المقارنة بحيث لا يكون الرقم 10 في قاعدة 10، فهو في قاعدة 16 مما يعني أنه 0x10 = 16 (Hex).

لقد استخدمت Google Code Search العثور على البق y2010 في البرمجيات مفتوحة المصدر. وبعد بحثت عن نمط معين من شأنه أن يشير إلى وجود خطأ (استخدام "200٪ D" كسلسلة تنسيق طبيكة)، ووجد العديد من المشاريع مع هذا الخطأ. من المحتمل أن يحضر التطبيق الإبداعي لأنماط البحث أنواعا مختلفة من الأخطاء.

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