Jump to content
Corsair Community

Need 64-bit Corsair Link to stop constant Out Of Memory errors


TenOf11
 Share

Recommended Posts

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

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

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

Ok. A couple hours more and I finally have some better data. Attached are two files.

 

attachment.php?attachmentid=31803&stc=1&d=1513828207

 

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

CorsairLink4.Service_HandleLeak.thumb.png.d6b643c81d99f89ea3d8c997cbff913b.png

CorsairLink4.Service_HandleLeak_small.thumb.png.f30eb3d4491766b2a11c126db343652a.png

Link to comment
Share on other sites

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

  • Corsair Employees
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

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

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

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

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

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

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

 Share

×
×
  • Create New...