Lime CRM Server can cause high memory usage and/or return invalid search results
Summary
It has come to our attention that a caching feature in Lime CRM Server can cause abnormally high memory usage and/or return invalid search results.
Symptoms
There are two different symptoms which may appear separately from each other:
- The process hosting the LDC subsystem of Lime CRM Server (
dllhost.exe
) is using very large amounts of memory — hundreds of MBs for smaller installations and > 1 GB for larger installations. - When record access filtering is used with a condition on the form
[company].[responsible] = ActiveUser
records may be shown in lists that the user should not see and also lacks permission to open.
Resolution
Note!
It is NOT necessary to carry out any changes unless you are experiencing any of the above symptoms!
Since the query cache does not provide much of a performance boost (if any) the best solution is to disable it. The cache is disabled by default in Lime CRM Server versions 12.0.973 and later but must be disabled manually by editing the system registry for earlier versions:
- Using the Registry Editor, navigate to
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Lundalogik\Lundalogik Data Components\Databases\<database>
- Add a DWORD value named
UseLDCQueryCache
and set it to0
(zero). - Repeat steps 1-2 for each database in use on the application server.
- Restart LDC by going to Component Services | My Computer | COM+ Applications, right-clicking Lundalogik Data Components and selecting Shut down from the context menu.
Cause
The LDC subsystem caches all database queries by storing the generated SQL queries with the LDC XML format query as the key. This means that LDC with time uses more and more memory with performance hits as the result. In some cases the dllhost.exe process may even run out of memory which can cause LDC to crash. When record access filtering with a condition as mentioned above is used the cache key will be identical for all users even though the generated SQL query should differ. This means that the query for the first user that gets his or her query stored in the cache will be used for all other users.
Affected products
All Lime CRM Server versions prior to 12.0.973.
Questions?
Please contact our support team if you have questions regarding any of the above.