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

  • 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...
  • Process Lasso v3.65.3 beta released
    I've released the first new beta that is 100% UNICODE. I've regression tested almost all the software, though there may still be som...
  • 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...
  • v5.0.0.18: Fix auto updater in XP
    During testing a few hours ago I noticed the auto-update was failing in some XP installations. Specifically, it would appear to stall at the...
  • BETA: Vista startup configuration
    Ok, I've got this fully correct now I think. In some cases in previous builds you could end up with both registry and Task Scheduler sta...
  • 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...
  • v5.0.0.17 final - Minor fixes
    This build fixes a reported issue with the watchdog rules (re: not default affinities, priorities, power schemes, but rather the terminate/r...
  • v5.0.0.21: Fix failure of web links within Process Lasso on some systems
    I've had reports of sporadic failure of the web links within Process Lasso. I've analyzed this situation for a while today and found...
  • One bit of bad news, one bit of good news
    One disappointing thing is that I've decided to cancel the change history shown in the update dialog, at least for v4.1. I may add it in...
  • Oh the frustration with this corporate crapware!!
    I now get uninstall feedback, as I solicit it (for better or worse). Once read, I can never go back, lol. Fortunately, most of it is actuall...

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