15 ms·
High CPU use by taskhost.exe when Windows 8.1 user name contains “user”
- gberger 10y agoWhat might be the root cause?
- Coneylake 10y agohehe, probably has something to do with root.
- pkaye 10y agoWithout the source code, it is hard to say.
- Benjamin_Dobell 10y agoSource code, pfft. Is this not hacker news? ;)
- pbhjpbhj 10y agoLooking at the binary expression of Win8.1 I've found the problem; one just needs to switch some 0 and 1s, no problem!
- wmil 10y agoMy guess? Somewhere in the system there's some old tool that's passing user data as a text table. It has a header row. So the dev decided to throw out the row if it contained "user". After filtering, the program can't find the user name. So it calls the function again. This probably happened when they moved an old unix app to Windows.
- deleted 10y ago[deleted]
- astazangasta 10y agoThis is a cool theory, but why would it call the function again? Shouldn't it just give up? It's not like it would get a different result next time.
- mjevans 10y agoLet's assume that it has a set number of attempts each with some delay. Let's also assume that whatever this is has multiple instances for some reason; maybe it's something called as part of an update process for system accounting information. If every process on the machine did this every time it got re-scheduled? Yeah, I can see that.
- kazinator 10y agoCalling the function again when the user doesn't exist could in fact be nonsensical and wrong. It could be due to failing to break out of some loop or whatever, not necessary an explicit "we don't have the user; let's branch backwards" logic. Perhaps that looping was not discovered simply because that case doesn't arise: the user always exists. Except, oops, when it appears not to exist due to being pruned because of the "user" substring; then the incorrect backwards branch problem is exposed.
- TeMPOraL 10y agoCalling the function again may be entirely logical and may be because of independent state, e.g. locks or security. Think of the famous problem we had for decades with file deletion hanging for 10 seconds or so if you tried to delete a file in use. Somebody traced and disassembled the code; it was literally a hardcoded loop that did 10 iterations of attempting to get a lock on the file followed by sleeping one second if failed... The loop-and-sleep combo there might have been a hack, but it was excusable.
- thriqon 10y agoYou could image code like this: for (pos = 0; !found; pos++) { row = get_next_row(); if (strstr(row, "user") { // this is obviously a header row continue } if (strstr(row, user_name)) { found = 1; } }
- im3w1l 10y agoYeah it sounds like some kind of "injection".
- zamalek 10y agoAlternatively, Windows has a fair amount of kludges - put there to fix poorly coded software. This could be an example case and, not knowing what has become dependant on the behaviour, it can't be removed.
- deleted 10y ago[deleted]
- jacobush 10y agoOddly specific "guess". Is there something you want to tell us? :)
- ygra 10y agoI kinda doubt it. This applies to Windows 8.1 and no earlier or later version. So the problem was introduced in Windows 8.1. Furthermore, Windows never really had utilities passing data as text doing maintenance stuff in the core operating system. That's not how Windows works. There are APIs for everything, not command-line tools. And they sure as hell didn't "move an old Unix app to Windows" in 2013. As other have said, maybe Raymond Chen will some day do a blog post on this, although, considering that the bug is in DFPCommon.dll, i.e. the "Disk Footprint Utility Library", I doubt it really belongs to the shell and thus he won't know more than we do.
- skykooler 10y ago"Resolution: To resolve the issue, do not create a user account contains the string "user" on the computer." That's not really a resolution so much as a workaround.
- pmiller2 10y agoYeah, seriously. I love how their workaround is "don't do that," too.
- kazinator 10y agoIt's actually, "do not ... have done that".
- schwarrrtz 10y agoGo back in time and subtly influence your past behaviour to avoid having created an account where the username contains the word 'user'. Alternatively, upgrade to Windows 12.
- PawelDecowski 10y agoSeriously. How should I have known not to name my Windows account trousersnake?
- deleted 10y ago[deleted]
- xufi 10y agoVery idiot proof indeed
- agumonkey 10y agoaka the doctor's cure.
- beambot 10y agoNext up: it's a feature, not a bug.
- chris_wot 10y agoSucks to be in the Grundhauser clan right now.
- deleted 10y ago[deleted]
- pbnjay 10y agoThe truly mind-blowing thing here is that it's "intermittent" ... so they only _sometimes_ check the username for "user" ??
- cynix 10y agoOr, they always check the username for "user", but such a check only sometimes causes high CPU load.
- oneeyedpigeon 10y agoDo you seriously think they're 'checking the username for "user"'? I wish all bugs were as straightforward.
- TeMPOraL 10y agoI'm guessing something there is interpreting the substring "user" as special - I'm thinking of the kind of bugs like if you type "NULL" in the textfield you'll fuck up the website, etc. Happens when people don't keep their interpreted and non-interpreted data straight.
- Normal_gaussian 10y agoThey could be. If they have some OO Set of substrings that they check a composite login credentials string for then it is possible to accidentally have state that depends on the order of Set iteration. Quite a few systems use the "bung all options into one configuration string, then have it parsed by this argument parser" method. And it is a reasonable method to use.
- jey 10y agoSounds like it's triggered by something else, such as the Windows equivalent of a cron job, but it runs much longer if you have a username with the substring "user".
- acqq 10y ago
- hoodoof 10y agoI'd love to see the source code of the bug.
- jey 10y agoYeah, I'm looking forward to Raymond Chen's post on this one.
- arca_vorago 10y agoI'd love to see the source code for windows...
- adzm 10y agoSign the NDA!
- arca_vorago 10y agoNo thanks. I shouldn't have to sign an NDA just to see the source code of something running on hardware I own... That's also why I run gnu/linux and only use windows when forced to (for work or gamedev).
- accounthere 10y agoPatient: "It hurts when I touch my abdomen" Doctor: "Solution: stop touching your abdomen"
- rcthompson 10y agoPatient: "My abdomen hurts when I or anyone else says my name." Doctor: "... Change your name?"
- unique_parrot2 10y agoPatient: "It hurts when I touch my abdomen" Doctor: "Your index finger is broken."
- agumonkey 10y ago-- Oliver Sachs
- kazinator 10y agoDo Nvidia updates still make that UpdatusUser account? Oops.
- busterarm 10y agoOr all of the OEMs out there who do this out of habit... I guess don't do upgrade-installs to 8.1 (though I haven't advocated doing those just about ever).
- newjersey 10y agoWhy? I updated using the windows store from Windows 8 to Windows 8.1 pretty much immediately on my Lenovo Ideapad y510p. Also note to future me: no, these ideapad notebooks have nothing to do with thinkpads. Do not buy an ideapad.
- brett40324 10y agoIs this resolved or able to replicate on windows 10?
- ygra 10y agoThe article applies to just Windows 8.1, so it isn't a problem in Windows 10.
- r618 10y agohm, i work under acccount 'user01' and i noticed occasional cpu spikes but they wear off pretty quickly so didnt pay much attention to them ( active window looses focus at that time, too ) - might check if it is taskhost process
- praptak 10y agoIn other news, the printer won't print on Tuesdays (please print on Mondays instead): https://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-wont-print-on-tuesdays/ https://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-...
- Houshalter 10y agoReminds me of y2k bugs where the clocked rolled over to 1900, and the days of the week no longer were correct. Also the email bug some university had that they couldn't send emails further than 500 miles exactly.
- asadjb 10y ago500 Miles story: http://www.ibiblio.org/harris/500milemail.html http://www.ibiblio.org/harris/500milemail.html
- nommm-nommm 10y ago>Also the email bug some university had that they couldn't send emails further than 500 miles exactly. Clearly this is to prevent students from racking up the phone bill surfing long distance[1]. [1] http://bash.org/?142934 http://bash.org/?142934
- astrodust 10y agoSeeing things (C) 19100 did make me smile.
- rbanffy 10y agoI am not sure how I would even write this bug.
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- jacobush 10y agoAnd this is exactly why humans write bugs. We are not very good at understanding systems of systems.
- stinos 10y agoThis. Anytime a major company (or major OSS instance) has software with some seemingly stupid bug, I'm amazed by some comments on HN like 'how is this even possible' or 'those programmers must be shit compared to company X or Y'. While if you just reflect on programming and yourself a bit, it should be fairly easy to recognize such bugs are just as easy to introduce as others and that tests preventing them equally hard to write.
- rbanffy 10y agoI didn't want to come across as arrogant, but the exercise of trying to understand what would drive us to a specific failure is always an interesting one. You must identify the patterns that are behind bugs that look stupid like this one. Is the code making decisions based on the username instead of a specific attribute of the user structure? That's one recognizable anti-pattern. Is it trying to parse the user's home path and encountering what looks like a folder with a special name?
- pessimizer 10y agoYou don't have to be arrogant to feel superior to this bug. There's no way that this is some inadvertent emergent effect of complex mechanisms reacting to each other. Somebody wrote code that in some context searches username strings for the substring "user." Even worse, under many circumstances when it finds one, it just shits itself probably looking to check that user against something it can't find, then looks for again, but can't find, then looks for again... The fact that it's obsessing you to figure out what kind of thought process could originate code that produces an interaction that expresses itself in this way IMO means that you'll probably never write code like this. Magic words, magic numbers...
- steve371 10y agoMost hilarious KB I read today.
- HeadlessChild 10y agoThat today frightens me.
- dave2000 10y agofrom the people who bought you "if you don't want your contacts to use your wifi for free, change your wifi station name to something with "_optout" in the name. They're using pretty shit programmers these days I guess. Don't Apple and Google use pretty smart guys? How were they hoping to catch up with these muppets running the show?
- cm2187 10y agoasp.net MVC is also entirely based on magic strings. They do not seem to read their own best practice guidelines.
- mattmanser 10y agoHow so? If you're going to make a wild claim like this you need to back it up with an example.
- cm2187 10y agoIf you mistype the name of the controller you will get the surprise at runtime: return RedirectToAction("Index","ProductManager", new { id=id }); Same thing in the Razor syntax, the IDE has no way to check that a class you assign to an element exists since it is a magic string instead of being a markup the IDE can validate. @Html.TextBoxFor(m => m.Name, new {@class = "title width-7" }) They built Entity Framework to get away from string based SQL statements and when they redesigned the web stack they went all-in on string based... As a result the IDE is pretty much helpless to spot errors in an asp.net MVC project before you compile (or to provide tooling - forget about renaming a controller).
- gwenzek 10y agoMy Indian cousin Useraji doesn't find this funny…
- acqq 10y agoJust checked, one of the automatically present accounts on the Windows 8.1 machine I have access to is: "HomeGroupUser$" It seems to be mostly undocumented "feature," searching for something "official" I've just found this "errata": https://support.microsoft.com/en-us/kb/981068 https://support.microsoft.com/en-us/kb/981068 "Creating or joining a HomeGroup creates the HomeGroupUser$ account and the HomeUsers group, and adds all local accounts to the group." People have real problems with it: http://answers.microsoft.com/en-us/windows/forum/windows_10-security/windows-10-start-up-user-account/e754a513-c303-44b2-b489-3f4436a5a2d8 http://answers.microsoft.com/en-us/windows/forum/windows_10-...
- tempodox 10y agoHigh CPU use when Windows is installed.
- zerr 10y agoI guess someone who implemented this passed a whiteboard interview...
- susam 10y agoYou were probably being funny. However, if I take this comment seriously, I find it unfair. Large products these days have so many moving parts that it is not always easy to reason how one part of the product may cause mysterious, interesting and incorrect behaviour in another part of the product. I wouldn't be dismissive of the calibre of an engineer just because he or she introduced a silly looking bug. One really needs to understand the root cause of a bug before one can judge the skill of the engineer behind it. However, the fact that they do not fix this bug and instead offers a workaround as a resolution might offer some clues about the quality of the code and architecture of the product or their priorities or both. As part of my job, I have discovered several bugs in Microsoft products or APIs that were blocking projects I was working on. When I filed service requests (my then employer had a premier support account with Microsoft), very smart support engineers from Microsoft were assigned to my service requests. By the way, I am calling them smart because they understood the issue accurately and quickly; that in itself could be a lot of trouble while dealing with support engineers of some companies. I remember two such service requests in particular. 1. An incorrect implementation of WebDAV protocol related to WWW-Authenticate header and redirects. It was too long ago to remember the exact details but the issue was similar to but not exactly same as https://support.microsoft.com/en-us/kb/922722 https://support.microsoft.com/en-us/kb/922722. We were trying to write some software that allows MOSS to be integrated with our SSO products. Since it was not the exact same issue as the one described in the KB article, the workaround provided in the KB article did not work for us. The response provided to me by Microsoft Premier Support was that the fix for the issue was considered multiple times in the past but due to the technical challenges involved, the changes were not approved internally in Microsoft. 2. ReadEventLog ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa363674(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/aa3... ) fails with error 87 under certain conditions when dwReadFlags has the EVENTLOG_SEEK_READ flag set. The resolution they provide at https://support.microsoft.com/en-in/kb/177199 https://support.microsoft.com/en-in/kb/177199 is to use the EVENTLOG_SEQUENTIAL_READ flag instead. While that sounds acceptable in theory, when I actually tried it out, I found another bug there. When the event log file at the remote system is 2 MB or larger, ReadEventLog with EVENTLOG_SEQUENTIAL_READ flag did not honour the nNumberOfBytesToRead parameter at all. No matter how large a buffer we allocated to read events, due to this bug we would get exactly one event for every ReadEventLog call. When this issue does not occur, we can get hundreds or thousands of events in one call. But due to this bug, we get one event per call. These two bugs together caused such a major performance issue in our product that it made our product practically unusable in some scenarios. Once again, the Microsoft support engineer began working on the service request very swiftly. He wrote his own code and replicated the exact problematic behaviour we were facing. However, he could not offer a resolution; he said that the issue was present in a very complex part of the product and it was very unlikely that the product team would ever spend time on fixing this bug. These responses led me to believe that there is a problem with the code quality and architecture of their products that makes bug fixing difficult for them. In my 10 years of career, I have never worked on a product where code complexity was cited as a reason for not fixing a genuine bug.
- padmabushan 10y agoMaster Fix could be : "Avoid using this Operating System."
- ixtli 10y agoThis is a thread where I immediately scroll to the bottom of the comments and upvote everything. I don't see why we as a community have to pretend that your fix isn't the best one :P
- onnoonno 10y agoRelevant: http://superuser.com/questions/957907/unable-to-install-fonts-on-windows-10 http://superuser.com/questions/957907/unable-to-install-font...
- alkonaut 10y agoThis has to be trivially solvable in a backwards-compatible manner (at least if the library at fault is one of windows' own which they update with windows update). Win 8.1 is an OS they actively update. So why isn't this just fixed in the next update? It would be one thing if they had to research the problem, and presented a workaround in the meantime. But they appear to have found the cause! To me it seems it would take ten times longer to find this bug, than to fix it. Once they spent the effort to find it, why not patch it?
- MichaelBurge 10y agoThey still need to write up the article, and it looks like they write the articles assuming you won't upgrade.
- forgotmypassw 10y agoProbably because sysadmins aren't willing to push updates to their Windows machines because they tend to change system settings nowadays.
- lagadu 10y agoThis sounds like there's a functionality that depends on usernames having "user" in their name. Maybe there's no trivial way of distinguishing between what the system is looking for and a "legitimate" user and fixing that would require a change to the user accounts model. I'm purely speculating here but I've seen my fair share of seemingly simple-to-fix bugs requiring huge changes.
- 0xmohit 10y agoMaybe "user" in user name causes recursion. Perhaps the "recursion" isn't trivial to fix. I hope that Microsoft doesn't use the same reasoning for security vulnerabilities.
- userulluipeste 10y agoThis is how it looks when in charge is a corporation which does not see any plausible reason for throwing resources at a given kind of problems. No mater that this is something that affects the paying customer in a very direct/personal way, no mater that this is just one symptom for possibly a wider range of buried issues. Imagine this report occurring in the community alternative ReactOS, and about the kind of attitude it would receive. ReactOS just released 0.4.1, BTW!
- cakes 10y agoHopefully there aren't too many enterprises out there with [domain]\user[0-9]+ type definitions!
- JustSomeNobody 10y agoI doubt it. Given the symptoms of the issue, I'm sure IT departments would be on the phone with MS in a heart beat.
- spriggan3 10y agoIs it possible to rename an account previously named user ? my computer running Windows 8.1 came with such account name AS an administrator.
- ape4 10y agoOn windows8.1 I found that a program with "update" in the name - eg MyUpdate.exe was treated differently by the OS.
- _kst_ 10y agoHow was it treated differently?
- ape4 10y agoAsked for admin authorization to run... even though it did nothing special. When I renamed it, it didn't do that any more.
- JdeBP 10y agoI'm guessing that this will turn out to be the well-known Installer Detection, around since the time of Windows NT 6.0. * https://technet.microsoft.com/en-gb/library/cc709628(v=ws.10).aspx https://technet.microsoft.com/en-gb/library/cc709628(v=ws.10... * https://blogs.msdn.microsoft.com/uac/2006/01/13/identification-of-administrative-applications/ https://blogs.msdn.microsoft.com/uac/2006/01/13/identificati...
- ape4 10y agoThat looks like it! Wow, crazy. My application was updating some data but not installing an application.
- blinkingled 10y agoI actually got a couple Win81 VMs that have VMUser as a user and I never noticed any CPU usage issues. But the non-solution is just pathetic response from MS - they used to talk in updates and fixits but with all the focus on Windows 10 now, they hardly seem to have a reason or incentive to care about older OSes.
- gerbilly 10y ago>I actually got a couple Win81 VMs that have VMUser as a user and I never noticed any CPU usage issues. Then I propose a new solution, just re-host your windows installation in a VM!
- malkia 10y agoOh strstr() - that witchery... your foul black magic craft has been poisoning people's minds for 40 years...
- anon_peace 10y agoMaybe this "feature" enables some kind of backdoor either within the task or corresponding library. It's strange that the task is functioning in a manner where the task is dependent upon a string (account) that contains the word "user."
- sklogic 10y agoSort of like that hilarious systemd bug with parsing the 'debug' kernel argument.
- digi_owl 10y agoThat was no bug...
- JdeBP 10y agoThis is another example of a poorly written MS KnowledgeBase article. It's version 1.0, dated 2015-01-05. It apparently has not been touched in a year despite at least one glaring spelling mistake. For those who want to know what's going on, see this report from the year before, complete with stack trace: * http://answers.microsoft.com/en-us/windows/forum/windows8_1-performance/taskhostexe-dfpcommondll-thread-high-cpu/c16ce12f-5bc4-4f59-9e08-7404c554a8e5 http://answers.microsoft.com/en-us/windows/forum/windows8_1-...
- Friedduck 10y agoShort of completely re-imaging the machine, you could delete the offending user profile and re-create it. As people have pointed out renaming a user leaves messy jumble of old and new, and may not solve the problem.