Windows 2000 Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 8 May 2010

Example of real world software error condition that results in an infinite loop, gobbling up every CPU cycle in can get -- indefinitely

Posted on 10:49 by Unknown
Sometimes its hard to describe to users just how frequent software errors that result in infinite 'CPU eating' loops are. Today I saw an example, so figured I'd take a screenshot and elaborate.

Yesterday I used my HP F335 All-in-one printer to scan a couple documents. Wouldn't you know, keeping with the tradition of poorly crafted printer drivers and applications, today I see the HPZ12 service has a thread stuck in an infinite loop and eating away 25% of my CPU cycles on this [very low-end] quad core machine. Now, 25% simply means that its a single thread that is stuck in an infinite loop, eating every CPU cycle it can get. Since it can only use 1 CPU at a time, it is limitated to 1/4 of 100% of total available CPU time. However, the impact on overall system performance and energy use is still significant. Had this been a dual core machine, the total CPU usage would continuously be 50%. Likewise, a single CPU machine would have 100% CPU use and possibly be hung at this point (unless Process Lasso's ProBalance was there to save the day).



What is the HP printer service doing? Well, its hard to say without more investigation. Perhaps its stuck in some sort of polling loop, waiting for a condition to change that isn't ever going to change. In theory, programmers should avoid polling at all costs. However, in practice it is sometimes unavoidable. A good programmer would at least insert a sleep between polls, or some maximum iteration count, to avoid total CPU monopolization. Perhaps it is some other type of error condition though, who knows.

The bottom line is that this kind of thing happens all the time. Your computer might get sluggish and/or have performance problems. Rebooting your PC would fix the issue, as I'm sure many users do often due to software error conditions. With Process Lasso's ProBalance, this error condition is mitigated. When you start using your PC enough to trigger ProBalance, the HPZ12 service would be one of the processes targeted for deprioritization.

--

As a side note, is it just me, or does it seem it is impossible to find well crafted printer drivers and applications? Is there ANY company out there that is actually putting time into ensuring their printer software is done right? If so, I've not run into them...
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Process Lasso v5.0.0.28
    This build continues maintenance, fixing several items and also making a nice improvement to the graph's display. Further, the last sele...
  • Tightening the Governor
    Most users of Process Lasso are familiar with its core engine, ProcessGovernor.exe. It is the silent background process that applies all pro...
  • Process Lasso and WDFME
    Since Process Lasso can be complex for the layman, something we are working on, I wanted to list a set of steps to address the commonly abu...
  • Indonesian language added - That makes 11
    Thanks to the work of Ivan Chin, an Indonesian (Bahasa Melayu) translation will be included in v3.99.36. This will be the first time even he...
  • WARNING: Cracks for Process Lasso may modify HOSTS file
    WARNING:  Cracks for Process Lasso have been seen to modify your system HOSTS file so that you can no longer access  bitsum.com  and/or  bit...
  • Optimizing process icon memory use & New core feature coming..
    Two in one post. Yes, here at Bitsum we're going Green by conserving bandwidth ;). Of course, that's just a joke and I fully support...
  • Next update, Options menu gets some changes
    I decided to make the Options menu a little more consistent and move the ProBalnce configuration down with the rest of the rules configurati...
  • Anti-virus software - the #1 cause of PC performance troubles
    Many users realize their anti-virus software consumes massive amounts of system resources, and hope that Process Lasso will somehow keep it ...
  • Process Lasso v5.0.0.48
    Changes: [.48]Change.GUI: Do not show 'Activate Now' menu item after activation [.48]Change.GUI: Adjusted logging thread CPU and I/O...
  • WARNING: Beware of third-party utilities that adjust process priorities (other than Process Lasso)
    Recently I've seen either 'hacked on' additions to existing products, or new products, that have the ability to manipulate proce...

Blog Archive

  • ►  2013 (1)
    • ►  March (1)
  • ►  2012 (6)
    • ►  September (1)
    • ►  July (1)
    • ►  June (2)
    • ►  January (2)
  • ►  2011 (166)
    • ►  December (3)
    • ►  November (2)
    • ►  October (2)
    • ►  September (6)
    • ►  August (12)
    • ►  July (14)
    • ►  June (17)
    • ►  May (19)
    • ►  April (13)
    • ►  March (27)
    • ►  February (31)
    • ►  January (20)
  • ▼  2010 (203)
    • ►  December (23)
    • ►  November (34)
    • ►  October (38)
    • ►  September (17)
    • ►  August (19)
    • ►  July (19)
    • ►  June (11)
    • ▼  May (16)
      • Memorial Day weekend releases
      • A new review of Process Lasso
      • Optimizing process icon memory use & New core feat...
      • New CPU Eater goes final
      • Process Lasso v3.85.1 beta released
      • Process Lasso v3.84.4 final
      • v3.85 beta series starts
      • New first time minimize to systray greeting (in fu...
      • The v4 release plan (lots of v3 updates)
      • CPUEater v4 early preview
      • Giveaway of the Day Promotion - Great success!
      • The difficulties of being an independent developer...
      • Yet another warning about these 'booster' utilitie...
      • Quick refresh of v3.84.2 - updated French and smal...
      • Example of real world software error condition tha...
      • v3.84.2 - another very minor update
    • ►  April (8)
    • ►  March (6)
    • ►  February (6)
    • ►  January (6)
  • ►  2009 (43)
    • ►  December (6)
    • ►  November (1)
    • ►  October (10)
    • ►  September (3)
    • ►  August (1)
    • ►  July (9)
    • ►  June (2)
    • ►  May (3)
    • ►  April (4)
    • ►  March (4)
Powered by Blogger.

About Me

Unknown
View my complete profile