• (cs)
    Alex Papadimoulis:

    January 19, 2038 is a date which will live in infamy. It is on that day that the 32-bit integer storing the number of seconds since the beginning of The Epoch will overflow, causing death and destruction unseen by the world since the Y2K Bug.  the fix was pretty simple: the vendor shaved a zero off the sleep command.

     

    He'll be retired by then anyway .. it will be 2035 when it next crashes I take it 2038 (30 years/10).  And I'll be frist when the Forum Gods delete the fist. 

  • (cs)

    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

  • (cs) in reply to GoatCheez
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.
  • Colin (unregistered)

    I assume that the script ending would somehow kill the oracle server?  Ergo, a large delay was introduced so that the script wouldn't terminate thus keeping the oracle server running.

    If not, then what could you fathom to justify a delay to kill the server?

    CAPTCHA: wiskey.  I think the script writer had been drinking too much of that.

  • rammadman (unregistered) in reply to Jeff S

    Got to love code that requires continued maintance

  • (cs)

    If you work with unix enough, you see plenty of epoch errors. I've met plenty of windows guys who don't even understand the reasoning behind it...."The number of seconds since 1/1/70? WTF?"

    On the other hand, the epoch stuff will be much easier to correct than the stupid y2k error, because the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

  • (cs) in reply to Jeff S
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.

    Joke? You haven't been enough time maintaining other people's programs, man :)

    Who knows what catastrophic failure could have happened if the programmer had commented out the sleep and stop lines! Probably the sleep line and the stop line are there to prevent some weird condition where oracle won't stop after you exit the script. Then, they forgot to add a comment about the weird condition, and thus a WTF was born.

    Been there, done that.

  • (cs)

    And the Oracle is still sleeping to this very day, waiting for the end of time, when it will cleave the mountain and stride forth in glory, prophesying the apocalypse...

  • (cs) in reply to GoatCheez
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...


    May be just me, but when I fix a typo, I do it by adding and removing characters until it accurately reflects what I was trying to convey.
  • JoeBloggs (unregistered)
    Alex Papadimoulis:
    It was pretty clear why the script failed. Time passed 2^31-10^9 that weekend, so the sleep command was overflowing and terminating, and thus the database was shut down. No one, including the vendor, could explain why their startup script issued 30+ year sleep command and then a shutdown, but the fix was pretty simple: the vendor shaved a zero off the sleep command.

    Shaving a zero off could be a problem. Oracle is the sort of program that tends to be running for a while, and shaving a zero off the "sleep" command means that the system could unexpectedly go down in three years or so.

  • (cs) in reply to rammadman
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]
  • (cs)

    Alex Papadimoulis:

    start oracle
    sleep 1000000000
    stop oracle

    <FONT face=Tahoma>But why 1000000000??? Why stop oracle? oh my head hurts...

    I guess its a security feature, the app will not work unless you renew your license with the vendor...



    </FONT>

  • MBV (unregistered) in reply to Satanicpuppy

    You are in good company. I've heard that scentence too many times lately :P

  • Forgottenlord (unregistered)

    Guess no one was working there 15+ years before when it went down the last time.....

  • (cs) in reply to Jeff S
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.


    I'm pretty sure I was trying to post a humorous comment. I tend to attempt funny comments every now and then. Thanks for riding me so hard Jeff.
  • uber1024 (unregistered) in reply to Satanicpuppy
    Satanicpuppy:
    the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.


    One of my clients is a huge block of carbon-14, so it's not okay to them.
  • (cs) in reply to Satanicpuppy

    Satanicpuppy:
    64 will last 584,942,417,355 years, which should be enough for anyone.

    Well we are at least 24000,000,000 years away from the 'Big Crunch', so 64 should do for now.  Any more and the scope could possibly be beyond this universe and our budget.

    http://en.wikipedia.org/wiki/Big_Crunch

  • Argh (unregistered)

        So no one, not even Kvan had heared of "nohup". Oh well, Unix admins aren't what they used to be. Fscking kids at the weel.

  • (cs) in reply to Enric Naval
    Enric Naval:
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.

    Joke? You haven't been enough time maintaining other people's programs, man :)

    Who knows what catastrophic failure could have happened if the programmer had commented out the sleep and stop lines! Probably the sleep line and the stop line are there to prevent some weird condition where oracle won't stop after you exit the script. Then, they forgot to add a comment about the weird condition, and thus a WTF was born.

    Been there, done that.



    If only that were true .... I feel like I "maintain" more than I write these days ....

    The joke wasn't that they fixed it by removing the zero, the joke was that it was fixed at all ....
  • (cs) in reply to GoatCheez
    GoatCheez:
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.


    I'm pretty sure I was trying to post a humorous comment. I tend to attempt funny comments every now and then. Thanks for riding me so hard Jeff.


    There I go again with my unprovoked personal attacks on you.  I apologize, it will not happen again, I did not realize it was you who I responding to.
  • (cs)

    I can see the conversation between two developers who made the "fix":

    Dev1: Man, this sleep command is overflowing and causing the shutdown to happen immediately
    Dev2: Why are we shutting down the database after a long time?
    Dev1: Dunno... must be some REASON for it... this was HIS* project...
    Dev2: Ok... just make the number smaller so it doesn't overflow then...
    Dev1: How long should I make it for?
    Dev2: Eh, just start shaving off zeros till it doesn't overflow...
    Dev1: Sweet! Only had to take off one!
    Dev2: Done and done. Check it in.


    * HIS: that one guy who thinks he's a genius... but was self taught, never went to school for it and thus has a lot of crap that ends up on this site.

  • (cs) in reply to Forgottenlord

    Anonymous:
    Guess no one was working there 15+ years before when it went down the last time.....

    For 1000000000 it would have crashed 5/12/2006 10:13pm

    For 100000000 it will next crash 11/18/2034 2:13pm.

    For 10000000000 it would have crashed 2038-317 years or sometime in the 18th century.

    I think he should set up an autoreminder for the AM of 11/18/2034.

  • MySt1k (unregistered) in reply to uber1024

    the big bang suposedly happened 13.7 billion years ago.
    so, if your client got anything older than that, please call the astrophysicans at the nasa !

  • (cs) in reply to JBL

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>

  • Anon (unregistered) in reply to GoatCheez

    GoatCheez, why are you always wrong?

  • HA! (unregistered)

    start oracle&

    ?

  • (cs) in reply to GoatCheez
    GoatCheez:
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.


    I'm pretty sure I was trying to post a humorous comment. I tend to attempt funny comments every now and then. Thanks for riding me so hard Jeff.


    Ah, yes, the "responding to a dry joke with a dry joke" situation.  Dude 1 comments tongue-in-cheek, Dude 2 responds in kind, and Dude 1 (or Dude 3) thinks Dude 2 doesn't get Dude 1.

    It ain't worth it, man; stick with sarc tags or FileNotFound jokes.
  • (cs) in reply to Digitalbath
    Digitalbath:

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>


    As you wish.
  • (cs) in reply to Satanicpuppy

    Satanicpuppy:
    If you work with unix enough, you see plenty of epoch errors. I've met plenty of windows guys who don't even understand the reasoning behind it...."The number of seconds since 1/1/70? WTF?"

    On the other hand, the epoch stuff will be much easier to correct than the stupid y2k error, because the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

    I was around in the 60's when they said that none of this software will be running come 2000... We used to use 9/9/99 as a test-date for production transactions so we could trace problems that couldn't be reproduced in our test environments. Seemed like a good idea, until Sept 9, 1999 came up on us.

    Famous last words...

  • bcat (unregistered) in reply to JBL
    JBL:
    Digitalbath:

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>


    As you wish.


    Don't you mean "I love you"?
  • (cs) in reply to uber1024
    Anonymous:
    Satanicpuppy:
    the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

    One of my clients is a huge block of carbon-14, so it's not okay to them.

    I don't know. I hear that everything is acceptable to Inanimate Carbon Rod.

  • (cs) in reply to qqqqqq
    qqqqqq:

    Satanicpuppy:
    If you work with unix enough, you see plenty of epoch errors. I've met plenty of windows guys who don't even understand the reasoning behind it...."The number of seconds since 1/1/70? WTF?"

    On the other hand, the epoch stuff will be much easier to correct than the stupid y2k error, because the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

    I was around in the 60's when they said that none of this software will be running come 2000... We used to use 9/9/99 as a test-date for production transactions so we could trace problems that couldn't be reproduced in our test environments. Seemed like a good idea, until Sept 9, 1999 came up on us.

    Famous last words...

    Grrrr - damned edit-timeout is under 5 minutes - meant to add: <sarcasm>maybe we should just turn old WTFs upside down - in this case, use 6/6/[20]66 for test transactions - I'll be dead long before it becomes a problem again. </sarcasm>

     

  • (cs) in reply to bcat
    Anonymous:
    JBL:
    Digitalbath:

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>


    As you wish.


    Don't you mean "I love you"?

    Hmmm.  No, I don't think so.

  • Fromeo (unregistered) in reply to Otto
    Otto:
    Anonymous:
    Satanicpuppy:
    the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

    One of my clients is a huge block of carbon-14, so it's not okay to them.

    I don't know. I hear that everything is acceptable to Inanimate Carbon Rod.



    But Carbon-14's half-life is about 5,730 years, so that means about 2^(-1.02*10^8) percent of your client will be left by that point...
  • Ged (unregistered) in reply to Satanicpuppy
    Satanicpuppy:
    If you work with unix enough, you see plenty of epoch errors. I've met plenty of windows guys who don't even understand the reasoning behind it...."The number of seconds since 1/1/70? WTF?"

    On the other hand, the epoch stuff will be much easier to correct than the stupid y2k error, because the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.


    Just as "640k should be enough for anyone"... :)

    That reminds me of our Computer Science teatcher who was talking about character encodings, first mentioning the good old ASCII, then UTF-8 which apparently has all the characters we need to encode. And, he emphasized, enough to code all the Chinese and even Klingonese characters. And dudes and dudettes, he was freaking serious about the Klingons. He wasn't kidding, he was just totally out there. :D
  • (cs) in reply to Digitalbath
    Digitalbath:
    Anonymous:
    JBL:
    Digitalbath:

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>


    As you wish.


    Don't you mean "I love you"?

    Hmmm.  No, I don't think so.


    No Dread Pirate Roberts here this time, alas.
  • (cs) in reply to Digitalbath
    Digitalbath:

    JBL:
    Anonymous:
    Got to love code that requires continued maintance

    Heck, if they upgrade the OS to 64-bit, then no problem.

    On the other hand, I'll be in my early 70's by then. I look forward to not receiving a Social Security check for a few years while the govt sorts it out on their 30-year-old servers.

    On the other other hand, that check will be worth about 85 cents anyway, yes?

    [and how long until someone manages to fit "none of us has a girlfriend anyway" in here?]

    Stop it you crazy sexist.  How dare you refer to women as "girlfriends."  That singles them out as compared to "boyfriends."  Please use "significant other" from now on, or I will stick our my lower lip and pout.

    </OverflowingSarcasm>



    Sure thing dollface, now can you go make me a sandwitch?

    </OverflowingSexism>
  • yet another Alex (unregistered) in reply to HA!

    Too easy. Besides how can you possibly start a process and not provide means to terminate it :P

  • (cs) in reply to GoatCheez
    GoatCheez:
    Jeff S:
    GoatCheez:
    The fix was to shave a 0 off of the sleep time? Ohhhhhhhhhhhhhhhhhhhhhhhhhhhkaaaaaaaaaaaaaaaaaaaaay..... Last time I checked, a fix solves a problem, not delays it, but what do I know...

    I'm pretty sure Alex meant that as a joke.  he does that now and then.


    I'm pretty sure I was trying to post a humorous comment. I tend to attempt funny comments every now and then. Thanks for riding me so hard Jeff.

    I don't mean to pick on you personally, but this is a good example of how explaining a joke is just not funny.

    There is a band called The Magnetic Fields and they released a set of three albums titled 69 Love Songs. The lead singer was asked if he was bothered by answering the same interview questions over and over. His response was along the lines of:

    "I don't mind most of the background questions, because those are just part of a standard interview. But I really get annoyed when interviewers ask, 'So why is it 69 love songs? Huh? Huh?', as if they were the one making the joke instead of, you know, I was."

    Alex's statement of the fix was written to seem wise to the foolish and foolish to the wise. Your response only serves to show foolishness to fools. We are all wise here so it isn't necessary and it ain't funny.

  • (cs) in reply to Fromeo
    Anonymous:
    Otto:
    Anonymous:
    Satanicpuppy:
    the next common datasize up from 32 is 64, and 64 will last 584,942,417,355 years, which should be enough for anyone.

    One of my clients is a huge block of carbon-14, so it's not okay to them.

    I don't know. I hear that everything is acceptable to Inanimate Carbon Rod.



    But Carbon-14's half-life is about 5,730 years, so that means about 2^(-1.02*10^8) percent of your client will be left by that point...


    Actually, it's 2^-(1.02*10^8) percent.   (-1.02*10^8 ends up being positive)

    (Of course, everyone knows what you meant.  But why participate in the TheDailyWTF forums without the chance to try to sound smart by pointing out minutae even though everyone will forget by tomorrow?)


  • WTF Batman (unregistered) in reply to Argh
    Anonymous:
        So no one, not even Kvan had heared of "nohup". Oh well, Unix admins aren't what they used to be. Fscking kids at the weel.


    nohup would disconnect the "start orible" from the parent script (by design), and the parent script would exit. The problem is that lots of monitoring software (esp. the kind that restarts a process if it goes down) checks on the PID that was created when it kicked off the process to begin with.

    If you use nohup, the script sees the parent script die, thinks Orible died, and restarts it, resulting in another instance of Orible. It'll likely figure out it's a dupe, but will take up 100% CPU and 2 gigs of ram to do it. Repeat many times, very quickly, until max_restarts is reached.
  • Eric L (unregistered) in reply to lucky luke

    lucky luke:
    I* HIS: that one guy who thinks he's a genius... but was self taught, never went to school for it and thus has a lot of crap that ends up on this site.

    Or he could be the person who went to some fancy college that somehow thinks that 3 hours a week for 7 months out of the year for 4 years is better than 10 years experience in seeing these things and being forced to fixem

     

    Captcha : whiskey (pity it wasn't tequila)

  • Red Bull (unregistered) in reply to lucky luke

    In my experience, the self-taught programmers are the most motivated and practical of all developers, having learned the lessons the hard way.

  • Ann Coulter (unregistered) in reply to Bus Raker
    Bus Raker:

    Satanicpuppy:
    64 will last 584,942,417,355 years, which should be enough for anyone.

    Well we are at least 24000,000,000 years away from the 'Big Crunch', so 64 should do for now.  Any more and the scope could possibly be beyond this universe and our budget.

    http://en.wikipedia.org/wiki/Big_Crunch



    mmmm.... big crunch
  • (cs) in reply to WTF Batman
    Anonymous:
    Anonymous:
        So no one, not even Kvan had heared of "nohup". Oh well, Unix admins aren't what they used to be. Fscking kids at the weel.


    nohup would disconnect the "start orible" from the parent script (by design), and the parent script would exit. The problem is that lots of monitoring software (esp. the kind that restarts a process if it goes down) checks on the PID that was created when it kicked off the process to begin with.

    If you use nohup, the script sees the parent script die, thinks Orible died, and restarts it, resulting in another instance of Orible. It'll likely figure out it's a dupe, but will take up 100% CPU and 2 gigs of ram to do it. Repeat many times, very quickly, until max_restarts is reached.

    Uh, I hope nobody is reading this thread for technical tips - better read a paragraph or two in the  online docs before trying anything. You need to respect whatever technology you are using, whether it is a kerosene lamp or system software, or you will get burned. In this case, the Oracle executable has rules for how it is invoked, and it is not an interactive program you can run in the background.

    Good example of why Oracle has a bad name in these parts...
  • Dazed (unregistered) in reply to AlpineR
    AlpineR:
    We are all wise here ...

    My irony meter started to overheat when it encountered the comment that Notepad was a slightly underpowered editor in a previous thread. After this one it's emitting thick clouds of smoke ...

  • (cs)

    The REAL WTF is that no one actually read and/or understood the WTF which makes no sense whatsoever.  UNIX's sleep command sleeps for N seconds, not until there are X seconds left in the EPOCH.  WTF?  The startup script should have run for 1000000000 seconds from the time it was started, regardless of the date.

  • (cs) in reply to Jojosh_the_Pi
    Jojosh_the_Pi:
    (-1.02*10^8 ends up being positive)

    No, it doesn't.

    (But why participate in the TheDailyWTF forums without the chance to try to sound smart by pointing out minutae even though everyone will forget by tomorrow?)


    graywh:
    The REAL WTF is that no one actually read and/or understood the WTF which makes no sense whatsoever.  UNIX's sleep command sleeps for N seconds, not until there are X seconds left in the EPOCH.  WTF?  The startup script should have run for 1000000000 seconds from the time it was started, regardless of the date.

    I think the problem is, that when you let it sleep for N seconds, it will store something like "awake at now+N" which - in this case - overflows.
  • (cs) in reply to graywh
    graywh:
    The REAL WTF is that no one actually read and/or understood the WTF which makes no sense whatsoever.  UNIX's sleep command sleeps for N seconds, not until there are X seconds left in the EPOCH.  WTF?  The startup script should have run for 1000000000 seconds from the time it was started, regardless of the date.


    I believe the explanation is something along the lines of when 1000000000 is added to the internal time, then the overflow occurs. The error didn't arise until currentdate+sleeptime>datatypesize.
  • (cs)

    I bet that when the original programmer comes back to check on his system 30 years from now he'll be pissed that someone re-booted the server and messed everything up ...

Leave a comment on “The Harbinger of the Epoch ”

Log In or post as a guest

Replying to comment #:

« Return to Article