Passage of Time Solves PS3 Glitch
An anonymous reader writes "A quick update on the widespread PlayStation 3 glitch we discussed recently: as of last night (Monday, March 1st) the problem has resolved itself. I powered up my PS3 to find the clock was set to April 29th, 2020, but once I went into the system menu and set the date and time via the internet I got an accurate date. That seems to be the test of whether your PS3 is 'fixed' or not; Sony says you should be all set."
First Quadrennial Childhood Obesity Awareness Day Goes Off Without a Hitch!
We'd like to thank all our gamers for observing our compulsory First Quadrennial Childhood Obesity Awareness Day that we had planned many years in advance back when we made our first consoles. We hope all the children took the time to get outside and exercise. As always, Sony endorses moderation in game play and we feel that this surprise holiday away from the Playstation Network will help today's youth become more healthy and social.
Should we decide to surprise you with a second Quadrennial Childhood Obesity Awareness Day, it could happen March 1st of 2012. See you in 2012 (maybe)! Until then, remember to get plenty of fresh air and exercise!
Totally in control of the situation,
Muhammed Saeed al-Sahaf
Chief Sony Public Think of the Children Relations Officer
My work here is dung.
Is SONY going to make my PS3 explode?
that the PS3 was powered by the Zune...
Time heals all wounds, and so do health potions.
Bug bug bug BUG "bug" "BUG"!
I know I have pretty much become an old man at this point in my life, but how did we let Warcraft users slowly replace the word "bug" with "glitch" ?! It's a bug!
However, I have to feely admit one point: replacing the word with 'glitch' makes it easier to use as a verb, as in "that instance is glitched" vs "that instance is bugged" - in the sense that the latter use could mean "we put that bug in the bug DB already." Ah well, back to feeding ferrite core beads to pigeons...
Ok, there are logic bugs, then there are extremely stupid bugs. 2010 is 2 years away from a leap year. That's ridiculous.
Not according to their planned 10-year lifespan.
PS2s are still in wide use almost 10 years later.
Unless it was a decimalhex bug... 10 hex = 16 dec , 2016 IS a leap year.
Humans are slow, innaccurate, and brilliant; computers are fast, acurrate, and dumb; together they are unbeatable
if it's quadrennial
Good observation. That's (part of) the joke.
Did you write the firmware or something?
*Any* programmer should feel superior because this is an extremely trivial bug that should've never been allowed to see the light of day. This only serves to highlight what must've been a breakneck release schedule as Sony was bringing the original PS3 to market (the newer slim PS3s were unaffected).
I'd bet money that Sony caught this firmware bug too late in their production cycle to fix it (i.e. the firmware chips were already burned). An issue that might come up every two years? That would hardly warrant a "stop the presses" to Sony.
I have a theory there's an unseen clock running inside the PS3. Since the passage of time solved the problem, shouldn't too have setting the system time forward a day? I tried that, yet the system was still bugged. It would make sense if there was a hidden clock not able to be directly set by the end user for things like DRM. Since Sony has downloadable movie rentals, which can only be viewed for 48 hours after payment. It would follow that there's an extra timer which one can't over-ride to get more time with the rental. It also makes sense to tie this to game DRM, and trophy acquisition so users couldn't forge earlier time stamps. The other observation I made is that when I manually set the clock the system would keep time as long as it was on. But shutting down and restarting would cause the displayed time to revert to the time I had previously set. So the system clock wasn't being updated by the hidden clock, while it was in the buggy 29th day of February.
As one of the owners of a console that got bit by this bug (and the last revision to support PS2 backwards-compatibility), I'm still rather pissed off by this bug.
First off, it's ridiculously stupid. I'd love to hear an explanation from Sony about how, exactly, they managed to have this bug exist in the first place. First off, I'd love to know why the internal clock considers 2010 a leap year but what I'd also like to know is 1) why this "internal clock" is different from the PS3 clock, which knows 2010 isn't a leap year, and 2) why this "internal clock" works on dates in the first place and not on "units of time offset from a known date."
I mean, it's apparently an internal hardware clock, right? It's not user visible. So why, exactly, is it storing dates and not just being a clock?
I'm sure someone's going to say that I should "just get over it, it's just a video game console" which is true. And honestly, I never really was angry at being locked out of my PS3 for 24 hours. What I'm still pissed about is Sony's piss-poor handling of the entire incident. Which, I suppose, given their track record, I really shouldn't be that surprised about.
You are in a maze of twisty little relative jumps, all alike.
If that were really the case why didn't it effect the PS3 Slim? Also why didn't this manifest itself for people playing games without trophies? Oh yeah, because you're spewing bullshit.
Your using an extra 'mod', 'compare' and 'or' to avoid a branch, yet those 'compare's are probably going to be compiled into branches anyway, thus defeating the point.
Really, you should either break down and write it as a simple branch, or write branch free assembly for each target platform. I would suggest the former. Simplicity and readability are much more important in this day and age than a few clock cycles.
This is also the first even-numbered year since the PS3 release that is not a leap year. It's possible their leap-year code is completely broken...
Write your representatives! Repeal the 2nd Law of Thermodynamics!
That this particular bug "fixes" itself in a relatively short span of time.
/dev/rtc, The standard hwclock command can be used to manage the RTC. Since the RTC is read only, the PS3 Linux platform support maintaines a value in system flash memory that represents the difference between the hardware RTC value and the Linux RTC value."
According to the documentation provided for PS3 linux, the clock that is embedded in the PS3 cannot actually be manipulated from under the hypervisor:
"Similar to a PC, a built-in real time clock (RTC) keeps the wall clock time for the PS3. The RTC is backed up by a battery and so ticks even if external power is removed. The RTC value can be read by a hypervisor call, but it can not be written. The RTC value monotonically increases and never rolls back. The PS3 Linux platform support uses the standard RTC userland interface
I'm assuming that this read-only clock "feature" is in some way related to DRM, to keep people from playing tricks with expiration dates. Worst case scenario, it is impossible to modify the RTC without hardware tinkering. Had this not been a transient bug, that would have meant massive physical recalls. More likely, it is possible for sony-blessed firmware updates to modify the clock. However, Sony can only push those either through the internet, or on physical disks. Since the bug was preventing PSN logins, the internet option wouldn't have been automatically available(though, since the issue is transient, it now is again). They would either have to mail out upgrade disks to affected users, bundle the upgrade with future game releases, or make their customers go to some support site and burn their own upgrade disks. Gigantic pain in the ass.
Your first word betrays your grasp of syntactical structure.
Stop attempting to belittle your fellow slashdotters to signal your "moral superiority".
I had not realized that properly coding leap year algorithms was a moral issue. On slashdot is everything a moral issue? I must be new here.
Amateurs, the lot of you.
I once created a bug where the fix involved -- and I am serious here -- shooting a tiger.
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
duh, 2006 wasn't a leap year either
True, but the PS3 wasn't released until well after February of that year (November).
An issue that might come up every two years? That would hardly warrant a "stop the presses" to Sony.
Actually, the bug would only manifest itself every 4 years. 2012 is a leap year and Feb 29 does exist, so the bug *shouldn't* occur. In 2014, though, we'll see.
Well, apparently, it wasn't a Sony bug per se, it was a bug in one of the support chips.
Sony decided to be paranoid about time because of pirates. If you can hack the PS3 and change the date, then you can avoid expiration times and so forth. So if the hardware clock and software clock get out of sync, their DRM and such stops working. Considering the PS3 is the only major console that has not been hacked to the point of widespread piracy, keeping to this level of paranoia seems to have paid off for Sony's purposes.
As to Sony's "piss-poor handling of the entire incident", I'd like to know what, exactly, you think they should have done about it?
Seriously, I've just appointed you, _xeno_, to be CEO of Sony, and you just got a phone call. "Oh, crap, it's midnight GMT on March 1st, 2010, and all the older PS3 consoles can't play downloaded content or games with trophies or sign into the PSN!". What are you going to do? What orders do you give?
PHEM - party like it's 1997-2003!
These sorts of bugs have a tendency to repeat themselves. I fully expect this to happen in 2014. After all, 2010 was the first even non-leap year since the PS3's release.
...That's pretty much what ALL of you so-called Slashdotters do. Belittle anyone who doesn't agree with you ("you, sir, are an idiot, anybody who does X is an idiot", etc). I also see that so-called Slashdotters have a tendency to assume that anybody who doesn't have in-depth knowledge about the topics discussed is also an idot.
A bunch of armchair experts, who supposedly know everything from world politics to enterprise-level corporate management, but still SOMEHOW find the time through all of their corporate, financial and world-wide political success to post asinine comments on /.
Hence, the topic of my post.
And, who gives a fuck that I'm anon; stop waving your pseudonyms around, or leaving some silly signature as if your real name has any bearing on the validity of your posts.
While I agree they should fix the problem I don't think there is any point in pushing an emergency fix at this point. The correct thing to do (assuming this is a periodic problem) is to release a properly QA'd fix as part of a normal firmware update cycle.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
Sony has a little less than 4 years to figure out how to solve this. I pray they can do it in time. Meanwhile, my PS2 worked just fine.
Im a troll because I disagree with you.
Protip, PS3s firmware doesn't work like that.
They MADE the "isLeapYear" functionality, and obviously screwed it up somehow.
They won't just pile on a bunch of mostly useless libraries that they won't need just "because", they have limited space on the internal memory remember.
Since it won't happen again for a while, it will probably be fixed in the next update.
It is likely a mod bug of something like ((2010 % 10) % 4) == 0 So, 2020 is the next time this is likely to occur. 2014 is possible, but I doubt they were that stupied
Ah, but 2020 is a leap year so by this reasoning 2030 is the next time we have to worry. Doubt anyone cares by then
Momento Mori
(year % 4) is enough. Next leap year exception is 2100, I will no longer be in office by then.
Before someone complains and compares it to Y2K: We're talking about a game console here with an expected lifetime of less than a decade. Not a supercomputer whose programs might outlive its makers.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Thats nothing, due to budget constraints a quick workaround to our watchdog has never been properly redone, so we are stuck with sacrificing a goat every month or the watchdog kills the databases.
This is /. Proper coding is a moral issue. By definition.
You can dump your geek card in the recycler at the exit. Thank you.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
PS2s are still in wide use almost 10 years later.
Yes, and I'm sure Sony (and game makers for their consoles) ain't happy about that. After all, they could sell all those PS2 titles again for the PS3.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
IF that is possible.
I somehow doubt it. IIRC, and please someone correct me if they know more about the inner workings of the PS3 than I do, you have two "clocks" inside the PS3. One that resides uncerneath all the hypervisor and other DRM protection, shielded by it against tampering, which is used most likely for rentals and the like when Sony wants to make dead sure they know just how much time has passed and you have no chance to tamper with it. How this clock is initialized is still a mystery to me, but it cannot be set, at least to my knowledge. There is certainly no way to "rewind" it, that much has to be certain to securely lock rentals away from tampering. The other clock is the "external" clock which you get displayed, which you can set to whatever you like and so on.
Now, the PS3 "bug" hit us here locally around 2am local time. Which leads me to a certain assumption: That the "external" clock is little more than a "show" clock, to display the time, but handled and guided relative to the internal, "official" clock, so you don't set it to 6:30 but to "+2 hours 50 minutes 28 seconds", relative to the internal, official and shielded clock.
I could envision something like this happening:
The "low level" clock seems to have a Feb 29th bug. When the date rolled over to March 1st in mainland Europe, nothing happened. Why? Because it was still Feb 28th for the internal clock. Because the "external" clock got from the internal "display Feb 28th, 22:00 plus the 2 hours adjustment", which the external clock did: March 1st, 00:00 am.
At 2am, though, the internal clock signaled "display Feb 29th 2010, 00:00 + 2 hours" to which the (correct) external said "Impossible, no 29th of Feb in 2010", which probably prompted the internal one to assume tampering and thus it simply sent the general shutdown command, assuming the user tried to breach its protection.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
WTF dude? how long does it take you to type the rest of the logical statement?
unless you are considering limited processing power and you want to avoid extra checks. And I don't think this is the case here.
I love how sony said that they would "fix" this in the next 24 hours yesterday. I'm glad they worked so hard and diligently to apply this fix. One might even say they moved the earth for it.
This clock verification exists to figure out whether the console is compromised. Avoiding being compromised serves both DRM and anti-cheating. I don't want people with hacked consoles getting every trophy in every game instantaneously. I don't want people getting instant headshots in MW2. This is one of the reasons I stopped playing on the PC.
I realize cheating is still possible, but I applaud having a system which is difficult to hack, even if it means things like this can happen. Do they get to use it for DRM? Yeah, they do. Tradeoff. And if this had been some sort of permanent problem I would take my business elsewhere.
I was being literal.
I used to work for a GPS tracking company, and the | was in packing the GPS stream into a byte for VHF transmission. It turned out that the tenths digit of longitude was always 0. It was part of an update to reduce the footprint. (This reduced the footprint from 98% to 92%, IIRC, which was a pretty big deal.)
It made it out through my tests, production's tests, and the test customer happened to be in a spot where the tenths digit was supposed to be zero. The reason was a formatting bug in the legacy parsing code that let you download the data. It would not put in the leading 0. Damnably, there is a highway in Rhode Island that is on a 0ths longitude place. We thought the problem was with reception, and the cleared highway had a good view of the GPS constellation. That was a good thought, but it didn't explain why the coyotes were swimming in a straight line in the harbour.
I had put the new code into the library, and we sent out hundreds of collars. One of the customers was the government of India, who wanted to put some collars on tigers to track their positions and look for poachers. The tigers all got faulty collars, and so several of them had to be tracked down and re-tranquilized.
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
Yeah, because the PS2 was the massive market leader. The PS3 is more like this gen's x-box... relatively powerful, but fighting over 2nd place. It doesn't have nearly the library that the PS2 had, that will keep people playing for a decade or longer.
As well, it seems the trophy update had something to do with the issue, not something that would have been seen in 2006.
Write your representatives! Repeal the 2nd Law of Thermodynamics!
I like this. Because this is probably the code that caused the bug. year % 4 when year is actually BCD.
But then that doesn't explain how the non-slim models in which you played games without trophies didn't have the issue either.
Because they have to offset their losses on the PS3 somehow, and removing its ability to play PS2 games to make you have to buy a new PS2 when your old one breaks is one of those ways.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Great. Except that the bug is probably in a hardware RTC circuit. Please try again in Verilog or VHDL and include the process by which the silicon can be updated to use your glorious patch.
It is very likely that the clock chip used BCD for the date and time, and used "bcd_year % 4" to determine a leap year. 10 is not divisible by 4, but 0x10 is.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
bool isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
What type is "year"?
Human representations of time should be restricted to display purposes only. A computer shouldn't care whether a particular span of 86400 seconds is in February or March.
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
Yeah, but March 1, 2006 was a Wednesday. Who files bug reports on Wednesdays?
Seriously though, the bug may not have been tripped for 2006: 0x2006 BCD treated as an int (8198) is not evenly divisible by 4, but 0x2010 BCD as an int is 8208 which is evenly divisible by 4.
Curiously, 0x2008 BCD is int 8200 which is divisible by 4, but it is also divisible by 100 and not divisible by 400. Since it worked in 2008, if it is a error failing to convert BCD to decimal, then they're just using every 4 years and not paying attention to the /100 and /400 rules.
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
which probably prompted the internal one to assume tampering and thus it simply sent the general shutdown command
except the system WAS NOT completely disabled. Afaict downloadable content failed (presumablly due to it's drm dates being out of range) and the trophy system crashed but afaict games without trophy support continued to run fine as did the web browser and the backwards compatibility. Further things recovered by themselves when the internal clock rolled back to a sane date.
This suggests to me that it should be possible for sony to at least work arround the issue even if it's impossible to fix it at source.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register