Sporkmonger

purveyor of fabulously ambiguous eating utensils

Y2038 Feed

Posted by sporkmonger
Written December 28th, 2005

So, I’m curious, how many parsers/feed readers show an incorrect date for this feed or just blow up for that matter?

So far in my testing, NetNewsWire has been the only parser that correctly displays the date given in the feed. FeedTools can’t parse the date and reverts to the current date and time instead. So does Google Reader and Bloglines, as well as most of the online feed readers I tried it out with.

The Feed Validator does helpfully warn me of an “implausible date”, but the feed is perfectly valid Atom 1.0, so far as I can tell.

I’m honestly not too worried about the issue of parsers not being able to handle the concept of 2038 when it roles around. By 2038, the concept of feeds will likely seem utterly obsolete. But I can’t help but wonder if some parsers will end up tossing an exception on this feed. I couldn’t find anything in Mark Pilgrim ’s UFP test suite for dates being out of range. The largest date among the tests seems to be some time in 2004.

  1. Sam Ruby Sam Ruby :
    Written December 31st, 2005 at 05:08 PM

    “Implausible date” simply means that the date is in the future – in other words, the date is syntatically correct, but unlikely to be accurate.

  2. James Holderness James Holderness :
    Written December 31st, 2005 at 08:24 PM

    Snarfer displays the date for the entry as 1/20/2110. I’m assuming that’s what it’s supposed to do.

  3. Mark Pilgrim Mark Pilgrim :
    Written January 2nd, 2006 at 08:27 PM

    UFP 4.0.3 doesn’t parse this date correctly. You can track this as bug 1395690.

  4. Written January 2nd, 2006 at 10:09 PM

    Basically, I believe what’s happening with FeedTools (and probably any other parser that breaks) is that the date is too big to fit if it’s expressed as a time_t data type. Rollover occurs January 28th, 2038, IIRC.

  5. Written January 2nd, 2006 at 10:10 PM

    Thanks for the explanation Sam.

  6. Written January 7th, 2006 at 02:22 PM

    Incidentally, this bug is also why Google has their “non-expiring” cookie set to expire in 2038 instead of the year 3000. (Disclaimer: I couldn’t care less about a non-expiring cookie.)

  7. Mark Pilgrim Mark Pilgrim :
    Written January 16th, 2006 at 12:02 PM

    I investigated this a bit further and discovered that Python relies on a standard C library to handle all the time stuff, and the C library stops at 2038.

    http://docs.python.org/lib/module-time.html

    The third-party mxDateTime module claims to be year-2038-compliant.

    http://www.egenix.com/files/python/mxDateTime.html

    It appears to be open source (GOD DAMN IT WHY DOES EVERYONE NEED TO INVENT THEIR OWN LICENSE). It’s not listed at OSI, nor is it mentioned on FSF’s license page, but it’s been in Debian main for long enough that someone probably would have notice if it weren’t open source.

    Anyway, it’s not worth a hard dependency, but I could add a weak dependency that would use mxDateTime if it were available.

  8. Written January 17th, 2006 at 07:09 PM

    Cool, that seems like a sensible plan. I wonder if there isn’t something similar for Ruby.

  9. sahas katta sahas katta :
    Written February 26th, 2006 at 10:20 PM

    i posted about this a few months ago take a look. i ran into the issue when working with different chat applications. http://www.skattertech.com/2005/07/y2k38-bug-has-started/

Leave a Response

NOTE: I'm afraid Javascript needs to be on in order to comment.

Comments should be formatted using Textile.

Ruby code should be enclosed within a <macro:code lang="ruby"> element. Other languages are supported. For output you can simply omit the lang attribute.