[ST OMU] opcmsgm random crashes with exit value 139


In Operations Manager for Unix/Linux (OMU/OML) opcmsgm process crashes randomly.
The system.txt file shows the following errors:

/var/opt/OV/log/System.txt.002:0: ERR: Thu Apr 3 12:02:00 2014: ovcd (13468/1101101376): (ctrl-209) Component 'opcmsgm' exited with '139', automatic restart limit exceeded. Use 'ovc -start opcmsgm'.
/var/opt/OV/log/System.txt.004:0: WRN: wed Apr 2 03:09:12 2014: ovcd (13468/1101101376): (ctrl-208) Component 'opcmsgm' with pid 11632 exited with exit value '139'. Restarting component.


The abort is caused because customer uses a non UTF-8 $LANG.
The problem is, if LANG is not set (defaults to C) or set to a non-UTF8 value.


The easiest way to make sure the OM server processes run with an UTF-8 $LANG is to set it via LANG in ctrl.env:
# ovc -kill
# ovconfchg -ns ctrl.env LANG en_US.utf8  
# ovc -start


Or you can set the environment variables prior to the startup of the OM server processes with:

For American English, the following variable can be used:
export LANG=en_US.utf8
export LC_ALL=en_US.utf8

For other languages, make sure that you choose a locale that
uses the UTF-8 character set, for example:

On Linux, you can use either one of the following, they are equivalent:
export LANG=en_US.UTF-8
export LANG=en_US.utf8

Valid values for LANG depend on the OS. On HP-UX, LANG=en_US.UTF-8 is not valid, only LANG=en_US.utf8.

The problem is, if LANG is not set (defaults to C) or set to a non-UTF8 value.

The LANG value differs on OS:
on Solaris : # locale -a
grep -i utf
grep en_US

On HP-UX : $ locale -a
grep -i utf
grep en_US

On Linux : # locale -a
grep -i utf
grep en_US

For Linux the default is  utf8 but UTF-8 is also supported

opcmsgm should not crash after this setting.

This is documented in the following KCS article: