Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Categories z/TPF
Created by Guest
Created on May 5, 2021

(TPFUG/Visa) Need a mechanism to identify inconsistent views of structure layouts

Consistency of structure definition across all code accessing the structure is critical for correct code. Database corruption or other runtime errors can occur if source component A thinks structure X on file is packed but source component B thinks structure X on file is not packed. Inconsistencies could exist within the same CSO, or across different CSOs.

If packing of structures is done using #pragma pack and someone makes a mistake with its usage (e.g. codes #pragma pack(1) and forgets to code #pragma pack(), or codes #pragma pack(1) before #includes for other headers) then it's easy to end up packing more than was intended, or no longer packing structures that were supposed to be packed. The errors introduced can also be different across different source components.

Packing inconsistencies are very hard to identify and fixes to correct problems are very hard to validate. In fact fixing a #pragma pack issue by moving the #pragma pack or adding a new balancing #pragma pack(1) or #pragma pack() as appropriate can result in new inconsistencies being created inadvertently. So fixes can result in runtime errors or database corruption without a solid means of validating the impact of the changes.

We need a tool that can be used to :
1) identify inconsistent layouts for the same structure across different code components.
- Scope examples for this could include the entire code base, a given directory or set of directories, a TK project.
2) provide a means of comparing the layout of structures across different versions of the same source component (e.g. prod version vs a development version). The need here is to be able to see the consequence of making a change to e.g. correct a prior inconsistency, or simply to ensure that a code change hasn't changed a structure layout by mistake.

Such a tool would ideally be able to be run independently, or as an optional part of the build process.

Such a tool would ideally allow the customer some flexibility in how structure information was recorded. e.g. file system file or specific type of database, such as Mongo

Idea priority High
  • Guest
    Reply
    |
    Nov 19, 2024
    From the IBM TPF lab: The problem was caused by the way headers were ordered. As a work-around, a modification can be made to tpfxmlgen to provide information that can be used to identify inconsistencies. Based on priorities and resources, the TPF lab does not intend to provide any more than this work-around.