magnify
Home Microsoft Ürün Ailesi 5 Ocak 2017’yi 6 Ocak 2017’ye Bağlayan Gece Yarısında Windows Sistemlerinde Yaşanan Sorun Hakkında
formats

5 Ocak 2017’yi 6 Ocak 2017’ye Bağlayan Gece Yarısında Windows Sistemlerinde Yaşanan Sorun Hakkında

5 Ocak 2017’yi 6 Ocak 2017’ye bağlayan gece yarısında Windows üzerinde çalışan bazı uygulamalarda, uygulama ile sistem saati arasında 1 saat fark oluştuğu ile ilgili geri bildirimler aldık. Bu fark nedeniyle uygulamaların crash olması, yüksek CPU değerleri kullanması ve logların 1 saat farklı yazılmış olması gibi sorunlar bildirildi.

Bu case’ler üzerinde yapılan çalışmalarla ilgili olarak edinilen ilk bulgular şu şekilde ;

Sorun yaşanan sunucular üzerinde İşletim sistemi saatinin değişmediği gözlemlenmiştir.

 

30 Ekim 2016 tarihinden sonra gün ışığından yararlanma uygulamasının kullanılamayacağı açıklandı. Bu nedenle 30 Ekim 2016 tarihinde DST uygulamasını sonlandırmak ve Türkiye’nin saat dilimini kalıcı olarak UTC+2’den UTC+3’ye taşıyacak değişiklikleri yaptık.

Bu değişiklik nedeniyle 2016 yılında DST kullanılan kış saati, DST kullanılan yaz saati ve DST kullanılmayan yaz saati olarak 3 farklı saat tanımlamak durumunda kaldık. Windows işletim sistemlerine bu değişikliklerin bir güncelleştirmeyle yüklenmesi sağlanmıştır. Güncelleştirme sonrasında 2016 ve 2017 yılları için farklı saat dilimi ve saat değişikliği bilgileri içeren registry kayıtları vardır. Windows işletim Sistemleri 1 Ocak 2017’den sonra TZI (Time Zone Information) değerini 2017 değeriyle güncellemektedir. Bu nedenle İşletim sistemi seviyesinde saat değişikliği olmamaktadır.

Ancak bazı uygulamaların 2016 TZI değerini cache’lemesi nedeniyle Ocak ayının ilk haftasının 5.günü (6 Ocak) saat 00:00’da sistem saatinin değişeceğini düşünerek uygulama üzerinde saat değişikliğine gitmiştir. İşletim sistemi, 2017 değerine göre sistem saatini değiştirmediği için uygulamalar üzerinde bahsedilen problemler yaşanmıştır. Bunun engellenmesi için uygulamanın cache’nin güncellenmesi gerekir. Exchange, CAS ve IIS gibi uygulamalar benzer şekilde TZI değerini cache’lemekte ancak belirli periyotlarda güncellemektedir. Bu nedenle 1 Ocak – 6 Ocak arasında bu uygulamalar güncellemesini yapabildiği için sorun gözlemlenmemiştir.

 

Uygulamalar servis veya işletim sisteminin yeniden başlatılmasıyla güncellemesini tamamlamıştır. Güncelleme sonrasında, uygulamalar 2017 yılına ait TZI değerini kullanmaya başlamışlarsa yeniden benzer bir sorun olmasını beklemeyiz. Çünkü 2017 TZI değerinde DST tamamen devre dışı bırakılmış ve herhangi bir tarihte saat değişikliği gözlemlenmemektedir.

 

Ek olarak .Net uygulamalarında DateTime.Now hesaplarının yine 2016 yılına ait TZI değerinin farklı olmasından dolayı “bazen” yanlış yorumlandığı ile ilgili geri bildirimler aldık. .Net’in Now işlemini optimize etmesi için DST kurallarını cache’lemesi bu soruna sebep olabilir. Aynı şekilde uygulamanın restart edilmesiyle bu sorun çözülebilir. Şu an Türkiye’nin tekrardan kış saatine geçmesi veya saat dilimi değişikliği yapması beklenmemektedir. Uygulama geliştiriciler böyle bir olasılığı düşünerek kodlarını güncellemek isterlerse TimeZoneInfo.ConvertTime ile sorunun önüne geçebilirler.

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
5 Ocak 2017’yi 6 Ocak 2017’ye Bağlayan Gece Yarısında Windows Sistemlerinde Yaşanan Sorun Hakkında için yorumlar kapalı  comments 
© Hakan Uzuner
credit