Rem0o/FanControl.HWInfo

HWInfo Pluggin failed to load

bczegeny opened this issue · 13 comments

Cannot load plugin in fancontrol

Fan Control error log v 118
HWInfo Pro with shared memory access turned on

2022-06-24 11:03:13 PM: System.NullReferenceException: Object reference not set to an instance of an object.
   at FanControl.HWInfo.HWInfoRegistry.UpdateValues(HWInfoPluginSensor[] sensors) in C:\projects\fancontrol-hwinfo\HWInfoRegistry.cs:line 65
   at FanControl.HWInfo.HWInfoPlugin.Update() in C:\projects\fancontrol-hwinfo\HWInfoPlugin.cs:line 73
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Update()
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at FanControl.Domain.ComputerAccessLayer.Update()
   at FanControl.Domain.ApplicationClock.DoActions()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Rem0o commented

The plugin doesn't use the shared memory feature anymore, it uses the "gadget" feature.

See the readme here: https://github.com/Rem0o/FanControl.HWInfo

@Rem0o Gadget is also turned on with all sensors. Plugin still fails to load

Re-installed HWInfo, reinstalled plugin, Rebooted.

What I find interesting about this error, is fan control is not stored at "C:\projects\fancontrol-hwinfo\HWInfoPlugin.cs"
Why is it trying to reference this location in the log?

Or course its going to not be able to reference this file, the file doesn't exist?
Should this path be relative to the folder of fancontroller.exe?

New error log report

2022-06-26 4:30:36 PM: System.InvalidOperationException: DialogHost is already open.
   at MaterialDesignThemes.Wpf.DialogHost.<ShowInternal>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MaterialDesignThemes.Wpf.DialogHost.<Show>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FanControl.Domain.DialogService.<>c__DisplayClass8_0`1.<<ShowDialog>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FanControl.Domain.ApplicationContext.<InvokeAsync>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FanControl.Domain.DialogService.<ShowDialog>d__8`1.MoveNext()
2022-06-26 4:30:37 PM: Unhandled exception in FanControl v1.0.0.0
2022-06-26 4:30:37 PM: System.NullReferenceException: Object reference not set to an instance of an object.
   at FanControl.HWInfo.HWInfoRegistry.UpdateValues(HWInfoPluginSensor[] sensors) in C:\projects\fancontrol-hwinfo\HWInfoRegistry.cs:line 65
   at FanControl.HWInfo.HWInfoPlugin.Update() in C:\projects\fancontrol-hwinfo\HWInfoPlugin.cs:line 73
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Update()
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at FanControl.Domain.ComputerAccessLayer.Update()
   at FanControl.Domain.ApplicationClock.DoActions()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
2022-06-26 4:30:38 PM: Unhandled exception in FanControl v1.0.0.0
2022-06-26 4:30:38 PM: System.NullReferenceException: Object reference not set to an instance of an object.
   at FanControl.HWInfo.HWInfoRegistry.UpdateValues(HWInfoPluginSensor[] sensors) in C:\projects\fancontrol-hwinfo\HWInfoRegistry.cs:line 65
   at FanControl.HWInfo.HWInfoPlugin.Update() in C:\projects\fancontrol-hwinfo\HWInfoPlugin.cs:line 73
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Update()
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at FanControl.Domain.ComputerAccessLayer.Update()
   at FanControl.Domain.ApplicationClock.DoActions()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

deleted fan controller, went through fan setup again.
Saved config after it found my fans
Closed Fan Controller
Downloaded HWInfo plugin
Extracted it, placed it in the plugins folder of Fan controller.
Made sure HWInfo was running with sensors and gadgets turn on
Started Fan controller.

Error cannot load HWInfo Plugin check error log

Error log says this:

2022-06-26 9:51:24 PM: System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at FanControl.HWInfo.HWInfoRegistry.GetKind(RegistryKey key, Int32 index) in C:\projects\fancontrol-hwinfo\HWInfoRegistry.cs:line 88
   at FanControl.HWInfo.HWInfoRegistry.GetSensors() in C:\projects\fancontrol-hwinfo\HWInfoRegistry.cs:line 45
   at FanControl.HWInfo.HWInfoPlugin.Load(IPluginSensorsContainer container) in C:\projects\fancontrol-hwinfo\HWInfoPlugin.cs:line 43
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Open()
2022-06-26 9:51:24 PM: HWInfo could not initialize. See the error log for more details.
Rem0o commented

What kind of sensors did you export with HWInfo? Anything that is non temperature or RPM?

Every sensor is selected to report to gadget.

Sounds like you have set a max size on the array to hold sensor's

What is that array size? Maybe I need to reduce the amount of sensors?

Rem0o commented

The code is here: https://github.com/Rem0o/FanControl.HWInfo/blob/master/HWInfoRegistry.cs#L89

Seems like a string exported by HWInfo can have no unit, hence no space, and thus the [1] fails.

Hmm so some sensory I have has no unit and that's causing the issue, I'll double-check if there is any

This is my gadget sensors not sure what one would cause an issue:

[Variables]
Index=0: Virtual Memory Committed -  9,734 MB
1: Virtual Memory Available -  27,811 MB
2: Virtual Memory Load -  25.9 %
3: Physical Memory Used -  7,000 MB
4: Physical Memory Available -  25,681 MB
5: Physical Memory Load -  21.4 %
6: Page File Usage -  0.0 %
84: Core VIDs -  1.363 V
7: Core 0 VID -  1.363 V
8: Core 1 VID -  1.363 V
9: Core 2 VID -  1.363 V
10: Core 3 VID -  1.363 V
11: Core 4 VID -  1.363 V
12: Core 5 VID -  1.363 V
13: Core 6 VID -  1.363 V
14: Core 7 VID -  1.363 V
85: Core Clocks -  3,898.2 MHz
15: Core 0 Clock (perf #6/7) -  3,780.1 MHz
16: Core 1 Clock (perf #4/5) -  3,780.1 MHz
17: Core 2 Clock (perf #3/4) -  3,780.1 MHz
18: Core 3 Clock (perf #1/2) -  4,725.1 MHz
19: Core 4 Clock (perf #7/8) -  3,780.1 MHz
20: Core 5 Clock (perf #2/3) -  3,780.1 MHz
21: Core 6 Clock (perf #5/6) -  3,780.1 MHz
22: Core 7 Clock (perf #1/1) -  3,780.1 MHz
23: Bus Clock -  100.0 MHz
86: Core Effective Clocks -  277.5 MHz
24: Core 0 T0 Effective Clock -  124.0 MHz
25: Core 0 T1 Effective Clock -  16.1 MHz
26: Core 1 T0 Effective Clock -  113.8 MHz
27: Core 1 T1 Effective Clock -  20.7 MHz
28: Core 2 T0 Effective Clock -  247.7 MHz
29: Core 2 T1 Effective Clock -  20.9 MHz
30: Core 3 T0 Effective Clock -  861.2 MHz
31: Core 3 T1 Effective Clock -  524.3 MHz
32: Core 4 T0 Effective Clock -  52.4 MHz
33: Core 4 T1 Effective Clock -  20.5 MHz
34: Core 5 T0 Effective Clock -  537.0 MHz
35: Core 5 T1 Effective Clock -  20.4 MHz
36: Core 6 T0 Effective Clock -  79.8 MHz
37: Core 6 T1 Effective Clock -  16.8 MHz
38: Core 7 T0 Effective Clock -  1,402.5 MHz
39: Core 7 T1 Effective Clock -  381.8 MHz
40: Average Effective Clock -  277.5 MHz
87: Core Usage -  5.2 %
41: Core 0 T0 Usage -  5.3 %
42: Core 0 T1 Usage -  0.7 %
43: Core 1 T0 Usage -  2.3 %
44: Core 1 T1 Usage -  0.7 %
45: Core 2 T0 Usage -  2.3 %
46: Core 2 T1 Usage -  0.7 %
47: Core 3 T0 Usage -  16.1 %
48: Core 3 T1 Usage -  8.4 %
49: Core 4 T0 Usage -  2.3 %
50: Core 4 T1 Usage -  0.7 %
51: Core 5 T0 Usage -  10.0 %
52: Core 5 T1 Usage -  0.7 %
53: Core 6 T0 Usage -  1.5 %
54: Core 6 T1 Usage -  0.7 %
55: Core 7 T0 Usage -  24.6 %
56: Core 7 T1 Usage -  6.9 %
57: Max CPU/Thread Usage -  24.6 %
58: Total CPU Usage -  5.2 %
89: Core Utility -  7.0 %
59: Core 0 T0 Utility -  2.9 %
60: Core 0 T1 Utility -  0.3 %
61: Core 1 T0 Utility -  2.8 %
62: Core 1 T1 Utility -  0.4 %
63: Core 2 T0 Utility -  6.1 %
64: Core 2 T1 Utility -  0.4 %
65: Core 3 T0 Utility -  21.9 %
66: Core 3 T1 Utility -  13.4 %
67: Core 4 T0 Utility -  1.2 %
68: Core 4 T1 Utility -  0.4 %
69: Core 5 T0 Utility -  13.5 %
70: Core 5 T1 Utility -  0.4 %
71: Core 6 T0 Utility -  1.8 %
72: Core 6 T1 Utility -  0.3 %
73: Core 7 T0 Utility -  36.1 %
74: Core 7 T1 Utility -  9.7 %
75: Total CPU Utility -  7.0 %
88: Core Ratios -  39.0 x
76: Core 0 Ratio -  37.8 x
77: Core 1 Ratio -  37.8 x
78: Core 2 Ratio -  37.8 x
79: Core 3 Ratio -  47.3 x
80: Core 4 Ratio -  37.8 x
81: Core 5 Ratio -  37.8 x
82: Core 6 Ratio -  37.8 x
83: Core 7 Ratio -  37.8 x
90: Package C6 Residency -  0.0 %
115: Core C0 Residency -  12.3 %
91: Core 0 C0 Residency -  3.0 %
92: Core 1 C0 Residency -  3.0 %
93: Core 2 C0 Residency -  6.2 %
94: Core 3 C0 Residency -  30.6 %
95: Core 4 C0 Residency -  1.4 %
96: Core 5 C0 Residency -  13.2 %
97: Core 6 C0 Residency -  2.1 %
98: Core 7 C0 Residency -  39.0 %
116: Core C1 Residency -  63.9 %
99: Core 0 C1 Residency -  96.6 %
100: Core 1 C1 Residency -  40.6 %
101: Core 2 C1 Residency -  61.4 %
102: Core 3 C1 Residency -  69.4 %
103: Core 4 C1 Residency -  21.1 %
104: Core 5 C1 Residency -  85.4 %
105: Core 6 C1 Residency -  76.0 %
106: Core 7 C1 Residency -  61.0 %
117: Core C6 Residency -  23.8 %
107: Core 0 C6 Residency -  0.5 %
108: Core 1 C6 Residency -  56.4 %
109: Core 2 C6 Residency -  32.4 %
110: Core 3 C6 Residency -  0.0 %
111: Core 4 C6 Residency -  77.5 %
112: Core 5 C6 Residency -  1.4 %
113: Core 6 C6 Residency -  21.9 %
114: Core 7 C6 Residency -  0.0 %
118: Memory Clock -  1,600.0 MHz
119: Memory Clock Ratio -  16.00 x
120: Tcas -  16 T
121: Trcd -  18 T
122: Trp -  18 T
123: Tras -  36 T
124: Trc -  75 T
125: Trfc -  560 T
126: Command Rate -  1 T
127: CPU (Tctl/Tdie) -  55.9 øC
128: CPU Die (average) -  51.9 øC
129: CPU CCD1 (Tdie) -  59.0 øC
176: Core Temperatures -  43.4 øC
130: Core0 (CCD1) -  40.6 øC
131: Core1 (CCD1) -  41.5 øC
132: Core2 (CCD1) -  41.2 øC
133: Core3 (CCD1) -  48.1 øC
134: Core4 (CCD1) -  39.7 øC
135: Core5 (CCD1) -  45.8 øC
136: Core6 (CCD1) -  40.1 øC
137: Core7 (CCD1) -  50.0 øC
177: L3 Temperatures -  40.8 øC
138: L3 Cache (CCD1) -  40.8 øC
139: CPU IOD Hotspot -  39.8 øC
140: CPU IOD Average -  37.3 øC
141: CPU Core Voltage (SVI2 TFN) -  1.362 V
142: SoC Voltage (SVI2 TFN) -  0.994 V
143: CPU Core VID (Effective) -  1.381 V
144: CPU Core Current (SVI2 TFN) -  20.782 A
145: SoC Current (SVI2 TFN) -  7.376 A
146: CPU TDC -  20.757 A
147: CPU EDC -  20.757 A
148: CPU Package Power -  52.536 W
178: Core Powers -  2.218 W
149: Core 0 Power -  1.592 W
150: Core 1 Power -  1.097 W
151: Core 2 Power -  1.673 W
152: Core 3 Power -  3.987 W
153: Core 4 Power -  0.602 W
154: Core 5 Power -  2.578 W
155: Core 6 Power -  1.400 W
156: Core 7 Power -  4.819 W
157: CPU Core Power (SVI2 TFN) -  27.455 W
158: CPU SoC Power (SVI2 TFN) -  7.334 W
159: Core+SoC Power (SVI2 TFN) -  34.789 W
160: CPU PPT -  51.237 W
161: Infinity Fabric Clock (FCLK) -  1,600.0 MHz
162: Memory Controller Clock (UCLK) -  1,600.0 MHz
179: L3 Clocks -  4,362.7 MHz
163: L3 Cache (CCD1) -  4,362.7 MHz
164: Frequency Limit - Global -  4,822.9 MHz
165: CPU PPT Limit -  13.0 %
166: CPU TDC Limit -  13.0 %
167: CPU EDC Limit -  10.9 %
168: Thermal Limit -  57.7 %
169: Power Reporting Deviation (Accuracy) -  157.7 %
170: Thermal Throttling (HTC) -  No
171: Thermal Throttling (PROCHOT CPU) -  No
172: Thermal Throttling (PROCHOT EXT) -  No
173: DRAM Read Bandwidth -  0.609 Gbps
174: DRAM Write Bandwidth -  0.284 Gbps
175: Average Active Core Count -  1.0 
180: Motherboard -  38 øC
181: Temp3 -  38 øC
182: CPU (Weighted Value) -  38 øC
183: CPU Package -  55 øC
184: CPU -  42 øC
185: Temp9 -  38 øC
186: TSI0 (CPU) -  55 øC
187: TSI1 (PCH) -  60 øC
188: Vcore -  1.176 V
189: +5V -  4.699 V
190: AVSB -  3.392 V
191: 3VCC -  3.120 V
192: +12V -  12.076 V
193: VIN8 -  0.784 V
194: VIN4 -  0.928 V
195: 3VSB -  3.392 V
196: VBAT -  3.280 V
197: VTT -  1.808 V
198: VIN5 -  0.784 V
199: VIN6 -  0.992 V
200: VIN2 -  1.024 V
201: VIN3 -  0.920 V
202: VIN7 -  0.976 V
203: VIN9 -  0.784 V
204: VHIF -  3.120 V
205: CPU -  584 RPM
206: W_PUMP+ -  1,942 RPM
207: Chipset -  60.0 øC
208: VDD Voltage -  1.113 V
209: NB Voltage -  1.013 V
210: VDD Current -  17.647 A
211: NB Current -  12.706 A
212: CPU_OPT -  560 RPM
213: Chipset Fan -  2,198 RPM
214: Drive Temperature -  39 øC
215: Drive Temperature 2 -  48 øC
216: Drive Remaining Life -  100.0 %
217: Drive Failure -  No
218: Drive Warning -  No
219: Total Host Writes -  947 GB
220: Total Host Reads -  2,881 GB
221: Drive Temperature -  41 øC
222: Drive Remaining Life -  90.0 %
223: Drive Failure -  No
224: Drive Warning -  No
225: Total Host Writes -  73,880 GB
226: Total Host Reads -  111,647 GB
227: Read Activity -  0.0 %
228: Write Activity -  0.0 %
229: Total Activity -  0.0 %
230: Read Rate -  0.000 MB/s
231: Write Rate -  0.000 MB/s
232: Read Total -  15 MB
233: Write Total -  0 MB
234: Read Activity -  0.0 %
235: Write Activity -  0.0 %
236: Total Activity -  0.0 %
237: Read Rate -  0.000 MB/s
238: Write Rate -  0.000 MB/s
239: Read Total -  2 MB
240: Write Total -  0 MB
241: Read Activity -  0.0 %
242: Write Activity -  0.0 %
243: Total Activity -  0.0 %
244: Read Rate -  0.000 MB/s
245: Write Rate -  0.000 MB/s
246: Read Total -  4 MB
247: Write Total -  2 MB
248: Read Activity -  0.0 %
249: Write Activity -  0.0 %
250: Total Activity -  0.0 %
251: Read Rate -  0.000 MB/s
252: Write Rate -  0.000 MB/s
253: Read Total -  2 MB
255: GPU Temperature -  42.7 øC
256: GPU Memory Junction Temperature -  48.0 øC
257: GPU Hot Spot Temperature -  55.6 øC
258: GPU Core Voltage -  0.894 V
314: GPU Rail Voltages -  10.720 V
259: GPU PCIe +12V Input Voltage -  12.005 V
260: GPU 8-pin #1 Input Voltage -  12.100 V
261: GPU 8-pin #2 Input Voltage -  12.221 V
262: GPU Misc0 Input Voltage -  11.903 V
263: GPU Misc1 Input Voltage -  12.266 V
264: GPU Misc2 Input Voltage -  12.205 V
265: GPU 8-pin #3 Input Voltage -  12.124 V
266: GPU SRAM Output Voltage -  0.938 V
267: GPU Power -  126.162 W
315: GPU Rail Powers -  25.620 W
268: GPU Core (NVVDD) Input Power (sum) -  21.749 W
269: GPU SRAM Input Power (sum) -  20.897 W
270: GPU FBVDD Input Power (sum) -  62.833 W
271: GPU PCIe +12V Input Power -  17.360 W
272: GPU 8-pin #1 Input Power -  55.359 W
273: GPU 8-pin #2 Input Power -  27.034 W
274: GPU Misc0 Input Power -  3.809 W
275: GPU Misc1 Input Power -  20.876 W
276: GPU Misc2 Input Power -  10.679 W
277: GPU Core (NVVDD2) Input Power (sum) -  42.646 W
278: GPU Input PP Source Power (sum) -  83.521 W
279: GPU Core (NVVDD1) Input Power (sum) -  2.137 W
280: GPU Misc3 Input Power (sum) -  3.487 W
281: GPU 8-pin #3 Input Power -  26.383 W
282: GPU Core (NVVDD) Output Power (sum) -  29.368 W
283: GPU Core (NVVDD) Output Power -  3.662 W
284: GPU Core (NVVDD) Output Power -  14.649 W
285: GPU SRAM Output Power -  14.708 W
286: GPU Clock -  1,860.0 MHz
287: GPU Memory Clock -  2,375.5 MHz
288: GPU Video Clock -  1,620.0 MHz
289: GPU Effective Clock -  1,860.0 MHz
290: GPU Core Load -  0.0 %
291: GPU Memory Controller Load -  1.0 %
292: GPU Video Engine Load -  0.0 %
293: GPU Bus Load -  0.0 %
294: GPU Memory Usage -  5.4 %
317: GPU D3D Usages -  0.0 %
295: GPU D3D Usage -  0.3 %
296: GPU Video Decode 0 Usage -  0.0 %
297: GPU Video Encode 0 Usage -  0.0 %
298: GPU Computing (Compute_0) Usage -  0.0 %
299: GPU Computing (Cuda) Usage -  0.0 %
300: GPU Computing (Compute_1) Usage -  0.0 %
301: GPU VR Usage -  0.0 %
316: GPU Performance Limiters -  Yes
302: Performance Limit - Power -  No
303: Performance Limit - Thermal -  No
304: Performance Limit - Reliability Voltage -  No
305: Performance Limit - Max Operating Voltage -  No
306: Performance Limit - Utilization -  Yes
307: Performance Limit - SLI GPUBoost Sync -  No
308: Total GPU Power (normalized) [% of TDP] -  37.0 %
309: Total GPU Power [% of TDP] -  32.4 %
310: GPU Memory Allocated -  1,322 MB
311: GPU D3D Memory Dedicated -  1,100 MB
312: GPU D3D Memory Dynamic -  157 MB
313: PCIe Link Speed -  16.0 GT/s
318: GPU VRM Temperature -  43 øC
319: GPU VRM Temperature -  43 øC
320: Total DL -  54 MB
321: Total UP -  4 MB
322: Current DL rate -  1.504 KB/s
323: Current UP rate -  0.734 KB/s
324: Total Errors -  0 
254: Write Total -  0 MB

Is it just me or are you not returning a value when the temperature is in Celcius?

I mainly know javascript so maybe I'm not reading this core right

// maybe should not support F since no conversion is available

Should this function not return return HwInfoSensorType.Temperature; in the case "°C":

private static HwInfoSensorType GetSensorType(RegistryKey key, int index)
        {
            var value = (string)key.GetValue(VALUE_REGISTRY_NAME + index);
            var unit = value.Trim().Split(' ').Skip(1).FirstOrDefault() ?? string.Empty;

            switch (unit.ToUpperInvariant())
            {
                case "°C":
                // maybe should not support F since no conversion is available
                case "°F":
                    return HwInfoSensorType.Temperature;
                case "RPM":
                    return HwInfoSensorType.RPM;
                default:
                    return HwInfoSensorType.NotSupported;
            }
        }
        ```
Rem0o commented

Use latest version from AppVeyor, and see if it fixes it.

FIXED! Finally loading correctly!