The submission of the Lookup Manager application leads to out-of-memory in new streams domain or streams instance
The new toolkit version 2.0.0 brings shared memory segment names in the Lookup Manager application that are unique concerning the user name and the absolute path to the control folder. If you upgrade the Lookup Manager application, then the former used segment names are invalid because they don't follow the new naming schema. They are not used anymore but still exist. You must remove these odd segments to release the allocated memory. If you submit the Lookup Manager application by using another streams instance or streams domain, then it creates such odd segments. The same issue happens, when you or somebody else uses another user name.
Symptoms
- Out-of-memory faults and exceptions.
- Unstable system.
- The free shell command shows insufficient free space.
Reason
The Lookup Manager application creates lookup repositories with a name prefix that contains the user ID and a hash created by the unique control folder path to prevent name clashes. The Lookup Manager applications, that you created with older toolkit versions, they do not have this name prefix.
The old naming schema doesn't prevent, that several Lookup Manager applications might manage the same shared memory segment without warning.
A careless usage of the Lookup Manager application creates new physical shared memory segments that are specified for the same data repository in your system. This situation leads to extra shared memory segments.
Resolving the problem
- Delete segments that were used by the older Lookup Manager version, or that are not needed anymore.
The following example shows a segMaster1 segment deletion and initialization from project directory:
# if root permissions required then login as root else skip the first command: [streamsadmin@host]$ su - Password: [streamsadmin@host]$ls /dev/shm/ 1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster1 1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster2 [streamsadmin@host]$rm /dev/shm/1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster1 [streamsadmin@host]$ls /dev/shm/ 1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster2 [streamsadmin@host]$mv data/in/cmd/archive/initial_all.cmd data/in/cmd/ [streamsadmin@host]$ls /dev/shm/ 1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster1 1001.697b9ef92bf044db0ebca8523374e6ae27dff8c0af41fab7244ddfc170ff9687_segMaster2 [streamsadmin@host]$
-
On test system, where many users run their own Lookup Manager application:
- provide more memory
- move some users to other hosts
- or ensure that the users remove their segments as soon as they do not need them anymore
- Review the Lookup Manager customization to ensure that different Lookup Manager applications that run on the same domain/instance and for same user, use different segment names.