process still hanging in unix even after time out or cancel of uniface client

Author: lalitpct@gmail.com (lalitpct)


we have a client server architecture ,server(unix) and client (windows).
When we connect from client to windows the connection is successfull but when we leave it idle or close it by close button, The process is still hanging on server (unix) and which comes in the top CPU usage process after few minutes.

As it can be seen below , all "userver" are the highest CPU , please let us know if there is any solution for this.
Note we recently migrated from 8.4 to 9.4 and 8.4 didnt had such issues.

TOPAS
=============================================

Name            PID  CPU%  PgSp Owner
userver    27590836  14.3  10.3 psm2app2
userver    24838328   7.1  10.3 psm2app2
userver    22347802   7.1  10.7 psm2app2
userver    22806760   7.1  10.2 psm2app2
userver    19202278   7.1  10.0 psm2app2
userver    21233840   7.1  10.3 psm2app2
userver    12386440   7.1  10.5 psm2app2
userver    11010266   7.1  10.5 psm2app2
dataserv    8978506   7.1   4.9 sybase 
userver    23658528   7.1   9.8 psm2app2
userver    17563822   7.1  10.5 psm2app2
userver    18088078   7.1  10.4 psm2app2
dataserv    8060974   0.0   5.8 sybase 
userver    18612320   0.0  10.1 psm2app2
dataserv   10551388   0.0   4.9 sybase 
dataserv    7012430   0.0   4.9 sybase 
dataserv    8847392   0.0   4.9 sybase 
userver    16384010   0.0  10.3 psm2app2
dataserv    9044032   0.0   4.9 sybase 

 

4 Comments

  1. There was os level patch which create this issue ,,but it seems only uniface application are giving this issue .. below is response from AIX IBM team.

    This literally screwed our server .

    uniface patch           :- Uniface 9.4.01 r113

     AIX oslevel patch    :-  6100-06-05-1115

     

    Response from AIX team

    ==================

    The hang situation can be due to exit() being called in function registered by atexit(),
    if that's the case, then the fix, from application side, is not to call
    exit() in function registered with atexit(), the function shall just return.

    In other situation, the hang can been seen when exit() is called from a signal handler.

    The problem was injected by change in IZ71004 at TL06 base level,
    or 6.1.5.6, or 6.1.4.9, that's why citi's other/earlier levels do not have it.

    From stacks in pdump output, we do not see two exit() calls, possibly because pdump
    by default only collects kernel stack while application was in user space code.
    However, thread 2589 does seem to be in a signal handler.

    Can you confirm from the application side (if you have access to application owner or code),
    whether this application calls exit() from one of the two places I mentioned?

    Please let us know if some one has idea about it.


    Author: lalitpct (lalitpct@gmail.com)
  2. This hang might be due to something else. Since atexit is not used and I think also not from a signal handler.

    Sometimes database client software uses this to logoff from the DB before the application exits.

    Did you also upgraded to a new version of sybase? Consider making a support call.


    Author: sjaak (sjaak.van.schie@uniface.com)
  3. AIX was migrated to patch    :-  6100-06-05-1115 , which caused this issue.

    We have rolled back the patch in prod hence now the issue is not in prod but we need to find a solution for this one.

    None of the other application has this issue , only uniface gives this issue so i think some changes need to be done in uniface part.

     


    Author: lalitpct (lalitpct@gmail.com)
  4. Good Luck


    Author: ulrich-merkel (ulrichmerkel@web.de)