Interrogating Netrix |
|
| Standard > Troubleshooting Data: References > Netrix |
Useful commands to use in an ssh session
cat /proc/driver/eth cat /proc/driver/eth_status
Analysing the backtracefile
A Turret App crash should leave two files, backtracefile.txt and signalcaught.txt. The backtracefile.txt contains a record for each stack frame at the time of failure. There may be many stack frames stored in this file as the failure may cause other threads to fail too. Generally, the failing process can be determined from the application log file, /var/log/UTAApplication.log and search for the first occurrence of a "signal caught" by the "CombinedApp". Note the thread number and look at the corresponding stack for that thread in backtracefile.txt.
Function Calls from the CombinedApp
There will be a number of records with just addresses within the turret app. This is due to the turret application executable being stripped of debug information when it was built to keep the size of the executable to a minimum. However, the function names can be found from the unstripped version of the code which should still exist in clearcase. First, generate the turretApp Symbol table from linux,
cleartool setview <corresponding view> cd /SIPNetrix_vob/IPTNetrix/IPTNetrix_ppc82xx_so/build nm -Cn CombinedApp >> symbols.txt
To determine the function name in the turret app, search the symbol table. The symbol table contains records with the function start address and function name. To find the function associated with an address, search for the address in the symbols file that is the closest match. Bear in mind that there will be an offset involved as the symbol table contains the start address of the function named. The symbol will probably be a mangled C== function name which can be passed through a utility such as c++filt on linux to yield the fully classified function that was called.
Linux Signal Problems
When log rotate is run it generates a SIGHUP which should be caught by the turret application. Occasionally, the app gets in a state whee the signal is ignored.
A list of signals being caught or ignored can be found in the process status as follows,
Find the process id of the Turret Application using
ps ax | grep turret
886 ? S 106:56 /opt/apps/turret/turret ...
The process status file can be found in /proc/<processId/status
For Example, cat /proc/886/status produces...
Name: turret State: S (sleeping) Tgid: 886 Pid: 886 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: VmSize: 213576 kB VmLck: 0 kB VmRSS: 41464 kB VmData: 36192 kB VmStk: 36 kB VmExe: 18212 kB VmLib: 6308 kB SigPnd: 0000000000000000 SigBlk: 0000000080000000 SigIgn: 8000000000001006 SigCgt: 00000003c00144e9 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff
As can be seen the first bit (LSB) is set 0 in SigIgn and 1 in SigCgt. This is the correct setting.
If the turret app hasn't crashed and is behaving strangely, when asked to do so by BT Support, the debug/trace levels can be changed through the web diagostics interface to give more detail in the Application log file. The log file should be recovered manually or via a TSS request. Debug/trace levels should be restored after getting the extra detail.
|