TenOf11 Posted December 20, 2017 Share Posted December 20, 2017 The 32-bit version of Corsair Link is constantly taking up too much memory and, conversely, logging the following errors. CorsairLink4.Common.Shared.DevicesData.ComponentException: Component crashes. Error: Exception of type 'System.Management.ManagementException' was thrown.CorsairLink4.Common.Shared.DevicesData.ComponentException: Component crashes. Error: Exception of type 'System.OutOfMemoryException' was thrown.CorsairLink4.Common.Shared.DevicesData.ComponentException: Component crashes. Error: External component has thrown an exception.CorsairLink4.Common.Shared.DevicesData.ComponentException: Component crashes. Error: Insufficient memory to continue the execution of the program.CorsairLink4.Common.Shared.DevicesData.DeviceException: Device crashes. Device: HID\VID_1B1C&PID_0C04\6&129B129F&0&0000 Error: Exception of type 'System.OutOfMemoryException' was thrown. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.CorsairLink4.Common.Shared.DevicesData.DeviceException: Device crashes. Device: HID\VID_1B1C&PID_0C04\6&129B129F&0&0000 Error: Index was outside the bounds of the array. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.System.IO.IOException: Not enough storage is available to complete this operation.System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.System.OutOfMemoryException: Insufficient memory to continue the execution of the program.System.Threading.Tasks.TaskSchedulerException: An exception was thrown by a TaskScheduler. ---> System.ObjectDisposedException: Cannot access a disposed object. These Out Of Memory errors are most likely caused by a 32-bit application running within a 64-bit environment, such as with the current versions of Corsair Link. Does anyone know when will a 64-bit version of Corsair Link will be available? Thanks, in advance. Link to comment Share on other sites More sharing options...
DevBiker Posted December 20, 2017 Share Posted December 20, 2017 These Out Of Memory errors are most likely caused by a 32-bit application running within a 64-bit environment, such as with the current versions of Corsair Link. Does anyone know when will a 64-bit version of Corsair Link will be available? Thanks, in advance. Nope, not the root cause. It's an issue with WMI ... looks like they are trying to access a disposed object. "OutOfMemoryException" is something of a catch-all, particularly when crossing the managed/unmanaged boundary. Example, from MSDN: This exception may be thrown with an additional message, "Not enough storage is available to complete this operation," when invoking a method on a COM object that returns a user-defined type that contains a safe array (an array of non-fixed size). This is because the .NET Framework cannot marshal a structure field with a safe array type. Link to comment Share on other sites More sharing options...
DevBiker Posted December 20, 2017 Share Posted December 20, 2017 Excellent stack trace, though. This should provide Corsair Dustin & The Dev Team details on what's going on to get an actual fix. Link to comment Share on other sites More sharing options...
Corsair Employee Corsair Dustin Posted December 20, 2017 Corsair Employee Share Posted December 20, 2017 I've never seen this problem before. Which version of Link are you running, and is your system memory usage steadily creeping up as Link runs? Also, random question, how much spare capacity do you have on each of your storage drives? Link to comment Share on other sites More sharing options...
TenOf11 Posted December 20, 2017 Author Share Posted December 20, 2017 Corsair LINK 4.9.3.25 System memory, per se, is not creeping up, but memory for the CorsairLink4.Service.exe process creeps up. At last killing of the process, memory utilization was ~1.7 GB. For storage free space, I have... C - 302 GB D - 84 GB E - 302 GB F - 6.3 TB (I'll add these drives to my specs on this site as well) I believe that the "storage space" being referred to in the errors has to do with the amount of memory allocated for use by the application. But again, I didn't build the application, so that's just a guess. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 21, 2017 Author Share Posted December 21, 2017 Ok. A couple hours more and I finally have some better data. Attached are two files. PNG - Shows the end result of a 1 hour process capture. This clearly shows that the software has a Handle Leak. ZIP containing the BLG - The underlying data for the 1 hour process capture. Sadly, I don't believe a 64-bit version will resolve this type of issue. Instead, it would just take even more memory. Is this something we can submit to Corsair?CorsairLink4.Service_HandleLeak.blg.zip Link to comment Share on other sites More sharing options...
DevBiker Posted December 21, 2017 Share Posted December 21, 2017 Yeah. I'm sure Corsair Dustin will grab it. Question: do you have logs for the service? They should be in C:\ProgramData\CLink4 Link to comment Share on other sites More sharing options...
DevBiker Posted December 21, 2017 Share Posted December 21, 2017 It's gotta be some interaction on your system ... I've had Link running all day (quite literally) ... my handle count is at 675. The question is ... what?? Link to comment Share on other sites More sharing options...
TenOf11 Posted December 21, 2017 Author Share Posted December 21, 2017 Possibly. I'm running some more diagnostics right now to grab some more data. I'll jump into the process and see if I can determine which handles are being left open. Maybe that will point us somewhere. Link to comment Share on other sites More sharing options...
DevBiker Posted December 21, 2017 Share Posted December 21, 2017 I'm gonna toss something out there because of a stack trace on another thread ... it may have something to do with the AMD video card and WMI. Another thread had a stack trace with an OutOfMemory exception indicating that it occurred while attempting to marshal an array from WMI. And you have an AMD card. I'm not saying that your workaround is go out and buy NVidia cards. But it seems plausible as both posts have that in common ... and it's certainly different from my system. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 21, 2017 Author Share Posted December 21, 2017 It's interesting that you state video card because the Corsair LINK 4 frontend application states I have 3 of them when I only have 2. The fan speed on the 3rd (bottom) is way wrong. Link to comment Share on other sites More sharing options...
DevBiker Posted December 21, 2017 Share Posted December 21, 2017 Yeah, the whole issue with multiple phantom AMD GPUs is known. It looks like there might be additional related issues as well. I'd bet that when they get the Phantom GPU issue fixed, it'll fix this as well. It's just too much coincidence to ignore. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 21, 2017 Author Share Posted December 21, 2017 Just an update. Looking at Process Explorer the handle leak appears to be for Tokens. Tokens are being acquired, but not released. Link to comment Share on other sites More sharing options...
Corsair Employee Corsair Dustin Posted December 21, 2017 Corsair Employee Share Posted December 21, 2017 So there are a couple of changes under the hood to Link 4.9.4 that may or may not impact this, fixing some underlying issues where old coolers could cause steady resource creep over time. I don't believe the duplicate AMD GPU problem is fixed in 4.9.4, but it's worth seeing if it solves these problems when it goes up. We're trying to get it uploaded before the end of the week. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 21, 2017 Author Share Posted December 21, 2017 Hey Corsair Dustin, Just curious. Do you know if one of the changes in 4.9.4 relate to closing the handle returned by the OpenProcessToken function? I ask because the following is the stack for the handle being left open. Handle = 0x0000e464 - OPEN Thread ID = 0x0000119c, Process ID = 0x00003ce0 0xa7b8756f: +0xa7b8756f 0xa7803553: +0xa7803553 0xb3d82214: +0xb3d82214 0x62635001: +0x62635001 0x62636353: +0x62636353 0x62691923: +0x62691923 0x6264ab94: +0x6264ab94 0x6263bcd0: +0x6263bcd0 0xb3d59314: +0xb3d59314 0xb3d5920b: +0xb3d5920b 0xb3d591be: +0xb3d591be [color="Red"][size="4"][b]0x778cf95c: ntdll!NtOpenProcessToken+0x0000000c 0x76de78f4: KERNELBASE!OpenProcessToken+0x00000014[/b][/size][/color] 0x1009f837: cpuidsdk!QueryInterface+0x00060963 Looking at the handle counts, after 20 minutes of running, Token handles appears to be running away. 12779 Handles Type Count None 8 Event 264 Section 45 File 102 Directory 5 Mutant 21 WindowStation 2 Semaphore 19 Key 25 [color="red"][size="4"][b]Token 12152[/b][/size][/color] Thread 84 Desktop 1 IoCompletion 26 Timer 2 TpWorkerFactory 4 ALPC Port 8 WaitCompletionPacket 11 Link to comment Share on other sites More sharing options...
DevBiker Posted December 22, 2017 Share Posted December 22, 2017 That looks like it's in the CPUIDSDK. What's not clear is if it's from the CPUID SDK COM component not being released (the call is to QueryInterface, which is a COM infrastructure call) in Link or if there's a bug in the CPUID SDK. So ... I wonder, if you replace the CPUID SDK COM component with a previous version, would that work? I'm (personally) using an earlier version of the CPUID SDK (that doesn't support Ryzen or Coffee Lake or something); I simply replaced it in the Link installation folder. Would you be interested in trying that? If so, I can PM you a link to the DLL to download. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 22, 2017 Author Share Posted December 22, 2017 Certainly. Where do I get the file(s)? Link to comment Share on other sites More sharing options...
TenOf11 Posted December 22, 2017 Author Share Posted December 22, 2017 Good call DevBiker. Switching from CPUID SDK v1.1.8.3 to v1.1.7.3 has definitely reduced the Token issue. After well-over an hour, the handles are significantly lower than with v1.1.8.3. Though the process seems to be using slightly more CPU and is still consuming most of it's available memory. 857 Handles Type Count None 8 Event 321 Section 45 File 250 Directory 5 Mutant 21 WindowStation 2 Semaphore 19 Key 25 Token 2 Thread 102 Desktop 1 IoCompletion 32 Timer 2 TpWorkerFactory 4 ALPC Port 7 WaitCompletionPacket 11 Link to comment Share on other sites More sharing options...
DevBiker Posted December 22, 2017 Share Posted December 22, 2017 Very interesting. Well ... we seem to have a root cause. I know that Corsair Dustin has been working with the CPUID SDK folks so this will be one to add to the list. Not much else we can do here but, I guess, see if v1.1.7.3 works for you and if there are any additional issues. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 22, 2017 Author Share Posted December 22, 2017 Token handle leak appears to be resolved by down-versioning the CPU ID SDK DLL, but memory crashes continue. I'll see if I can get some more data while waiting for 4.9.4. Link to comment Share on other sites More sharing options...
TenOf11 Posted December 23, 2017 Author Share Posted December 23, 2017 4.9.4.28 has the same issues. I'll also be extending the memory consumption issue to the front-end application as well, but it does not have the handle leak. Does anyone know if this product has publicly available bug tracking? Link to comment Share on other sites More sharing options...
DevBiker Posted December 23, 2017 Share Posted December 23, 2017 No, they don't. Do you have logging enabled for Link? Also ... what version of the AMD GPU drivers are you running? Link to comment Share on other sites More sharing options...
TenOf11 Posted December 23, 2017 Author Share Posted December 23, 2017 Not having a publicly available bug tracking system is suckie. They should make that their number one priority. This would provide them with details needed to resolve the actual issues. There second priority should be beta testing fixes with actual users experiencing the issue (and submitted the bug). But I digress.... When this started happening I enabled the debug logging from within the software. This is where some of the data in previous posts came from. It's not the most useful information as it shows where the software failed, but not why it failed. And when dealing with memory exhaustion, the last failure doesn't necessarily mean root cause. Radeon Software Version: 17.11.1 Driver version: 23.20.788.0 (11/2/2017) I keep my display drivers fairly current. There is a Radeon Software Version, 17.12.1, that came out this month but I haven't installed them...yet. Thanks for your continued assistance with this. It's much appreciated. Link to comment Share on other sites More sharing options...
DevBiker Posted December 23, 2017 Share Posted December 23, 2017 Not having a publicly available bug tracking system is suckie. They should make that their number one priority. This would provide them with details needed to resolve the actual issues. There second priority should be beta testing fixes with actual users experiencing the issue (and submitted the bug). But I digress.... When this started happening I enabled the debug logging from within the software. This is where some of the data in previous posts came from. It's not the most useful information as it shows where the software failed, but not why it failed. And when dealing with memory exhaustion, the last failure doesn't necessarily mean root cause. Radeon Software Version: 17.11.1 Driver version: 23.20.788.0 (11/2/2017) I keep my display drivers fairly current. There is a Radeon Software Version, 17.12.1, that came out this month but I haven't installed them...yet. Thanks for your continued assistance with this. It's much appreciated. There was a reason that I asked that question ... there's another user on the forum with very (eerily) similar issues. And guess what? He's running AMD GPUs. And the same driver version. Some of the traces seem to point to the interaction between Link and the GPU driver. So ... I have to wonder if updating your driver would fix the issue??? Link to comment Share on other sites More sharing options...
TenOf11 Posted December 23, 2017 Author Share Posted December 23, 2017 So ... I have to wonder if updating your driver would fix the issue??? I'll update it right now. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.