System reboot due to failure in engine_tcp_parser in TIBCO LogLogic LMI

System reboot due to failure in engine_tcp_parser in TIBCO LogLogic LMI

book

Article ID: KB0077155

calendar_today

Updated On:

Products Versions
TIBCO LogLogic Log Management Intelligence all versions up to 5.1.0

Description

Engine_tcp_parser is used to process data received via LogLogic TCP (LLTCP). LLTCP is used to forwarded data in file format from one LMI appliance to another. This is typically for file-based event data but it can be used for syslog-based events as well. As with all engines, there is a heartbeat timeout determine when it has stopped responding to mtask. Occasionally, when the upstream LogLogic appliance forwards a large amount of data down to the destination appliance in a small timespan, the destination appliance becomes overwhelmed in parsing the data and engine_tcp_parser appears to be unresponsive as it works through the large volume of events.  After several attempts at restarting engine_tcp_parser (and some associated engines), the system will eventually reboot to try to clear the condition.

Note: This article does not apply to LMI versions after 5.1.0 because engine_tcp_parser functionality was moved to engine_rcollector starting in LMI 5.2.0. This issue only affects one version of LMI EVA because the EVA had only been released for LMI 5.1.0 before the engine was removed in 5.2.0.

Issue/Introduction

This article explains how to mitigate the issue of engine_tcp_parser failures causing system reboots.

Resolution

One suggested remedy is to try to increase the timeout allowed by mtask to engine_tcp_parser for processing data. The default is 120 seconds which can be stepped up to 300 or 600 seconds to mitigate the issue. 
 
This involves editing a system file in vi via shell access (logged in under toor).
 
1.  SSH to the appliance and login as ”toor”.
2.  Make a backup copy of /loglogic/conf/node_config.xml:
$ cp /loglogic/conf/node_config.xml /loglogic/conf/node_config.xml_bak


3.  Next, edit node_config.xml with vi:
$ vi /loglogic/conf/node_config.xml

4.  Find the section that matches your appliance platform then find sub-section for engine_tcp_parser. Note: Make sure to edit the proper engine_tcp_parser section that is in the section matching your appliance model. The appliance model can be found in /etc/platform. It will look like the following:
    <service
        group="BACKEND"
        start_cmd="/loglogic/bin/engine_tcp_parser"
        startup_timeout="600"
        shutdown_timeout="30"
        heartbeat_timeout="120"
        escalation="GROUP_RESTART,NODE_REBOOT,GROUP_DISABLE"
        runlevel="5"/>

5.  Edit the heartbeat_timeout value from "120" to "300" (or "600" if 300 wasn't sufficient). 
6.  Save and exit from vi.
7.  Then run:
$ mtask stop; mtask start


Note: For an HA pair, make sure to edit each file individually. Make sure that as you restart the mtask on each system that you do $ mtask stop on the standby first, then $ mtask stop; mtask start on the master, and finish with $ mtask start on the standby.  That will prevent an unnecessary failover event, though there will be a few moments of down time for data collection.