IBM Support

IT28942: PARSING QUERY WITH MANY UNION ALL ON DERIVED TABLES IN NESTED / RECURSIVE FASHION CAN PARSE STATEMENT FOR HOURS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • This problem was reported running IDS 12.10.FC12 on Solaris 64
    and I reproduced
    problem on linux x86_64 as well.
    
    This defect was split off as a separate issue from APAR
    33794247.  In APAR 33794247, we
    address the problem that the thread while parsing is not
    yielding.  This defect was opened
    to address the performance associated with the parser taking so
    long on statements like below.
    
    An example of the pstack on linux x86_64 during the parsing
    follows:
    
    $ rasu pstack 10320
    #0  0x0000000000cf62b6 in p_symcmpr ()
    #1  0x0000000000cdb99c in p_locstack ()
    #2  0x0000000000cf627f in p_symfind ()
    #3  0x0000000000cd5be3 in p_smselect ()
    #4  0x0000000000cd690a in p_smunion ()
    #5  0x0000000000cd2fc0 in p_smexpr ()
    #6  0x0000000000cd2ef5 in p_smexpr ()
    #7  0x0000000000cd5d68 in p_smselect ()
    #8  0x0000000000cd690a in p_smunion ()
    #9  0x0000000000cd684c in p_smunion ()
    #10 0x0000000000cd2fc0 in p_smexpr ()
    #11 0x0000000000cd2ef5 in p_smexpr ()
    #12 0x0000000000cd62c4 in p_smselect ()
    #13 0x0000000000cd690a in p_smunion ()
    #14 0x0000000000cd6839 in p_smunion ()
    #15 0x0000000000cd2fc0 in p_smexpr ()
    #16 0x0000000000cd2ef5 in p_smexpr ()
    #17 0x0000000000cd62c4 in p_smselect ()
    #18 0x0000000000cd690a in p_smunion ()
    #19 0x0000000000cd6839 in p_smunion ()
    #20 0x0000000000cd2fc0 in p_smexpr ()
    #21 0x0000000000cd2ef5 in p_smexpr ()
    #22 0x0000000000cd5d68 in p_smselect ()
    #23 0x0000000000cd690a in p_smunion ()
    #24 0x0000000000cd6839 in p_smunion ()
    #25 0x0000000000cd2fc0 in p_smexpr ()
    #26 0x0000000000cd2ef5 in p_smexpr ()
    #27 0x0000000000cd5d68 in p_smselect ()
    #28 0x0000000000cd690a in p_smunion ()
    #29 0x0000000000cd6839 in p_smunion ()
    #30 0x0000000000cd2fc0 in p_smexpr ()
    #31 0x0000000000cd2ef5 in p_smexpr ()
    #32 0x0000000000cd62c4 in p_smselect ()
    #33 0x0000000000cd690a in p_smunion ()
    #34 0x0000000000cd6839 in p_smunion ()
    #35 0x0000000000cd2fc0 in p_smexpr ()
    #36 0x0000000000cd2ef5 in p_smexpr ()
    #37 0x0000000000cd62c4 in p_smselect ()
    #38 0x0000000000cd690a in p_smunion ()
    #39 0x0000000000cd6839 in p_smunion ()
    #40 0x0000000000cd2fc0 in p_smexpr ()
    #41 0x0000000000cd2ef5 in p_smexpr ()
    #42 0x0000000000cd5d68 in p_smselect ()
    #43 0x0000000000cd690a in p_smunion ()
    #44 0x0000000000cd6839 in p_smunion ()
    #45 0x0000000000cd2fc0 in p_smexpr ()
    #46 0x0000000000cd2ef5 in p_smexpr ()
    #47 0x0000000000cd62c4 in p_smselect ()
    #48 0x0000000000cd690a in p_smunion ()
    #49 0x0000000000cd6839 in p_smunion ()
    #50 0x0000000000cd2fc0 in p_smexpr ()
    #51 0x0000000000cd2ef5 in p_smexpr ()
    #52 0x0000000000cd5d68 in p_smselect ()
    #53 0x0000000000cd690a in p_smunion ()
    #54 0x0000000000cd6839 in p_smunion ()
    #55 0x0000000000cd2fc0 in p_smexpr ()
    #56 0x0000000000cd2ef5 in p_smexpr ()
    #57 0x0000000000cd62c4 in p_smselect ()
    #58 0x0000000000cd690a in p_smunion ()
    #59 0x0000000000cd6839 in p_smunion ()
    #60 0x0000000000cd2fc0 in p_smexpr ()
    #61 0x0000000000cd2ef5 in p_smexpr ()
    #62 0x0000000000cd5d68 in p_smselect ()
    #63 0x0000000000cd690a in p_smunion ()
    #64 0x0000000000cd6839 in p_smunion ()
    #65 0x0000000000cd2fc0 in p_smexpr ()
    #66 0x0000000000cd2ef5 in p_smexpr ()
    #67 0x0000000000cd5d68 in p_smselect ()
    #68 0x0000000000cd690a in p_smunion ()
    #69 0x0000000000cd6839 in p_smunion ()
    #70 0x0000000000cd2fc0 in p_smexpr ()
    #71 0x0000000000cd2ef5 in p_smexpr ()
    #72 0x0000000000cd62c4 in p_smselect ()
    #73 0x0000000000cd690a in p_smunion ()
    #74 0x0000000000cd6839 in p_smunion ()
    #75 0x0000000000cd2fc0 in p_smexpr ()
    #76 0x0000000000cd2ef5 in p_smexpr ()
    #77 0x0000000000cd62c4 in p_smselect ()
    #78 0x0000000000cd690a in p_smunion ()
    #79 0x0000000000cd6839 in p_smunion ()
    #80 0x0000000000cd2fc0 in p_smexpr ()
    #81 0x0000000000cd2ef5 in p_smexpr ()
    #82 0x0000000000cd62c4 in p_smselect ()
    #83 0x0000000000cd690a in p_smunion ()
    #84 0x0000000000cd6839 in p_smunion ()
    #85 0x0000000000cd2fc0 in p_smexpr ()
    #86 0x0000000000cd2ef5 in p_smexpr ()
    #87 0x0000000000cd5d68 in p_smselect ()
    #88 0x0000000000cd690a in p_smunion ()
    #89 0x0000000000cd6839 in p_smunion ()
    #90 0x0000000000cd2fc0 in p_smexpr ()
    #91 0x0000000000cd2ef5 in p_smexpr ()
    #92 0x0000000000cd5d68 in p_smselect ()
    #93 0x0000000000cd690a in p_smunion ()
    #94 0x0000000000cd6839 in p_smunion ()
    #95 0x0000000000cd2fc0 in p_smexpr ()
    #96 0x0000000000cd2ef5 in p_smexpr ()
    #97 0x0000000000cd62c4 in p_smselect ()
    #98 0x0000000000cd690a in p_smunion ()
    #99 0x0000000000cd6839 in p_smunion ()
    #100 0x0000000000cd2fc0 in p_smexpr ()
    #101 0x0000000000cd2ef5 in p_smexpr ()
    #102 0x0000000000cd5d68 in p_smselect ()
    #103 0x0000000000cd690a in p_smunion ()
    #104 0x0000000000cd6839 in p_smunion ()
    #105 0x0000000000cd2fc0 in p_smexpr ()
    #106 0x0000000000cd2ef5 in p_smexpr ()
    #107 0x0000000000cd5d68 in p_smselect ()
    #108 0x0000000000cd690a in p_smunion ()
    #109 0x0000000000cd6839 in p_smunion ()
    #110 0x0000000000cd2fc0 in p_smexpr ()
    #111 0x0000000000cd2ef5 in p_smexpr ()
    #112 0x0000000000cd62c4 in p_smselect ()
    #113 0x0000000000cd690a in p_smunion ()
    #114 0x0000000000cd6839 in p_smunion ()
    #115 0x0000000000cd2fc0 in p_smexpr ()
    #116 0x0000000000cd2ef5 in p_smexpr ()
    #117 0x0000000000cd5d68 in p_smselect ()
    #118 0x0000000000cd690a in p_smunion ()
    #119 0x0000000000cd6839 in p_smunion ()
    #120 0x0000000000cd2fc0 in p_smexpr ()
    #121 0x0000000000cd2ef5 in p_smexpr ()
    #122 0x0000000000cd62c4 in p_smselect ()
    #123 0x0000000000cd690a in p_smunion ()
    #124 0x0000000000cd6839 in p_smunion ()
    #125 0x0000000000cd2fc0 in p_smexpr ()
    #126 0x0000000000cd2ef5 in p_smexpr ()
    #127 0x0000000000cd62c4 in p_smselect ()
    #128 0x0000000000cd690a in p_smunion ()
    #129 0x0000000000cd6839 in p_smunion ()
    #130 0x0000000000cd2fc0 in p_smexpr ()
    #131 0x0000000000cd2ef5 in p_smexpr ()
    #132 0x0000000000cd5d68 in p_smselect ()
    #133 0x0000000000cd690a in p_smunion ()
    #134 0x0000000000cd6839 in p_smunion ()
    #135 0x0000000000cd2fc0 in p_smexpr ()
    #136 0x0000000000cd2ef5 in p_smexpr ()
    #137 0x0000000000cd5d68 in p_smselect ()
    #138 0x0000000000cd690a in p_smunion ()
    #139 0x0000000000cd2fe1 in p_smexpr ()
    #140 0x0000000000cd2bfa in p_smexpr ()
    #141 0x0000000000cd5fa6 in p_smselect ()
    #142 0x0000000000cd690a in p_smunion ()
    #143 0x0000000000cd2fe1 in p_smexpr ()
    #144 0x0000000000cd2bfa in p_smexpr ()
    #145 0x0000000000cd2bfa in p_smexpr ()
    #146 0x0000000000cd2bfa in p_smexpr ()
    #147 0x0000000000cd2bfa in p_smexpr ()
    #148 0x0000000000cd5fa6 in p_smselect ()
    #149 0x0000000000cd690a in p_smunion ()
    #150 0x0000000000cd2fc0 in p_smexpr ()
    #151 0x0000000000cd2ef5 in p_smexpr ()
    #152 0x0000000000cd5d68 in p_smselect ()
    #153 0x0000000000cd690a in p_smunion ()
    #154 0x0000000000cd2fc0 in p_smexpr ()
    #155 0x0000000000cd2ef5 in p_smexpr ()
    #156 0x0000000000cd5d68 in p_smselect ()
    #157 0x0000000000cd690a in p_smunion ()
    #158 0x0000000000cd714b in p_smquery ()
    #159 0x0000000000cd944f in p_smstmt ()
    #160 0x0000000000b58e1c in spparse ()
    #161 0x0000000000a30615 in parsecmd ()
    #162 0x0000000000a30cd2 in sqcmd ()
    #163 0x0000000000a3ba5a in sq_cmnd ()
    #164 0x0000000000a3bbb4 in sq_prepare ()
    #165 0x0000000000b0b011 in sqmain ()
    #166 0x000000000154ca1b in spawn_thread ()
    #167 0x0000000001411450 in th_init_initgls ()
    #168 0x0000000001456d88 in startup ()
    #169 0x0000000000000000 in ?? ()
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users of IDS prior to 12.10.xC13.                            *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * Parsing query with many union all on derived tables in       *
    * nested / recursive fashion can parse statement for hours.    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • Fixed in IDS 12.10.xC13.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT28942

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-04-25

  • Closed date

    2019-09-26

  • Last modified date

    2019-09-26

  • 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

    INFORMIX SERVER

  • Fixed component ID

    5725A3900

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSGU8G","label":"Informix Servers"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"C10","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
26 September 2019