Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-settings.php on line 468

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-settings.php on line 483

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-settings.php on line 490

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-settings.php on line 526

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /data/55/1/150/3/1639166/user/1767119/htdocs/phoneonfire/wp-includes/theme.php on line 618
Real Life Debugged » Product Bugs

Tag-Archive for ◊ Product Bugs ◊

I had a challenge getting my blog up after Wordpress was hacked a month ago.

Today I find that every image I’ve uploaded into every post does not appear.  Just Like This.

** pulls hair **

more…

How Could They Have Missed This Software Bug?
Thursday, June 03rd, 2010 | Author: lisaksimone

The correct prize for an apparent $42.9 million slot machine jackpot that a Thornton woman hit at a Central City casino should have been $20.18, Colorado gaming regulators said today. [Denver Post 5/19/2010]

Ouch.  I bet there was a whole lotta screaming going on, starting with great enthusiasm and then ending badly.

The machine was a progressive, meaning that the payout is based on previous bets and other similar machines.  In order to win the Big Payout, the player must bet the max, which in this case was $4.  The player had bet only the minimum, $0.40.

The Colorado Division of Gaming’s forensic investigation found that the slot machine malfunctioned and displayed the wrong payout because of errors in “mathematical calculations built into the game software.”

That’s a heck of a big mistake.  Seems like an extra (missing?) if() statement would’ve caught that one.

After waiting forever for pictures on my laptop to load to show my family, I finally decided to upgrade my RAM from 1GB to 2GB.  I was ready for SCREAMING fast performance.

Then the Windows Shutdown “Hibernate” option stopped working.

“System Error : Insufficient system resources exist to complete the API.”

Now, I live to Hibernate.  Or, I should say I don’t reboot my laptop unless I *have* to.  The computer gets to Hibernate whenever I take it with me so I can resume with all windows and programs exactly where I left them.

I love Hibernate.

But suddenly Hibernate and I were plunged into a Jr High school relationship of drama and fickleness.

more…

Let’s Debug it: Snow That’s Hot to the Touch!
Monday, January 18th, 2010 | Author: lisaksimone

A friend posted this FailBlog pic on Facebook and (as always) I had to figure out how the embedded system screwed up.

Snow.  Real snow.  Bare branches, no movie set.

And a sweltering 119 degrees!

Fahrenheit?  Not with the snow.  Can’t be Celsius or the snow would be boiling.

And well, it does appear icy cold, but if that’s Kelvin then this town is more than 200 degrees below 0°F.

Brrrr.

more…

What if everything in the world was made by Microsoft?

Sure, we’ve all seen the funky error messages, both real and fake. Yeah, Smart-House 2.0 Crashed my Kitchen was amusing, but the next extrapolation can be downright scary.

“Can of Peas - Professional” or “Can of Peas - Home Edition”?  Cracked.com ran a contest.  Enjoy them all, and wait for the last one to finish.


Yo, Today is December 31, 1969?
Wednesday, April 22nd, 2009 | Author: lisaksimone

Couple weeks ago, I was transported back to December 31, 1969 when I was informed a license for some software expired. Huh? I bet you’ve seen this - Mysterious Little time machine references to December 31, 1969 are caused by a simple software bug - so why does such obvious evidence continue to get completely overlooked before software is released?

That got me thinking so I Googled “December 31, 1969.” Of the first 100 search results, only 8 refer to that Wednesday evening nearly 40 years ago.

The other 92 entries? Oooooh, let’s have some fun exploring the debris trail of software date problems (with very few examples I found of what REALLY happened on December 31, 1969).

more…

Really, Your College Degrees ARE Worth Dirt!
Monday, April 20th, 2009 | Author: lisaksimone

Sometimes advertisements send confounding messages. FAILBlog rocks with examples. Some are amazingly obvious and others send subtle messages. The other day, an ad informed me that my advanced degrees are worth little more than rodent infested dirt and piles of rocks.

more…

Jack Ganssle is an embedded guru and also a really neat guy. He collects real life disasters - when products behave Not As Intended. Some are pretty sad when they involve loss of life, but others are funny - like this store sign that reports a temperature of 501 °F. Whew!

When I pitched the concept of individual product disaster mysteries like “Law and Order” or “CSI” for my book, he liked the idea. And I was even more psyched that he would dig through his collection to find Real Life Disasters with similar root causes to the bugs in each of my chapters.

So I thought of Jack when I ran across a post about errors at a site called “The Daily WTF.” (Man I like that name!)

Check out these pics of other interesting Bugs in Public at - There’s Gotta Be A Catch.

And the Walgreens bug? It’s still out there - a student of mine sent me a picture he took of it in mid 2008.

And what caused the bug?  The bias current to an unconnected processor input in the electronic billboard changed; the normal “zero” state drifted to a logic “one.”  Firmware didn’t ignore this unused bit, and accepted the unnecessary and incorrect new data, generating a temperature display that was insane. - From Jack

Several readers commented on the test case article published at Embedded.com here. The reader responses are also presented below.


I really liked the article and the way it was presented. Well done Lisa.

I passed the code through my normal Lint system and it caught the problem and pointed out a couple of others too. This is what it reported:

  1. The Comparison for OvenPW less than 0 at the end is unneccessary, since OvenPW is an unsigned number, it can’t be less than 0. This is a clue to the error.
  2. The loss of precision in the subtraction as the two unsigned numbers (reference_temp_A2D_counts and actual_temp_A2D_counts) are subtracted and the result placed in the signed number, delta_temperature. (another clue)
  3. The loss of precision as the ovenPW is calculated from the Delta Temperature. This is where the problem manifested itself.

An unintended lesson of this, pay attention to what Lint is telling you.

Bob Bailey
Sr. Software Engineer


Thank you Lisa. Your article was a fascinating reading experience. I can only conclude:

“Two sensories are always better than one.”

Art Devine


Dr. Simone’s paper is very thought-provoking, and is refreshingly easy to read. Her approach to solving a problem extends far beyond ovens, of course, and should give us all pause to reflect how we could better do these things. Hats off to her!!!

Thomas Mann


This article is definitely worthwhile to promote as a vivid C programming case or as a trouble-shooting case. It is enlightening for reader to think thing in reverse engineering point of view.

Larry Luo


Out of sheer curiosity, I tried the attached source code with some C compilation tools I haved. Some compilers (e.g. TI Code Composer C/C++ compiler for TMS320C54x) issued a warning like “pointless comparison of unsigned integer with zero” on the instruction “if (ovenPW < 0) …”, giving the programmer a chance to notice the bug described in this article.

Some other ones (e.g. MS Visual C++ 6.0) didn’t report any problems even with the strongest warning level set.

Kazimierz Koziarz