IBM Support

LI75707: Hang in ipa signal handler

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • There appears to be a race condition that prevents the compiler
    from being interrupted with ctrl+C under some conditions.
    
    When this happens, it seems to be waiting on the ipa subprocess.
    
    
    
    With a sample Fortran program that has some modules, the
    following will reproduce the problem:
    
    1. Type the compile commands
    2. As soon as it outputs "End of Compilation XX", hit ctrl+C
    
    Normally, you would see this:
      Calling signal handler...
    and it would exit immediately.
    
    However, when the race condition is hit, it hangs right after
    printing the first message:
      Calling signal handler...
    
    and will remain there until you kill the ipa subprocess
    w/SIGTERM from another shell.
    
    Additional ^Cs will not have any effect.
    
    This hang does not happen always, depending on the timing you
    hit CTRL+C. But it always hangs in ipa process (add -V
    compiler option to view what process it is in).
    
    This causes inconvenience to users.
    

Local fix

  • To kill the hanging process, launch another shell, and use ps -u
    to show the process you own.
    
    For example:
    
    awcheng@xlpfen15:~> ps -u awcheng
      PID TTY          TIME CMD
     2635 ?        00:00:00 sshd
     2636 pts/0    00:00:00 bash
     6342 pts/0    00:00:00 mpixlf77_r
     6357 pts/0    00:00:00 bgxlf_r
     6360 pts/0    00:00:00 ipa
     7413 ?        00:00:00 sshd
     7414 pts/2    00:00:00 bash
     7871 pts/2    00:00:00 ps
    
    awcheng@xlpfen15:~> kill 6360
    
    This way, the hang process in the original window will exit
    immediately.
    

Problem summary

  • USER AFFECTED:
    Users who use ctrl+C to interrupt the IPA process during
    compilation.
    
    PROBLEM DESCRIPTION:
    The signal handler cannot call malloc/free on Linux because it
    may deadlock
    due to a lock held by malloc.
    

Problem conclusion

  • The problem is fixed.
    The compiler now does not use malloc/free on the signal
    handler.
    It prints the interrupt message and call _exit().
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI75707

  • Reported component name

    XL FORTRAN AE B

  • Reported component ID

    5799HJG00

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-09-13

  • Closed date

    2010-09-13

  • Last modified date

    2010-09-13

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

    LI74716

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

Fix information

  • Fixed component name

    XL FORTRAN AE B

  • Fixed component ID

    5799HJG00

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSB259","label":"XL Fortran Advanced Edition for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B.1","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
24 February 2022