TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

2038: Only 21 years away

682 pointsby corbetabout 8 years ago

41 comments

archgroveabout 8 years ago
This is (serious) a part of my retirement planning. I'll be mid-50s when this hits, and have enough low level system knowledge to be dangerous. In about 15 years, I'll start spinning up my epochalypse consultancy, and I'm expecting a reasonable return on investment in verifying systems as 2038 compliant.
评论 #13923505 未加载
评论 #13924142 未加载
评论 #13925003 未加载
评论 #13923442 未加载
评论 #13923588 未加载
评论 #13923191 未加载
评论 #13924120 未加载
评论 #13926415 未加载
评论 #13923327 未加载
评论 #13923410 未加载
评论 #13924540 未加载
评论 #13928086 未加载
评论 #13928338 未加载
评论 #13928311 未加载
评论 #13924183 未加载
antirezabout 8 years ago
Using a 64 bit timestamp will only move the problem 292 million years forward, so probably the best solution is to use a variable length field.
评论 #13923453 未加载
评论 #13924527 未加载
评论 #13927449 未加载
评论 #13923525 未加载
评论 #13923538 未加载
评论 #13924489 未加载
评论 #13923578 未加载
评论 #13926624 未加载
评论 #13926809 未加载
评论 #13929480 未加载
评论 #13929775 未加载
Taniwhaabout 8 years ago
This is not a problem for 20 years from now, I&#x27;ve already had to find and fix 2038 bugs ... there was an openssl bug (now fixed) in which cert beginning and ending date math was done in 32-bits ... certs with an end date from a little after 2038 would fail when compared with the current time.<p>Fortunately for me there was already a fixed OpenSSL already available once I&#x27;d found the bug in it.
gbrown_about 8 years ago
&gt; statx() will serve as the year-2038-capable version of the stat() family of calls<p>Does this seem horrible to anyone else? Why not fix stat()? Does this syscall have to be so highly preserved even when it will be broken?<p>One of the advantages of the OpenBSD approach of being able to make intrusive changes saw their time_t made 64-bit in the 5.5 release in 2014.<p><a href="https:&#x2F;&#x2F;www.openbsd.org&#x2F;55.html" rel="nofollow">https:&#x2F;&#x2F;www.openbsd.org&#x2F;55.html</a><p>Admittedly this is much harder for Linux as they can&#x27;t make the change an verify in a single place due to the separation of kernel and userland&#x2F; the fact Linux has many distros.
评论 #13923474 未加载
评论 #13923458 未加载
评论 #13923918 未加载
评论 #13924246 未加载
评论 #13927848 未加载
_uhtuabout 8 years ago
Is there a reason why they decided to store time as seconds from 1970? In a 32-bit integer nonetheless. It seems like basic logic would have lead the original designers to make it at least 64 bits so that you&#x27;d never overflow it (with a 64 bit time we&#x27;d be good til the year 292277026596).<p>64 bits would also allow you to also cover the entirety of history, all the way back to 13.7 billion years ago when the Universe came into existence, but instead the UNIX time format is shackled to be within ~68 years of 1970.
评论 #13923712 未加载
评论 #13923451 未加载
评论 #13923241 未加载
评论 #13923244 未加载
评论 #13924492 未加载
评论 #13923231 未加载
评论 #13923357 未加载
评论 #13923206 未加载
评论 #13923259 未加载
评论 #13923220 未加载
评论 #13923219 未加载
评论 #13927432 未加载
评论 #13923274 未加载
评论 #13923242 未加载
Jachabout 8 years ago
Let&#x27;s move to Urbit&#x27;s 128 bit system: <a href="https:&#x2F;&#x2F;github.com&#x2F;urbit&#x2F;urbit&#x2F;blob&#x2F;master&#x2F;include&#x2F;vere&#x2F;vere.h#L762" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;urbit&#x2F;urbit&#x2F;blob&#x2F;master&#x2F;include&#x2F;vere&#x2F;vere...</a><p><pre><code> &#x2F;* Urbit time: 128 bits, leap-free. ** ** High 64 bits: 0x8000.000c.cea3.5380 + Unix time at leap 25 (Jul 2012) ** Low 64 bits: 1&#x2F;2^64 of a second. ** ** Seconds per Gregorian 400-block: 12.622.780.800 ** 400-blocks from 0 to 0AD: 730.692.561 ** Years from 0 to 0AD: 292.277.024.400 ** Seconds from 0 to 0AD: 9.223.372.029.693.628.800 ** Seconds between 0A and Unix epoch: 62.167.219.200 ** Seconds before Unix epoch: 9.223.372.091.860.848.000 ** The same, in C hex notation: 0x8000000cce9e0d80ULL ** ** New leap seconds after July 2012 (leap second 25) are ignored. The ** platform OS will not ignore them, of course, so they must be detected ** and counteracted. Perhaps this phenomenon will soon find an endpoint. *&#x2F;</code></pre>
gregmacabout 8 years ago
I wonder how much attention this will get from the general public and non-technical managers? After all, programmers predicted doom for Y2k, and then &quot;nothing happened&quot;.<p>This is almost the same situation, except I assume slightly less understandable to a non-programmer (you have to understand seconds-since-1970 and why we&#x27;d do that instead of storing the date as text, powers of 2 and the difference between 32 and 64-bit).
评论 #13924125 未加载
fgandiyaabout 8 years ago
Speaking of the 2038 bug, I&#x27;m impressed with Paul Ryan&#x27;s rhetoric [0]<p>“I asked CBO to run the model going out and they told me that their computer simulation crashes in 2037 because CBO can’t conceive of any way in which the economy can continue past the year 2037 because of debt burdens,” said Ryan.<p>I love politicians.<p>[0]-<a href="http:&#x2F;&#x2F;www.cnsnews.com&#x2F;news&#x2F;article&#x2F;ryan-debt-track-hit-800-percent-gdp-cbo-cant-conceive-any-way-economy-can-continue-past" rel="nofollow">http:&#x2F;&#x2F;www.cnsnews.com&#x2F;news&#x2F;article&#x2F;ryan-debt-track-hit-800-...</a>
goodplayabout 8 years ago
I Wonder how DRM anti-circumvention laws will mix with this; You have a locked-down device you use, depend on, and know is defective, but you are not allowed to hack the device to fix it.
lazyjonesabout 8 years ago
Meh, we&#x27;ll just redefine time_t as (signed) seconds since 2000 or so and subtract 30 years in seconds from all timestamps ... ;-)
评论 #13925661 未加载
评论 #13923314 未加载
steffanabout 8 years ago
Despite the cause being the end of the UNIX epoch in 2038, problems will become apparent a much sooner. Like the Y2K issue - in ~2031 (or sooner), systems that track expiration dates or contract terms will start to run into dates past 2038. As 2038 approaches, more systems will be affected (there are relatively fewer expiration dates 7 years out vs. 5 or 3).<p>The effects of this problem are closer than they seem - only 14 years away or less
pkulakabout 8 years ago
Is 2038 the end of a signed int? If so, can&#x27;t we just make it unsigned and buy ourselves another 70 years or so? I don&#x27;t know how much of an issue not being able to represent time before 1970 is, but for timestamps that doesn&#x27;t seem like it would be an issue.
评论 #13923847 未加载
评论 #13925258 未加载
mrkgnaoabout 8 years ago
&gt; BSD-based distributions have the advantage of being able to rebuild everything from scratch, so they do not need to maintain user-space ABI compatibility in the same way.<p>I don&#x27;t understand, not knowing much about BSD. Is this an LTS&#x2F;support thing? Can someone explain?
评论 #13923452 未加载
评论 #13923456 未加载
评论 #13923443 未加载
paxswillabout 8 years ago
Newton (Apple&#x27;s old PDA) had a similar problem in 2010 [0]. In short, while the base system and C++ interfaces used 32-bit unsigned ints with a base of 1904-01-01, NewtonScript uses 30-bit signed ints, with a working base of 1993-01-1, overflowing in 2010. The fix was a binary patch that changed the time bases.<p>0: <a href="http:&#x2F;&#x2F;40hz.org&#x2F;Pages&#x2F;Newton%20Year%202010%20Problem" rel="nofollow">http:&#x2F;&#x2F;40hz.org&#x2F;Pages&#x2F;Newton%20Year%202010%20Problem</a>
评论 #13927955 未加载
equaluniqueabout 8 years ago
Surprisingly, when Googling for 2038 &amp; FreeBSD, the 2nd highest recommended search result was:<p>2038年問題 freebsd<p>I do not speak, write, or search for things using Chinese characters. Seems as though this problem must have been heavily Google&#x27;d for by Chinese speakers - why else would it have popped up in my search recommendations?<p>Btw: Google Translate tells me 年問題 means &quot;year problem&quot;<p>Perhaps this information was important for ensuring the safety of Kylin, which started out as a sort of Chinese DARPA-style project to get the state off of MS Windows. Kylin was announced in 2006. It was supposedly based on FreeBSD 5.3.<p>Strange thing is, Kylin later became known to use the Linux kernel (with a Ubuntu influence). - Google search recommendations, which should be based on a recent volume of searches, if they did suggest anything about Kylin development, should yield &quot;2038年問題 linux&quot; rather than &quot;2038年問題 freebsd&quot; - Maybe some of those FreeBSD-Kylin systems are still being heavily used.<p>Or perhaps there are a lot of embedded systems being produced in China which use FreeBSD.
sixdimensionalabout 8 years ago
On a side but related note, I don&#x27;t understand why many programming languages and databases don&#x27;t have a positive and negative infinity date placeholder&#x2F;token value that is standardized and cross platform. Negative infinity date is &quot;past&quot;, positive infinity date is &quot;future&quot;. This would solve the common problem of what date to use when you are trying to talk about unknown date in the future or unknown date in the past, rather than using weird placeholders like 9999-12-31 or 1900-01-01 or other magic numbers.
评论 #13926832 未加载
评论 #13927874 未加载
mring33621about 8 years ago
More gravy for Initech!
runeksabout 8 years ago
Using a 64 bit unsigned integer with nanosecond resolution gives us 585 years (2^64&#x2F;1e9&#x2F;60&#x2F;60&#x2F;24&#x2F;365) after 1970 to come up with a new format. This, combined with using some other format to describe dates before 1970, seems like a sensible solution to me.
Walkmanabout 8 years ago
The problem is not with developers or tech savvy people. Everyome will know about this by then and solutions will be applied. The problem is with end users, who will only realize this after the shit hits the fan and their fridge will go crazy or there will be a car crash.
评论 #13927559 未加载
评论 #13927051 未加载
granfalloonabout 8 years ago
So what are we calling this one, Y2K38?<p>I&#x27;ve heard people talk about the risk to cars, but what other kinds of embedded systems will still be in use after 20 years? Maybe certain industrial machines?
jwatteabout 8 years ago
<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=7678847" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=7678847</a>
jayfluxabout 8 years ago
This maybe a stupid question, but could we not use Bignum as a datatype to solve this? or would it be too computationally expensive?
snvzzabout 8 years ago
This is a good reason to run anything but Linux, particularly on 32bit hardware.<p>All BSDs have, as far as I&#x27;m aware of, solved this years ago.
评论 #13926298 未加载
Spooky23about 8 years ago
Fortunately, my retirement system has a project active right now to address this, and I will be retired in late 2032.
ameliusabout 8 years ago
Y2K didn&#x27;t cause any serious blips on the stock market, so 2038 will probably pass without many even noticing.
halcyondazeabout 8 years ago
As a layman here, can someone explain this what the significance of the year 2038 is to me?
评论 #13924210 未加载
评论 #13924193 未加载
评论 #13924450 未加载
njharmanabout 8 years ago
My retirement, only 18 years away. I&#x27;m real sorry I&#x27;m gonna miss this mess, NOT!
spencermountainabout 8 years ago
for the others curious, seems javascript handles dates with 64-bit floating points, which have a maximum of 9007199254740991.<p>The highest date I could make with node+chrome was &#x27;Dec 31 275759&#x27;, which cozies-up pretty close to that (8639977899599000)
评论 #13927606 未加载
AndrewKemendoabout 8 years ago
Can someone ELI5 this please? The only thing that seems comparable that I know of was the &quot;Y2K bug&quot; - but reading through this it seems like this is actually a big problem - as opposed to the techno-illiterate panic of Y2K.<p><i>That work, he said, is proceeding on three separate fronts</i><p>I can&#x27;t read that without thinking of the turbo encabulator.
评论 #13924789 未加载
shurcooLabout 8 years ago
Is software written in Go (that uses &quot;time&quot; package) going to be affected?
评论 #13925633 未加载
kebmanabout 8 years ago
Hey guys! I just invented a new form of music! :D Epochalypso!
pagadeabout 8 years ago
What about NTP epoch which has 2036 problem?
Practicalityabout 8 years ago
Here I thought it was a post on the singularity. It might be ironic if all the AI starts running into all sorts of 2038 bugs and this ends up being a huge issue.
miesmanabout 8 years ago
With any luck I&#x27;ll be dead by then.
rbanffyabout 8 years ago
We should stock up on IBM 5100&#x27;s
carapaceabout 8 years ago
(Does anybody remember that time traveler?)
grabcocqueabout 8 years ago
And IPv6 penetration will have hit 20%.
评论 #13923544 未加载
评论 #13923137 未加载
评论 #13923571 未加载
评论 #13923750 未加载
madphroditeabout 8 years ago
Will be 70 and happily oblivious.
DoodleBuggyabout 8 years ago
Y2K round 2
geoffreyhaleabout 8 years ago
Y2K
iamgopalabout 8 years ago
Call me stupid, but I think computing will be much different to worry about this. ( single chip os or iot to the level that each hardware component is separate, or something else...)
评论 #13924055 未加载
评论 #13924584 未加载
评论 #13923659 未加载
评论 #13923518 未加载
评论 #13923661 未加载
评论 #13925264 未加载
评论 #13923843 未加载
评论 #13923516 未加载
评论 #13923489 未加载