Slashdot Mirror


NASA Avoids "Happy New Year" On Shuttle

ClickOnThis noted that NASA is actually avoiding a Shuttle in Space over New Years. It says "The worry is that shuttle computers aren't designed to make the change from the 365th day of the old year to the first day of the new year while in flight. NASA has never had a shuttle in space December 31 or January 1. 'We've just never had the computers up and going when we've transitioned from one year to another,' said Discovery astronaut Joan Higginbotham. 'We're not really sure how they're going to operate.'" You may notice some deja vu while reading this story. Sorry. Not much happens on Sundays :)

33 of 181 comments (clear)

  1. So.... by Anonymous Coward · · Score: 4, Funny

    they have a Y2* bug?

    Thank you, thank you, I will be here all week. Be sure to check out our Safari bingo!

    1. Re:So.... by kimvette · · Score: 2, Interesting

      There may be problems introduced into navigation systems by setting the clocks wrong.

      However: shouldn't they be able to test this in simulators?

      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
  2. Nasa shuttle software designed by Taco ;) by LiquidCoooled · · Score: 5, Insightful

    In reality isn't this a design limitation rather than a bug in the implementation?

    --
    liqbase :: faster than paper
    1. Re:Nasa shuttle software designed by Taco ;) by stunt_penguin · · Score: 2, Funny

      Pfft, 365 days should be enough for anyone.

      --
      When the posters fear their moderators, there is tyranny; when the moderators fears the posters, there is liberty.
    2. Re:Nasa shuttle software designed by Taco ;) by Iron+Condor · · Score: 2, Insightful

      In reality isn't this a design limitation rather than a bug in the implementation?

      It is. It was a deliberate choice to do things this way when the system was conceived of. Ignore the retards who keep calling this a "bug".

      Every last little detail of spaceflight depends on reliable timekeeping. Quick: you want to talk to Houston and ... where is Houston right now? How do you have to adjust your antenna and how do you have to move it per second to create a reliable link? There's just so many things that require knowing where everything is at what time that clocks are NOT something anybody wants to tinker with. Imagine the headlines if the cooling system was pointed at the sun rather than away from it because the computer had the time off by a couple minutes. And the shuttle overheated and killed everybody. All of slashdot would fall over each other telling us how "easy" it is to keep a proper clock running.

      When the lives of people are dependent on a million-and-one decisions all of which have to be timed correctly, you don't lightly tinker with the clocks. If a valve has to be opened once a day, you don't just reset the "day" counter back from 365 to 1. That's just retarded. You need to be able to rely on the fact that it is exactly one hour later now than it was an hour ago. And not suddenly 364 days and 23 hours earlier.

      If someone designed a schoolbus and said "well, this design means we're not going to use it on New Years", nobody would think anything terrible about it. Nobody would call it a "bug". But that's what the shuttle was supposed to be: a shuttle. Something that goes up, delivers a couple folks and some equipment. Then return. So you'd avoid shuttle service during one day of the year. What's the big whoop? Why do peaople call this a "problem" or a "bug"?

      The designers of the shuttle decided that they could avoid all kinds of costly and dangerous complications by not flying through the end of a year. And? This is a civilian transport vessel, fer cryin' out loud. Where is the so-called "problem" here?

      --
      We're all born with nothing.
      If you die in debt, you're ahead.
  3. Dupe by suv4x4 · · Score: 4, Insightful

    Verdict from last time:

    No they can't run linux, linux is not something you use to fly a shuttle with people in it, can't support the hardware and it was written 30 years ago.

    And no, it's not easy to fix bugs in a piece of software like this.

    1. Re:Dupe by antifoidulus · · Score: 5, Funny

      Shhhh!! You will destroy our smug sense of superiority with your facts!

  4. because it's too damned hard to .... by Lumpy · · Score: 2, Interesting

    ...sit in one on the ground and have it turned on that night. What the hell is wrong with NASA? They dont have any shuttles sitting where they can have some CS guys sitting in it over the new years event to see what happens?

    That is absolutely insane that they do not know what will happen, so they have not bothered to take a few moments and find out over the past 18 years.

    --
    Do not look at laser with remaining good eye.
    1. Re:because it's too damned hard to .... by eldavojohn · · Score: 3, Interesting
      sit in one on the ground and have it turned on that night.
      I agree with you but it's not even that hard to do. I mean, they should have test cases and simulation already to test the software, you'd think they could devote some of their time to have someone simply set all the clocks on all the hardware for the time of that night's transition ... or point the software at an NTP server and set that to the time it transitions.

      No need to make some poor souls work on New Years ...

      You really shouldn't even need to sit one on the ground given you've got thorough enough testing and integration set up. I would certainly hope they do. If there's ever been a time to actually follow the book on testing, it's when human lives hang in the balance while the software's in action (pacemakers, nuclear power plants, etc).
      --
      My work here is dung.
    2. Re:because it's too damned hard to .... by Rostin · · Score: 4, Insightful

      It's probably a little harder than you think. If the space shuttle were MS Notepad, your idea would probably work without a hitch. We'd start it up, wait for the new year to roll over, and then test to see if we could still type and a save and open documents. Test done.

      The space shuttle is monumentally complicated. It's controlled by multiple computers. Test cases aren't just typing some stuff in and clicking on a few menus. The computers are hooked up to instruments and relays and motor controllers, and all of that would probably have to be convincingly "faked" for the test to be rigorous.

    3. Re:because it's too damned hard to .... by espo812 · · Score: 2
      you'd think they could devote some of their time to have someone simply set all the clocks on all the hardware for the time of that night's transition
      This requires resources (time, money, and effort.) A lot of federal agencies, NASA included, don't have a whole lot of resources so they have to prioritize work for the most bang for the buck. This activity probably hasn't made the cut.
      or point the software at an NTP server and set that to the time it transitions.
      First RFC on NTP: 18 April 1981. First space shuttle flight: 12 April 1981. NTP wasn't invented (or at least standardized) when the shuttle was designed or even built. I'm guessing it isn't implemented on the shuttle.
      --

      espo
  5. Re:Simple! by LiquidCoooled · · Score: 4, Insightful

    How many places would you have to put that code in and could you be sure it will work?
    How do you know the leapyear code works?
    Wouldn't your code have to do a year++ line?
    Does it matter which direction they are travelling, is it not possible to technically flipflop between one year and the next based on where you are flying over?
    What will happen to systems if the day variable is less than the previously stored one, will it cause the ship to flip out and attempt a burn?

    Too many factors, nasa is right at the moment.

    --
    liqbase :: faster than paper
  6. Re:Like, shouldn't they have tested this years ago by LiquidCoooled · · Score: 3, Insightful

    My guess is the systems are based upon days - ie the mission is 14 days long, if the day counter rolls backwards as others have suggested passing a negative delta into certain functions could fuck it up and just testing one day either side would not necessarily test it properly.

    --
    liqbase :: faster than paper
  7. When am I? by Manchot · · Score: 3, Funny

    1999 called, and it wants its computer problems back.

    1. Re:When am I? by Manchot · · Score: 2, Funny

      1995 called, and it wants its slang back.

  8. Re:Subscribe to Slashdot and see the next dupe ear by antifoidulus · · Score: 2, Funny

    I thought the "computer date glitch" was when you meet some hot little 20-something on match.com but she turns out to be an overweight 45 year old named "Bruno"

  9. Re:Simple! by Doc+Ri · · Score: 2, Informative
    Does it matter which direction they are travelling, is it not possible to technically flipflop between one year and the next based on where you are flying over?
    I do not know, but I would assume the mission time is always the same time zone. Possibly GMT.
    --
    617B3B7F7E7C7D7F00EOF
  10. Re:Simple! by evilbessie · · Score: 2, Insightful

    actually not that simple more like if ($day > 365 && $leapyear = 0){ $thisday = $day - 365 }elsif($day > 366 && $leapyear = 1){ $thisday = $day - 366 }else{ $thisday = $day } Your code has every day of any year that is not the first (and december 31 of the first year as you used >= 365) as day 1...

  11. Well, We DO Know... by wasted · · Score: 2, Insightful

    ...what would happen if the Shuttle is aloft during the year change. A lot of NASA employees have to work the normal shuttle work schedule, and miss their New Years parties, having probably just missed Christmas with their families.

  12. Re:Simple! by hotdiggitydawg · · Score: 4, Insightful
    if ($day >= 365 && !$leapyear) {
    $day = 1;
    }
     

    How do you know the leapyear code works?

    It doesn't, in the sample provided anyway. If $leapyear is true, $day never gets set back to one...

    In any case, they already need to contend with uneven numbers of days in each of the various months anyway, and have to contend with leapyears every February 29th. So they're already (successfully) dealing with incrementing days, and months. I fail to see how they can't cope with years as well... C'mon, this is NASA and it's not the 1970's any more.

    Once space travel approaches the speed of light I'll start to buy excuses about the difficulties of tracking time. Until then, sorry - No Sale.
  13. Timestamps by RAMMS+EIN · · Score: 2, Insightful

    ``Does it matter which direction they are travelling, is it not possible to technically flipflop between one year and the next based on where you are flying over?
    What will happen to systems if the day variable is less than the previously stored one, will it cause the ship to flip out and attempt a burn?''

    They could just use timestamps. Something simple, that just increases at a fixed rate. Then convert it to a date when necessary (rarely, probably).

    --
    Please correct me if I got my facts wrong.
  14. Now try that in assembler by Flying+pig · · Score: 4, Insightful
    Given the vintage of the Shuttle computers I suspect that they are programmed in assembler. There are all kinds of possible issues; what makes you think that the internal representation of time is anything that involves days, or how dates received from outside are translated?

    All right, I realise you were trying to be funny but it is a serious point. Progress is systems design is so rapid that stuff from the 70s and 80s is like something from another world - when the Shuttle software was being written, I was working on a reasonably state of the art system in which every critical function had to be written in assembler and the compiler output had to be hand edited - even after we had upgraded the CPU specification to the point that the EMP people were complaining that the only components on the CPU board that they had in their library were the resistors.

    Getting really philosophical for a moment, how about this for a sobering thought? We still have the materials and skills to maintain medieval cathedrals. We could probably, without too much trouble, crew and maintain an 18th century ship. We can easily maintain a 19th century railroad engine. We still have early 20th century motor ships in service. We can (with difficulty) keep aircraft from WW2 flying. But keeping a 1980s reusable spacecraft going is extremely difficult, and a 10 year old mobile phone is about as much use as a chocolate teapot.

    --
    Pining for the fjords
  15. I've worked for NASA... by dgm3574 · · Score: 3, Interesting
    ...and I can tell you NASA is far from perfect. This is no different from any other organization, governmental or otherwise. I do have a certain empathy for them now though, because working there does give you a certain insight into why they do things the way they do. Given their limited resources, it's amazing how successful they are, most of the time.

    Considering that we give NASA less than we give the National Park Service, it's utterly dumbfoundingly breathtaking what they are able to accomplish.

    It also doesn't hurt that the shuttle software engineers are a totally different breed. Or more to the point, the way they write software is totally different. This is a good writeup about why.

  16. Not again... by denttford · · Score: 5, Interesting
    To paraphrase the a late Romulan Senator...

    It's a DUUUUPE.

    So, to forestall any of the previous idiotic comments;
    • yes, NASA has known of this for a while;
    • it's considered a limitation, not a bug;
    • no, none of your two second psuedo code hacks are of any value or insight,
    • because the ~450,000 lines of operational software is written for 0 bugs and in HAL/S (so thanks for the quick C++ hacks, they are useless),
    • calendar math is trickier than it looks; many date libs are replete with hacks and magic numbers
    • you are not a better programmer than the guys and gals who write this stuff, and Lockheed has quite a bit of experience in doing this stuff.


    Oh, and for the most ridiculous of stuff: Linux is not an option for critical shuttle systems; it is not a reliable RTOS - when you are orbiting at 18,000mph, a 1 second error puts you miles off course, though Debian was used at least once in monitoring an onboard experiment.

    Can we all move on?
    --

    Leben Sie jetzt die Fragen.
  17. Stupid post by Flying+pig · · Score: 4, Informative

    Sorry about that stupid post. Yes of course the Shuttle computers are programmed in HAL and in fact I knew that, if I only had woken up my older brain cells.

    --
    Pining for the fjords
  18. Say What?! by thethibs · · Score: 4, Insightful

    When not designed by an idiot, a system clock is a linear device that measures the elapsed time since some reference "moment in time". It doesn't know that it's Thanksgiving, New Years, or any other socially significant but otherwise irrelevant date. It has sufficient resolution to measure the smallest interval of interest and sufficient range to outlive the system.

    If the shuttle system clocks use year, month, day, etc., there's a lot that should be done, not the least of which is finding whoever made the design decision and take him out to a public place where thousands of engineers and programmers will point at him and laugh.

    --
    I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
  19. Re:Structured code by Z34107 · · Score: 3, Insightful

    The problem has nothing to do with how the code is structured.

    In fact, they're not sure there's a problem changinge the date at all.

    They're worried that something might happen. Some Windows programs, for example, use the function GetTickCount() for timing - menu delays, simple animation, etc. GetTickCount() returns a DWORD value representing the number of milliseconds since the system was booted, and a common usage is:

    if (GetTickCount() > dwOldTickCount + 50) {

    //do something, wait 50 milliseconds, do it again

    dwOldTickCount = GetTickCount();

    }

    However, if GetTickCount() overflows and wraps to 0 (how quickly this happens depends on the processor architecture), it could be another month (32-bit DWORDS means 2^32 milliseconds is ~ 49.7 days) before GetTickCount() is "more" than dwOldTickCount again. Your event that was supposed to happen every 50 milliseconds is on indefefinate hiatus.

    Granted, there are many better and different ways to write event code in Windows - it's kinda what the API was made for - and the space shuttle sure as hell doesn't use the Windows API, but that's not the point. It's little timing bugs like these that could pop up even in code that's been reused and debugged since God knows when.

    So, since there's no reason whatsoever that they have to fly on New Year's, why risk the lives of astronauts and an expensive shuttle? I wouldn't have that much faith in some '70s programms usage of the carry flag.

    It's not a problem that the "clock changing routine" that is probably some trivial count-on-one-hand number of machine language instructions is spread all over creation like a clown guts over the walls of my living room - it's that NASA doesn't want any glitches to happen in any procedure that uses the system clock like the Windows API example above. Which I'm guessing is pretty close to 99 and a half point two percent of their code.

    --
    DATABASE WOW WOW
  20. Re:Simple! by @madeus · · Score: 3, Insightful

    Too many factors, nasa is right at the moment.

    I am concerned that you think this issue is really a big problem. I am very worried if NASA thinks this is a big problem too - especially after all these years. While you don't want to underestimate potential problems like this, handling something as trivial as a date change is hardly 'rocket science' by NASA standards. Banks, financial institutions, air traffic control and military and emergency services systems handle this sort of thing just fine.

    The reality is that decent testing procedures make issues like this routine to handle, and of course you set out a documented roll back procedure if something goes wrong (and list post-change checks to perform to see if something did go wrong or not). NASA have the ability to easily replicate the conditions for a test like this on the ground. If you didn't test a scenario like this on the ground and it was really a problem, there is no reason why it couldn't just as easily seem to work fine, but then only cause problems once the systems were up in the air.

    I really can't believe the justification for not doing missions over Christmas and New Year is fear of a potential technical problem, even if it is a quote from Joan Higginbotham (who is evidently very experienced and ought to know a lot more about than this than I do). I can't see any reason why they couldn't easily have tested this on the ground (and would be surprised if they hadn't tested this sort of thing as part of Y2K compliance evaluations).

    I am inclined to think the real reason they don't like doing missions over the Christmas period has a lot more to with culture and staffing issues (what with everyone bound to want time off), rather than them being worried their code is that much shonkier than the software that powers our electricity grids, phone lines, air traffic control and avionics systems that all run happily over the New Year period.

    I suppose another possibility is that NASA is tangled up in bureaucracy and is so risk averse now that they feel they can't do something like this without a great deal of highly formalized testing - which they don't have the budget to do.

    I once had the honour of speaking briefly to an astronaut from space on Skylab 4 (he is one of NASA's ASF speakers I think, I have is details somewhere - I think it was either Gerald Carr or Edward Gibson but I couldn't be 100% certain) and I ask him a question relating to when, in his opinion, we might realistically expect to see a manned mission to Mars and where, back in the 70's, he had expected us to be now in 2001 (this was in the November after 9/11).

    As I recall, he said he had expected us be on Mars already and he seemed almost annoyed and was just barely perceptibly emotional that this wasn't the case (I got the impression he response made the NASA PR representative near by unconformable because they started fidgeting). While trying to avoid being insensitive I asked him why he thought we weren't there yet, and - after pausing briefly - he said the primary reason was a lack of investment and a lack of political will, he was quite emphatic on insisting that he thought we absolutely had the ability to undertake a manned mission, if their was enough political will and sufficient investment was made.

    I'd never really thought about it before, but the state of the current current space programme must be a big disappointment for those who did so much pioneering work in the 60's and 70's. We have greatly superior technology and there is plenty of money flowing around elsewhere but NASA only seem to be able to scrape by, keeping things ticking over (not that they arn't trying - stuff like the SRB separation video, the NASA TV podcast and the website are all good things IMO).

  21. Isn't that their purpose? by douglips · · Score: 2, Funny
    What will happen to systems if the day variable is less than the previously stored one, will it cause the ship to flip out and attempt a burn?

    The purpose of a space shuttle is to flip out and burn people. These rockets are so crazy and awesome that they flip out ALL the time and don't even think twice about it.
  22. Re:Structured code by Harmonious+Botch · · Score: 2, Interesting

    if (GetTickCount() > dwOldTickCount + 50) { //do something, wait 50 milliseconds, do it again dwOldTickCount = GetTickCount(); } You found the slashdot comments overflow bug!

  23. Re:Simple! by THE+anonymus+coward · · Score: 2, Informative

    Mission time is based on Houston Time.

    --
    I guess thats all I have to say.
  24. Re:Simple! by cheater512 · · Score: 2, Insightful

    Hey these are Americans! Why would they use London time? ;)

    The shuttles probably run off American Eastern Standard Time.

  25. How about no shuttle launches during the winter? by otis+wildflower · · Score: 2, Insightful

    It seems to me that both shuttle disasters were in part caused by cold weather. With the Challenger it was brittle O-Rings and with the Columbia it was iced-up chunks of insulation. Perhaps there should be a mandate that the shuttle can launch only if the area's temperature has been above, say, 55 degrees F for 48 hours?