winsiderss / systeminformer

A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com
https://systeminformer.sourceforge.io
MIT License
10.6k stars 1.36k forks source link

Status Bar: Process, Handles, Threads sometimes shows 0 for all three #1595

Open Almighty188 opened 1 year ago

Almighty188 commented 1 year ago

Brief description of your issue

The Status Bar: Process, Handles, and Threads sometimes will show 0 for all three at the same time and then revert back to the actual count.

Steps to reproduce (optional)

Have System Informer main window opened with Customized Status bar showing the items: Number of processes, Number of threads, Number of Handles shown

Expected behavior (optional)

It is supposed to show the correct count

Actual behavior (optional)

It shows the correct count for all three but once in awhile, all three will show 0 at the same time.

System Informer nightly v3.0.5974 Windows 11 Profession Edition x64 22H2 Build 22623.1250

Environment (optional)

System Informer nightly v3.0.5974 and earlier nightly builds
Windows 11 Profession Edition x64 22H2 Build 22623.1250
dmex commented 1 year ago

Does the System Information > CPU window also show 0?

image

Almighty188 commented 1 year ago

How do I actually get that window you pasted to show up?

image

dmex commented 1 year ago

Click one of those graphs to show the advanced details

Almighty188 commented 1 year ago

Thanks, this is what it shows currently, I've included Windows Task Manager -> Performance -> CPU for reference which does show the Processes, Threads and Handles:

image

dmex commented 1 year ago

Is this an official build downloaded from here or did you download from somewhere else?

Almighty188 commented 1 year ago

All official builds as it happened with all the nightly builds. https://systeminformer.sourceforge.io/nightly.php is where I got the v3.0.5988 and v3.0.5974 since when this was initially reported, the screenshots in the last post https://github.com/winsiderss/systeminformer/issues/1595#issuecomment-1430734497 is actually from v3.0.6043 while https://github.com/winsiderss/systeminformer/issues/1595#issuecomment-1430669725 is from v3.0.5988. v3.0.6043 and v3.0.6058 was downloaded from https://github.com/winsiderss/si-builds/releases which you mentioned in another post in response to someone asking for older builds here https://github.com/winsiderss/systeminformer/discussions/1580#discussioncomment-4821072.

I always download the -bin.zip zipped build so I am running the SystemInformer.exe as admin under the amd64 directory without actually installing it.

This is what it looks like when it is working correctly, screenshot is from v3.0.6058: image

I don't normally use Windows Task Manager except in this case to show that they are showing correct data when System Informer is showing 0.

dmex commented 1 year ago

Your screenshot shows missing borders for these windows:

image

There should be borders like these:

image

Almighty188 commented 1 year ago

You are right that it isn't possible for these counters to be zero because Windows Task Manager does show actual numbers in the same screenshot. It seems like the last screenshot is missing the borders as you had mentioned unless Snagit messed with the screenshot but the earlier comment https://github.com/winsiderss/systeminformer/issues/1595#issuecomment-1430734497 does have the borders. Could the problem also be related to the system having a large number count for those counters that after the number exceeds a certain number, it will just display 0? As of now under System Informer v3.0.6226:

image

I also do have gadgets running which does gather the same info via WMI so not sure if it's related or not as it would be related to problem #1.

image

dmex commented 1 year ago

Could the problem also be related to the system having a large number count for those counters that after the number exceeds a certain number, it will just display 0?

No the processor resets any values that are too large then continues incrementing the value. The current maximum is about 4 billion and if you added 1500 then it'll show 500.

last screenshot is missing the borders as you had mentioned

Are you able to create a dump file and upload it here or email it? Right-click systeminformer.exe on the process list and select Create Dump File while these values are zero and we can check why they're not getting updated.

Almighty188 commented 1 year ago

Actually, I added the Handles column and after 3 days of uptime - I sorted the Handles by largest to smallest, don't have screenshots for both now but I was at 2,000,000+ (2 Million) handles, there were two offending processes: msmoney.exe which is Microsoft Money Sunset Edition with 700,000 handles DellFanManagement.exe which is a utility to manage the Dell laptop fan speed with 224,000 handles.
image image

I manually closed msmoney.exe since it backs up the data which takes a minute and then started it again while I clicked on restart on the DellFanManagement.exe and basically the total handles systemwide went back to 200,000 and then the counters for Processes, Threads, and Handles in SystemInformer works again.

The next time it happens which should be within a few days, I will create the dump file and submit it.

Almighty188 commented 1 year ago

I just updated to System Informer v3.0.6303 nighty build a few minutes ago, current system uptime is 23 hours and 15 minutes. image

When I tried to create the dump file, it prompts to Save as and then it tries to create minidump and then did the following: image

After closing and manually starting msmoney.exe and restarting DellFanManagement.exe - Processes, Threads, Handles will show 0 for a few minutes and then show the correct count and alternate between the correct counter and 0 and then a few more minutes will return back to normal where it shows the counter: image This shows handles for DellFanManagement.exe: image

dmex commented 1 year ago

Microsoft Money Sunset Edition with 700,000 handles Dell laptop fan speed with 224,000 handles.

Yep those programs are responsible for your handle leaks. You should report the handle leaks for the Dell tool on their github.

When I tried to create the dump file, it prompts to Save as and then it tries to create minidump and then did the following:

Try creating the dump for systeminformer.exe using Windows Task Manager?

Almighty188 commented 1 year ago

I already reported the problem on their forum thread at https://notebooktalk.net/topic/20-dell-fan-management-%E2%80%94-software-for-controlling-the-dell-laptop-fan-speed/page/4/ over4 days ago which is newer as the github one which is still v2.1.1 does not have the GUI interface which is different builds of v3.0 Beta and v2.1.1 only runs on the command line.

When it happens again, I'll try creating the dump for systeminformer.exe using Windows Task Manager. I thought the dump if it had worked from System Informer might have been more detailed.

Almighty188 commented 1 year ago

It's showing all zeroes now, Creating a dump on SystemInformer.exe from System Informer didn't work as just like last time, it said Invalid Function. Successfully created the dump file on SystemInformer.exe in Windows Task Manaager which is available for download here: https://krakenfiles.com/view/TGAcoDfqd8/file.html

Almighty188 commented 1 year ago

Here is a dump file created by System Informer v3.0.6433 while it's showing all zeros which can be downloaded at: https://krakenfiles.com/view/LwJ6F0kYOd/file.html

image

dmex commented 1 year ago

All of those values are zeroed immediately before querying the process list: https://github.com/winsiderss/systeminformer/blob/a7cce791b342c74168c52abbcd8b597c310c9479/SystemInformer/procprv.c#L2104-L2111

PhEnumProcesses is a wrapper for NtQuerySystemInformation and it would be failing with some error code (STATUS_NO_MEMORY?) and the function is returning without being able to update anything. Technically all the processes should be immediately removed since it wasn't able to query the processes list but it only zeros those 3 values.

Our code hasn't changed for ~ 15 years and the information classes we're using with NtQuerySystemInformation haven't changed since NT 3.5 (30 or so years) and I have no idea why it's only failing on your machine🤷‍♂️

Almighty188 commented 1 year ago

Seems to be related to the number of handles on the system since once I kill the processes when then handles are high on those two processes, the problem is fixed.