IBM Support

IT17145: API PROTOCOL VALIDATION NEEDS TO BE ENHANCED TO NOT THROW DSM_RC_COMM_PROTOCOL_ERROR UNDER CERTAIN CONDITIONS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as fixed if next.

Error description

  • The current Tivoli Storage Manager API protocol validation might
    report DSM_RC_COMM_PROTOCOL_ERROR if there is some unexpected
    server response.
    In the following example, the API gets some object back where it
    can't interpret the objInfo header (rc= 122) and considers the
    query to be completed (rc = >0<).
    However the server is not informed and still sends verbs related
    to that communication (EndTxn in the sample case)
    
    The API protocol validation needs to be enhanced to better
    handle unepected server responses and not get into the out of
    sequence verb condition.
    
      Tivoli Storage Manager Versions Affected: all supported
      Customer/L2 Diagnostics (If Applicable)
    
    <timestamp> [000873] [239] : session.cpp         (1714): Sent
    Verb: Length:      127 Code: 00003F00 Type: BackQryEnhanced3  ->
    ..
    <timestamp> [000873] [239] : session.cpp         (1585):
    Length:   214 Code: 0000004D Type:    <- BackQryRespEnhanced3
    ..
    <timestamp> [000873] [239] : cuqrepos.cpp        (2463):
    cuGetBackQryResp: unknown objInfo header
    format:3,/ICMMC,/L1.A1001001A15A15A90519H14440.V1
    <timestamp> [000873] [239] : dsmnextq.cpp        (1491):
    apicuGetBackQryResp: rc= 122
    <timestamp> [000873] [239] : dsmnextq.cpp        (1493):
    apicuGetBackQryResp: owner >< Name fs=>< hl=>< ll=>< state >0<
    id hi:0 lo:105962
    <timestamp> [000873] [239] : dsmnextq.cpp        (1040):
    dsmGetNextQObj EXIT: rc = >122<.
    <timestamp> [000873] [239] : dsmnextq.cpp        (1081):
    dsmEndQuery ENTRY: dsmHandle=1
    <timestamp> [000873] [239] : dsmnextq.cpp        (1113):
    dsmEndQuery: completed
    <timestamp> [000873] [239] : dsmnextq.cpp        (1120):
    dsmEndQuery EXIT: rc = >0<.
    <timestamp> [000873] [239] : dsmquery.cpp        ( 751):
    dsmBeginQuery ENTRY: dsmHandle=1 queryType: 1 state is 255
    <timestamp> [000873] [239] : session.cpp         (2176): Sess
    (103fe95e0) TRYLOCK lock action by thread (ef):
    <timestamp> [000873] [239] : session.cpp         (2288): Address
    of buffer is  4a3fab8
    <timestamp> [000873] [239] : cucommon.cpp        (1481):
    Contents of verb (0x18) Ping, length: 4:
    <timestamp> [000873] [239] : session.cpp         (1677): Send
    Verb: Length:     4 Code: 00000018 Type: Ping
    <timestamp> [000873] [239] : commtcp.cpp         (2249):
    TcpWrite: 4 bytes written of 4 requested.
    <timestamp> [000873] [239] : session.cpp         (1714): Sent
    Verb: Length:        4 Code: 00000018 Type: Ping              ->
    <timestamp> [000873] [239] : session.cpp         (2288): Address
    of buffer is  4a3fab8
    <timestamp> [000873] [239] : session.cpp         (1442): Recv
    Verb: ...
    ..
    <timestamp> [000873] [239] : session.cpp         (1584): Recv
    Verb:
    <timestamp> [000873] [239] : session.cpp         (1585):
    Length:     6 Code: 00000013 Type:    <-             EndTxn
    <timestamp> [000873] [239] : cucommon.cpp        (1497): cuPing:
    Out of sequence verb: verb: 13
    
    Here the API cannot recognize object's attribute version
    (probably backed up with a newer code level), it ends the query
    with an error (122) and begins the next query.
    Applications get protocol error if they end the query before all
    the responses were received. The API needs to do some flush in
    EndQuery, if this is not done the following GetData which issues
    cuPing gets the server's EndTxn verb and logs this as a protocol
    error.
    
      Initial Impact: Low
      Additional Keywords: TSM IBM Spectrum Protect
    

Local fix

  • apply fixing level once available.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Tivoli Storage Manager API client versions 6.3, 6.4 and 7.1  *
    * running on all platforms.                                    *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See ERROR DESCRIPTION.                                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

Temporary fix

Comments

  • If there is a next release of Tivoli Storage Manager after 7.1,
    this APAR will be fixed in that next release.
    

APAR Information

  • APAR number

    IT17145

  • Reported component name

    TSM CLIENT

  • Reported component ID

    5698ISMCL

  • Reported release

    63S

  • Status

    CLOSED FIN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-09-21

  • Closed date

    2016-10-20

  • Last modified date

    2016-10-20

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

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

Fix information

Applicable component levels

  • R71A PSN

       UP

  • R71L PSN

       UP

  • R71S PSN

       UP

  • R71W PSN

       UP

  • R71M PSN

       UP

  • R64A PSN

       UP

  • R64L PSN

       UP

  • R64S PSN

       UP

  • R64W PSN

       UP

  • R64M PSN

       UP

  • R63A PSN

       UP

  • R63L PSN

       UP

  • R63S PSN

       UP

  • R63W PSN

       UP

  • R63M PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGSG7","label":"Tivoli Storage Manager"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"63S","Line of Business":{"code":"LOB26","label":"Storage"}}]

Document Information

Modified date:
08 January 2022