I'm not so sure why people are upset or surprised by this - it's been standard operating procedure for a long time that malfunctions void all pays.
As for why, a comment from Ars:
"Created an account just to post this. Having formerly programmed casino games I've seen this bug many times before:
To me this doesn't look like some "glitch" in the machine but rather an
oversight by Aristocrat's programmers. Most casino games have a bonus
round obtained from the right combination of symbols. So at the end of
the bonus round the player will receive a "Regular Win" and a "Bonus
Win". Sometimes the regular win is subtracted or not counted in the
bonus win, sometimes it is counted. Can't remember what Miss Kitty's
rules are exactly but let's say that in this case the regular win is
subtracted from the Bonus win. So the programmer will subtract =>
bonusWin - regularWIn = totalWin
Ok, now lets assume that granny
had a really terrible bonus round, like she only won $5 when she had a
regular win of $10. Ok, so the grand total will be $5.00 - $10.00 =
-$5.00.
But why didn't the "Total Win" display a negative
number? Well, it's simply because many casino game developers use
Unsigned 32 bit integers in win amounts. Basically unsigned integers
cannot have negative numbers. So when you subtract one larger unsigned
integer from a smaller one instead of resulting in a negative number the
result will wrap around to its largest possible value. In the case of
unsigned Integers that's => 4,294,967,295 with two decimal places
added it for the cent amounts it comes to $42,949,672.94!
That
still doesn't explain exactly why the win was a bit below $42 million.
My guess is that its smaller because of the programming language used
and the processor word size. Max integer size varies from language to
language but it for an unsigned 32bit integer its usually around that
value."
As for why, a comment from Ars:
"Created an account just to post this. Having formerly programmed casino games I've seen this bug many times before: