← Back to context

Comment by marcosdumay

6 days ago

Windows used to have that habit of making the processes CPU starved, and yet claiming the CPU was idle all the time.

Since the Microsoft response to the bug was denying and gaslighting the affected people, we can't tell for sure what caused it. But several people were in a situation where their computer couldn't finish any work, and the task-manager claimed all of the CPU time was spent on that line item.

As a former Windows OS engineer, based on the short statement here, my assumption would be that your programs are IO-bound, not CPU-bound, and that the next step would be to gather data (using a profiler) to investigate the bottlenecks. This is something any Win32 developer should learn how to do.

Although I can understand how "Please provide data to demonstrate that this is an OS scheduling issue since app bottlenecks are much more likely in our experience" could come across as "denying and gaslighting" to less experienced engineers and layfolk

  • I'm not the original poster, but I ran into something similar late in Win 7 (Win 8 was in beta at the time). We had some painting software, and we used open-MP to work on each scan-line of a brush in parallel.

    It worked fine on Mac. On Windows though, if you let it use as many threads as there were CPUs, it would nearly 100% of the time fail before making it through our test suite. Something in scheduling the work would deadlock. It was more likely to fail if anything was open besides the app. Basically, a brush stoke that should complete in a tenth of a second would stall. If you waited 30-60 minutes (yes minutes), it would recover and continue.

    I vaguely recall we used the Intel compiler implementation of OpenMP, not what comes with MSVC, so the fault wasn't necessarily a Microsoft issue, but could still be a kernel issue.

    I left that company later that year, and MS rolled out Windows 8. No idea how long that bug stuck around.

> Since the Microsoft response to the bug was denying and gaslighting the affected people

Well. I wouldn't go that far. Any busy dev team is incentivized to make you run the gauntlet:

1. It's not an issue (you have to prove to me it's an issue)

2. It's not my issue (you have to prove to me it's my issue)

3. It's not that important (you have to prove it has significant business value to fix it)

4. It's not that time sensitive (you have to prove it's worth fixing soon)

It was exactly like this at my last few companies. Microsoft is quite a lot like this as well.

If you have an assigned CSAM, they can help run the gauntlet. That's what they are there for.

See also: The 6 stages of developer realization:

https://www.amazon.com/Panvola-Debugging-Computer-Programmer...

  • Even when you have an expensive contract with Microsoft and a direct account manager to help you run the gauntlet you still end up having to deal with awful support people.

    Years ago at a job we were seeing issues with a network card on a VM. One of my coworkers spent 2-3 days working his way through support engineer after support engineer until they got into a call with one. He talked the engineer through what was happening. Remote VM, can only access over RDP (well, we could VNC too, but that idea just confuses Microsoft support people for some reason.)

    The support engineer decided that the way to resolve the problem was to uninstall and re-install the network card driver. Coworker decided to give the support engineer enough rope to hang themselves with, hoping it'd help him escalate faster: "Won't that break the RDP connection?" "No sir, I've done this many times before, trust me" "Okay then...."

    Unsurprisingly enough, when you uninstall the network card driver and cause the instance to have no network cards, RDP stops working. Go figure.

    Co-worker let the support engineer know that he'd now lost access, and a guess why. "Oh, yeah. I can see why that might have been a problem"

    Co-worker was right though, it did finally let us escalate further up the chain....

  • >If you have an assigned CSAM

    That's an unfortunate acronym. I assume you mean Customer Service Account Manager.

    • Customer Success Account Manager. And I would agree - it is very unfortunate.

      Definitely in my top 5 questionable acronym choices from MSFT.

  • Your reticence to accept the term gaslighting clearly indicates you've never had to interact with MSFT support.

    • On the contrary, I have spent thousands of hours interacting with MSFT support.

      What I'm getting at with my post is the dev teams support has to talk to, which they just forward along their responses verbatim.

      A lot of MSFT support does suck. There are also some really amazing engineers in the support org.

      I did my time in support early in my career (not at MSFT), and so I understand well it's extremely hard to hire good support engineers, and even harder to keep them. The skills they learn on the job makes them attractive to other parts of the org, and they get poached.

      There is also an industry-wide tendency for developers to treat support as a bunch of knuckle-dragging idiots, but at the same time they don't arm them with detailed information on how stuff works.

      4 replies →

I've never heard of this. How do you know it's windows "gaslighting" users, and not something dumb like thermal throttling or page faults?

  • It's gaslighting because it consists on people from Microsoft explicitly saying that it is impossible, it's not how Windows behave, and the user's system is idle instead of overloaded.

    Gaslighting customers was the standard Microsoft's reaction to bugs until at least 2007, when I last oversaw somebody interacting with them.