{"id":21367,"date":"2019-12-04T09:52:31","date_gmt":"2019-12-04T08:52:31","guid":{"rendered":"http:\/\/blog.netspark.de\/?p=21367"},"modified":"2019-11-29T16:20:16","modified_gmt":"2019-11-29T15:20:16","slug":"when-software-suffers-from-bugs","status":"publish","type":"post","link":"https:\/\/blog.netspark.de\/?p=21367","title":{"rendered":"When software suffers from bugs"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-Post-Thumb wp-image-6399\" src=\"https:\/\/blog.netspark.de\/wp-content\/uploads\/2015\/02\/Virus1-64x64.png\" alt=\"\" width=\"64\" height=\"64\" srcset=\"https:\/\/blog.netspark.de\/wp-content\/uploads\/2015\/02\/Virus1-64x64.png 64w, https:\/\/blog.netspark.de\/wp-content\/uploads\/2015\/02\/Virus1-150x150.png 150w, https:\/\/blog.netspark.de\/wp-content\/uploads\/2015\/02\/Virus1.png 256w\" sizes=\"auto, (max-width: 64px) 100vw, 64px\" \/>In this case it affects Splunk, a monitoring tool.<br \/>\nWhat we remembered from the Y2K bug was the<br \/>\nfact that computers with dual-digit year numbers<br \/>\nwere unable to handle dates after 31-12-1999.<\/p>\n<p><!--more-->Unix was a bit further and used the UTC (Unix time code) which provides a unique 64-bit second-counting timestamp.<\/p>\n<p>The timestamp started counting in 1970, beginning with 0 (zero) at 01-01-1970 00:00:00.<\/p>\n<p>Given the fact that 2<sup>64<\/sup>-1 = 18,446,744,073,709,551,616, this would give us a correct timer till 07-11-438500936 07:00:14<\/p>\n<p>438 million years is quite some time and we doubt, mankind would be able to survive THAT long. in 400 million years, the earth has passed 6 complete vegetative changes when it comes to non floral lifeforms and mankind as such wouldn&#8217;t be an exception.<\/p>\n<p>However if there&#8217;s a machine running THAT long and fulfinning life-supporting tasks, then life supported by it, if unattended, would stop.<\/p>\n<p>But this is far, faaaar away in the future, so why bother at all? Well, it was just some weekend mindstorming coming on when reading about the Splunk problem, not being able to handle Unix timestamps properly beyond 1&#8217;599&#8217;999&#8217;999. (13-09-2020 12:26:39).<\/p>\n<p>But then what about timestamps before 1&#8217;500&#8217;000&#8217;000 (14-07-2017 02:39:59)?<\/p>\n<p>Or was it just for a lazy programmer who thought: &#8220;Why bother for any digit beyond the 100-million mark?&#8221;<\/p>\n<p>We won&#8217;t know for sure&#8230;<\/p>\n<p>But Splunk has received a bugfix already with the UTC timestamp parser being able to work beyond the mentioned timestamp. So with a little luck, Splunk will work properly nearly to the end of the year 219&#8217;250&#8217;468. Enough time to think of a timecode that goes 2<sup>128<\/sup>-1&#8230;<\/p>\n<p>Oh, for those asking what 2<sup>128<\/sup>-1 would be in full digits: 340&#8217;282&#8217;366&#8217;920&#8217;938&#8217;463&#8217;463&#8217;374&#8217;607&#8217;431&#8217;768&#8217;211&#8217;455<\/p>\n<p>Thats enough time &#8211; until the stars have burned&#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this case it affects Splunk, a monitoring tool. What we remembered from the Y2K bug was the fact that computers with dual-digit year numbers were unable to handle dates after 31-12-1999.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[55,4,3,2949,19],"tags":[1919,4070,4193,4191,4192,4194],"class_list":["post-21367","post","type-post","status-publish","format-standard","hentry","category-computer-2","category-curiosities","category-news","category-technology","category-thoughts-2","tag-bug","tag-bugfix","tag-parsing","tag-splunk","tag-utc","tag-y2k"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.netspark.de\/index.php?rest_route=\/wp\/v2\/posts\/21367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.netspark.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.netspark.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.netspark.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.netspark.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21367"}],"version-history":[{"count":0,"href":"https:\/\/blog.netspark.de\/index.php?rest_route=\/wp\/v2\/posts\/21367\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.netspark.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.netspark.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.netspark.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}