IBM Support

VM66238: WAKEUP (IUCVMSG CAN WRONGLY TRUNCATE DMSCYW2245I

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The WAKEUP (IUCVMSG command has a boundary condition which
    can cause message DMSCYW2245I to be incorrectly truncated.
    When a message is received, WAKEUP processing displays message
    DMSCYW2245I *MSG <userid> <msg text>
    on the console.  When using the command
    CP MSG USER1 <msg>
    (userid has a length of five characters)
    to send a message to the userid (userid has a length of seven
    characters) running WAKEUP, message is truncated as follows:
    When length(msg) <= 226 characters, WAKEUP produces console
    output
    'DMSCYW2245I *MSG USERID1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...'
    as expected.
    When length(msg) = 227 characters, WAKEUP produces console
    output
    ''
    (null line)
    When length(msg) = 228 characters, WAKEUP produces console
    output
    'D'
    When length(msg) = 229 characters, WAKEUP produces console
    output
    'DM'
    When length(msg) >= 230 characters, WAKEUP produces console
    output
    'DMS'
    The problem is only with the DMSCYW2245I message; the stacked
    message data is correct.
         An additional issue with the WAKEUP command is that SMSGs
    received through VMCF are limited to 169 characters.  While this
    limit is documented, it seems unnecessary.  When using the
    command
    CP SMSG USER1 <msg>
    (userid has a length of five characters)
    to send a message to the userid (userid has a length of seven
    characters) running WAKEUP (SMSG, the CP SMSG command fails with
    HCPMFS057I USER1 not receiving; message too large
    when the length of the message is 127 characters or longer.
    When the length of the message is 126 characters or shorter, the
    command completes successfully as expected.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of the WAKEUP command                  *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION: APPLY PTF                                    *
    ****************************************************************
         The WAKEUP (IUCVMSG command can incorrectly truncate
    message DMSCYW2245I.  WAKEUP processing displays message
    DMSCYW2245I *MSG <userid> <msg text>
    on the console when a message is received.  When using the
    command
    CP MSG USER1 <msg>
    (userid has a length of five characters)
    to send a message to the userid (userid has a length of seven
    characters) running WAKEUP, WAKEUP processing truncates the
    DMSCYW2245I message when the length of the message is greater
    than 226 characters.  The problem is only with the DMSCYW2245I
    message; the message data stacked by WAKEUP is correct.
         The problem is in DTRYWAK ASSEMBLE under label RESVMCF1.
    The length of the DMSCYW2245I message (both header and text) is
    limited to 255 characters because DTRYWAK uses the APPLMSG macro
    with the TEXTA parameter to issue the message.  Under label
    RESVMCF1, the TEXTA length value is stored in R2 by a STC
    instruction (STC R2,EMSGLEN).  When the sum of the length of the
    header and the length of the message text exceeds 255 (X'FF'),
    the byte value rolls to 0 (X'0100' or X'00') causing the TEXTA
    length value to be zero so there's no output for the DMSCYW2245I
    message.  When the byte value rolls to 1 (X'0101' or X'01'), the
    TEXTA length value is one so the output is only "D" and so on.
         An additional issue with the WAKEUP command is that SMSGs
    received through VMCF are limited to 169 characters.  This limit
    is documented, but it is unnecessary.  When using the command
    CP SMSG USER1 <msg>
    (userid has a length of five characters)
    to send a message to the userid (userid has a length of seven
    characters) running WAKEUP (SMSG, the CP SMSG command fails with
    HCPMFS057I USER1 not receiving; message too large
    when the length of the message is 127 characters or longer.
         Again, the code in DTRYWAK ASSEMBLE is causing this
    behavior.  When the VMCPARM control block for the VMCF AUTHORIZE
    function is built, the code is using value "169" for field
    VMCPLENA (external interrupt buffer length) which limits the
    length to 169 (including a fixed message header).
    

Problem conclusion

  •      DTRYWAK ASSEMBLE and WAKEUP HELPCMS have been updated.
         In DTRYWAK ASSEMBLE under label RESVMCF1, code has been
    added to check if the TEXTA message length is greater than 255
    (X'FF') and, if it is, to set the length to the maximum length
    of 255.  Also, in DTRYWAK ASSEMBLE, the value for VMCPLENA has
    been increased from 169 to 280.
         In help file WAKEUP HELPCMS, the documentation for both the
    SMSG and VMCF options has been updated to state that the maximum
    data that WAKEUP can receive through SMSG or SENDX is 280 bytes.
    
    THE FOLLOWING CHANGES HAVE BEEN MADE TO THE SYSTEM REFERENCE
    LIBRARIES:
    ***START PUBLICATION CHANGE*************************************
    PUBLICATION TITLE: z/VM CMS Commands and Utilities Reference
              RELEASE: z/VM 6.4.0     ORDER NUMBER: SC24-6166-06
    -------------------------------------------
    CHAPTER: 2     PAGES: 1274-1275
    ABSTRACT:  Update SMSG/SENDX message data byte limit to 280
    BODY:  Under the SMSG option, change the paragraph
    
           When this option is given, WAKEUP will do a VMCF
           AUTHORIZE for any user ID. The maximum data that WAKEUP
           can receive through SMSG or SENDX is 169 bytes.
    
           to:
    
           When this option is given, WAKEUP will do a VMCF
           AUTHORIZE for any user ID. The maximum data that WAKEUP
           can receive through SMSG or SENDX is 280 bytes.
    
           AND under the VMCF option, change the paragraph
    
           When this option is given, WAKEUP issues a VMCF AUTHORIZE
           for any user ID. The maximum data that WAKEUP can receive
           through SENDX is 169 bytes.
    
           to:
    
           When this option is given, WAKEUP issues a VMCF AUTHORIZE
           for any user ID. The maximum data that WAKEUP can receive
           through SENDX is 280 bytes.
    
    ***END PUBLICATION CHANGE***************************************
    ***START PUBLICATION CHANGE*************************************
    PUBLICATION TITLE: z/VM CMS Commands and Utilities Reference
              RELEASE: z/VM 7.1.0     ORDER NUMBER: SC24-6260-00
    -------------------------------------------
    CHAPTER: 2     PAGES: 1216
    ABSTRACT:  Update SMSG/SENDX message data byte limit to 280
    BODY:  Under the SMSG option, change the paragraph
    
           When this option is given, WAKEUP will do a VMCF
           AUTHORIZE for any user ID. The maximum data that WAKEUP
           can receive through SMSG or SENDX is 169 bytes.
    
           to:
    
           When this option is given, WAKEUP will do a VMCF
           AUTHORIZE for any user ID. The maximum data that WAKEUP
           can receive through SMSG or SENDX is 280 bytes.
    
           AND under the VMCF option, change the paragraph
    
           When this option is given, WAKEUP issues a VMCF AUTHORIZE
           for any user ID. The maximum data that WAKEUP can receive
           through SENDX is 169 bytes.
    
           to:
    
           When this option is given, WAKEUP issues a VMCF AUTHORIZE
           for any user ID. The maximum data that WAKEUP can receive
           through SENDX is 280 bytes.
    
    ***END PUBLICATION CHANGE***************************************
    

Temporary fix

  • FOR RELEASE ES-CMS-640-BASE :
    PREREQ: NONE
    CO-REQ: NONE
    IF-REQ: NONE
    FOR RELEASE ES-CMS-710-BASE :
    PREREQ: NONE
    CO-REQ: NONE
    IF-REQ: NONE
    

Comments

APAR Information

  • APAR number

    VM66238

  • Reported component name

    VM CMS

  • Reported component ID

    568411201

  • Reported release

    640

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-12-12

  • Closed date

    2019-01-09

  • Last modified date

    2020-12-16

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

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

    UM35420 UM35421

Modules/Macros

  • DTRYWAK  WAKEUP
    

Publications Referenced
SC24616606SC24626000   

Fix information

  • Fixed component name

    VM CMS

  • Fixed component ID

    568411201

Applicable component levels

  • R640 PSY UM35420

       UP19/01/16 P 2001

  • R710 PSY UM35421

       UP19/01/16 I 1000

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG27M","label":"APARs - z\/VM environment"},"Platform":[{"code":"PF054","label":"z\/OS"}],"Version":"640","Line of Business":{"code":"LOB16","label":"Mainframe HW"}}]

Document Information

Modified date:
12 January 2021