IBM Support

IV20128: ON AIX THE ITNM_STOP SCRIPT CAN SOMETIMES FAIL TO RETRIEVE THE PPID OF THE PROCESSES

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Product: Tivoli Network Manager
    Version: 3.8, 3.9
    Platform: AIX
    Component: itnm_control_functions.sh
    
    Symptom:  itnm_stop fails to retrieve the PPID of the processes.
    
    The itnm_control_functions.sh script on AIX calls this function:
    
        'AIX')
            # Get list of parent pids (%P) and group ids (%r). We
    want the group
            # ids of the processes whose parents have the supplied
    parent pid.
            child_groups=`${ps_dir}/ps -eo "%P %r" | grep -v grep \
                    | grep \^$ppid | awk '{print $2}' | sort -nru`
            ;;
        esac
    
    The problem is that the list of data returned by ps sometimes
    has a leading space at the beginning of the line, and sometimes
    doesn't (more often it does)!
    So far no explanation has been found as to why, but here is the
    evidence from tests on AIX 6.1
    
    To begin with at the start of the output the ps command returns
    results without a leading white space and so the additional grep
    \^$ppid works.
    bash-3.2# ps -eo "%P %r"   | grep 4259974
    4259974 2359506
    4259974 3604644
    4259974 3670168
    4259974 3801318
    4259974 3932284
    4259974 4063366
          1 4259974
    4259974 4325382
    4259974 4391084
    4259974 4522190
    4259974 4587660
    4259974 4653198
    4259974 4718736
    4259974 4784276
    4259974 5046450
    4259974 5308606
    4259974 6095046
    4259974 6160392
    4259974 6226130
    4259974 6291678
    4259974 6356994
    4259974 6946816
    4259974 7209182
    4259974 7274722
    ^^^^^^^
    [NOTE: no white space]
    
    But later on the exact same command returns results with a
    leading white space at the beginning of the line.  The effect is
    that the grep for \^$ppid fails to retrieve anything, since the
    first character is white space:
    bash-3.2# ps -eo "%P %r"  |grep 4259974
     4259974  2359506
     4259974  3604644
     4259974  3670168
     4259974  3801318
     4259974  3932284
     4259974  4063366
           1  4259974
     4259974  4325382
     4259974  4391084
     4259974  4522190
     4259974  4587660
     4259974  4653198
     4259974  4718736
     4259974  4784276
     4259974  5046450
     4259974  5308606
     4259974  6095046
     4259974  6160392
     4259974  6226130
     4259974  6291678
     4259974  6356994
     4259974  6946816
     4259974  7209182
     4259974  7274722
    ^^^^^^^^
    [NOTE leading white space]
    bash-3.2# ps -eo "%P %r" | grep \^4259974
    bash-3.2# ps -eo "%P %r" | grep \^4259974
    bash-3.2# ps -eo "%P %r" | grep \^4259974
    bash-3.2# ps -eo "%P %r" | grep 4259974
     4259974  2359506
     4259974  3604644
     4259974  3670168
     4259974  3801318
     4259974  3932284
     4259974  4063366
           1  4259974
     4259974  4325382
     4259974  4391084
     4259974  4522190
     4259974  4587660
     4259974  4653198
     4259974  4718736
     4259974  4784276
     4259974  5046450
     4259974  5308606
     4259974  6095046
     4259974  6160392
     4259974  6226130
     4259974  6291678
     4259974  6356994
     4259974  6946816
     4259974  7209182
     4259974  7274722
    
    If the output of ps can't be predicted then the script using it
    will have to account for either form.
    

Local fix

  • One workaround is to strip off any white space from the
    beginning of the line from the output before assigning it to
    $child_groups by adding sed 's/^ *//'  e.g.
    
            child_groups=`${ps_dir}/ps -eo "%P %r" | sed 's/^ *//'|
    \ grep -v grep | grep \^$ppid | awk '{print $2}' | sort -nru`
            ;;
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ITNM 3.9 itnm_stop users.                                    *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * itnm_stop fails to retrieve the PPID of the processes when   *
    * PPID has a leading space in it.                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Modify  itnm_control_functions.sh script then add sed in AIX *
    * section of  $child_groups.                                   *
    * sed 's/^ *//'  e.g.                                          *
    *                                                              *
    * | fix pack | 3.9.0-ITNMIP-FP0003                             *
    ****************************************************************
    

Problem conclusion

  • | fix pack | 3.9.0-ITNMIP-FP0003 - Workaround provided. Code has
    been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV20128

  • Reported component name

    TIV NETWK MGR I

  • Reported component ID

    5724S4500

  • Reported release

    390

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-04-24

  • Closed date

    2012-04-27

  • Last modified date

    2012-05-15

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    TIV NETWK MGR I

  • Fixed component ID

    5724S4500

Applicable component levels

  • R390 PSN

       UP

  • R390 PSY

       UP

  • R401 PSN

       UP

  • R401 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSSHRK","label":"Tivoli Network Manager IP Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.9","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 May 2012