IBM Support

IJ53557: LOGASSERTFAILED: DELETEHOLDCOUNT == 0 EVENTSEXPORTER.C

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

  • mmfsd might assert with follow symptom
    
    [X] logAssertFailed: deleteHoldCount == 0
    [X] return code 0, reason code 0, log record tag 0
    [X] *** Assert exp(deleteHoldCount == 0) in line 1808 of
    file
    /project/sprelgpfs521/build/rgpfs521ptf0efix1/src/avs/fs/
    mmfs/ts/cfgmgr/eventsExporter.C
    [E] *** Traceback:
    [E]         2:0x109918BC logAssertFailed + 0x47C at ??:0
    [E]         3:0x10B46494
    EventsExporter::~EventsExporter().10B462C0 + 0x1D4 at
    ??:0
    [E]         4:0x10B48778 EventsExporter::init(int,
    EventsExporterConnectionType) + 0xB8 at ??:0
    [E]         5:0x10B48E74
    EventsExporterAnchor::connectionHandlerBody(void*) +
    0x554 at ??:0
    
    Assert caused by race condition between
    EventsExporterReceiverThread and
    EventsExporterListenThread where the
    EventsExporterListenThread attempted to call the
    destructor on what is looking like an error path.
    It acquires the EE instance mutex and check and will
    assert if there is any remaining hold on the EE object,
    while the EventsExporterReceiverThread needs to acquire
    the same mutex before it can releases its hold.
    
    Reported in: 5.2.1-0
    

Local fix

Problem summary

  • GPFS asserted due to unexpected hold count on events exporter
    object during destructor.
    

Problem conclusion

  • This problem is fixed in 5.1.9.10
    To see all Spectrum Scale APARs and their respective
    Fix solutions refer to page: 
    https://public.dhe.ibm.com/storage/spectrumscale/spectrum_scale
    _apars.html
    
    
    Benefits of the solution:
    Fixed the code where it appears the EventsExporterListenThread
    attempted to call the destructor on what looks like an error
    path. It acquires the EE instance mutex and check and will
    assert if there is any remaining hold on the EE object, while
    the EventsExporterReceiverThread needs to acquire the same mutex
    before it can releases its hold.
    
    Work Around:
    None
    
    Problem trigger:
    A race condition between EventsExporterReceiverThread and
    EventsExporterListenThread and an error path where the
    destructor is called
    
    Symptom:
    Assert
    
    Platforms affected:
    All platforms
    
    Functional Area affected:
    All Scale Users
    
    Customer Impact:
    High Importance
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ53557

  • Reported component name

    SPEC SCALE DME

  • Reported component ID

    5737F34AP

  • Reported release

    522

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-02-07

  • Closed date

    2025-06-10

  • Last modified date

    2025-06-10

  • 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

    SPEC SCALE DME

  • Fixed component ID

    5737F34AP

Applicable component levels

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"STXKQY"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"522","Line of Business":{"code":"LOB69","label":"Storage TPS"}}]

Document Information

Modified date:
10 June 2025