SUMMARY
Intelligence Server crash when SmartHeap 9 for auto config and system RAM exceeds 1TB.
SYMPTOM
The KB describe a defect related to tuning parameter MSTR_MEM_CACHE_AUTO_CONFIG when SmartHeap 9 for auto config and system RAM exceeds 1TB.
For more information about the variable MSTR_MEM_CACHE_AUTO_CONFIG please follow the article below:
https://community.strategy.com/article/New-environment-variable-MSTR-MEM-CACHE-AUTO-CONFIG-in-MicroStrategy-Secure-Enterprise-10-x
On systems with more than 1TB of RAM, this setting has been known to cause Intelligence Server crashes.
CAUSE
The issue is related to tuning parameter MSTR_MEM_CACHE_AUTO_CONFIG from the Tunable.sh file. When it is enabled, we set SmartHeap's incremental heap grow size to be one thousandth of total RAM. In the system with 1 TB, it is 2GB (it is rounded up to the power of 2). However, SmartHeap grows heap by two methods: sbrk and mmap. When sbrk is used, the memory size passed to the function is a signed integer which would overflow for 2GB. The net effect is instead of allocating 2GB of memory, it releases 2GB because of the integer size overflow.
RESOLUTION
The suspect is the tuning parameter MSTR_MEM_CACHE_AUTO_CONFIG. We need to comment it out in Tunable.sh to disable it. In this situation just setting MSTR_MEM_CACHE_AUTO_CONFIG = 0 is not enough. We need to completely remove the entry or comment it out. The Strategy code is not checking for the value of the parameter, but is just checking for the presence of it.