IBM Support

IJ11181: ASSERT WHEN APPENDING DATA FROM AN INVALID USER BUFFER

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

  • Spectrum Scale may crash when writing to a file from a
    invalid user buffer, with the following error in mmfs
    logs:
    
     [X] logAssertFailed: !addrDirty || synchedStale ||
    allDataInAddrDirtyInFront(&assigned)
     [X] return code 195154765, reason code 0, log record tag
    0
     [X] *** Assert exp(!addrDirty || synchedStale ||
    allDataInAddrDirtyInFront(&assigned)) in line 7215 of
    file /project3d/src/avs/fs/mmfs/ts/fs/bufdesc.C
     [E] *** Traceback:
     [E]         2:0x558E49482395 logAssertFailed + 0x2D5 at
    ??:0
     [E]         3:0x558E49067EDD
    BufferDesc::flushBuffer(int, long long*) + 0x70D at ??:0
     [E]         4:0x558E4926704B
    OpenFile::handleBufferFlush(int, BufferDesc*, long long,
    long long, ByteRange const&, long*, int*, int*, long
    long*, cxiUioAio_t**) + 0x102B at ??:0
     [E]         5:0x558E4926990A
    OpenFile::flushAllBuffers(int, ByteRange const&, int*,
    int*, ByteRange*, int*, long  at ??:0
     [E]         6:0x558E49269E4B
    FileMetadata::flushFileData(int, ByteRange const&, int*,
    int*, ByteRange*, unsigned **) + 0x28B at ??:0
     [E]         7:0x558E4926AB51
    FileMetadata::flushFile(int, ByteRange const&, int*,
    int*, ByteRange*) + 0xB21 at ??:0
     [E]         8:0x558E4926B228 SFSSyncFile(StripeGroup*,
    long long, unsigned int, int, ByteRange const&,
    OpenFile*) +
     [E]         9:0x558E49257921
    HandleMBFSyncFile(MBFSyncFileParms*) + 0xD1 at ??:0
     [E]         10:0x558E48FA17E1
    Mailbox::msgHandlerBody(void*) + 0x3D1 at ??:0
     [E]         11:0x558E48F86596 Thread::callBody(Thread*)
    + 0x46 at ??:0
     [E]         12:0x558E48F73E62
    Thread::callBodyWrapper(Thread*) + 0xA2 at ??:0
     [E]         13:0x7F0148D72744 start_thread + 0xC4 at
    ??:0
     [E]         14:0x7F0147E0EAAD clone + 0x6D at ??:0
    uild/rttn4231713d/src/avs/fs/mmfs/ts/fs/bufdesc.C:7215:
    void logAssertFailed(UInt32, const char*, UInt32, Int32,
    onst char*):
    アサーション
    '!addrDirty || synchedStale ||
    allDataInAddrDirtyInFront(&assigned)'
    に失敗しました&
    #12290;
     [E] Signal 6 at location 0x7F0147D598D7 in process
    119949, link reg 0xFFFFFFFFFFFFFFFF.
     [I] rax    0x0000000000000000  rbx    0x00007F0144018000
     [I] rcx    0x00007F0147D598D7  rdx    0x0000000000000006
     [I] rsp    0x00007F0145083208  rbp    0x00007F01491C99EC
     [I] rsi    0x000000000001D4BC  rdi    0x000000000001D48D
     [I] r8     0xFEFEFEFEFEFEFEFF  r9     0xFEFF7DF8FEFEFF09
     [I] r10    0x0000000000000008  r11    0x0000000000000206
     [I] r12    0x0000558E4A0D9520  r13    0x0000558E4A14AB80
     [I] r14    0x0000000000000000  r15    0x000000000BA1D34D
     [I] rip    0x00007F0147D598D7  eflags 0x0000000000000206
     [I] csgsfs 0x0000000000000033  err    0x0000000000000000
     [I] trapno 0x0000000000000000  oldmsk 0x0000000010017807
     [I] cr2    0x0000000000000000
    
    Reported In:
    Spectrum Scale 4.2.3
    

Local fix

Problem summary

  • GPFS daemon died after the application using invalid data
    buffer to append data into a file in GPFS.
    

Problem conclusion

  • GPFS daemon will keep working even the application intent to use
    an invalid data buffer for data appending.
    
    
    Work around:
    Check application to avoid invalid data buffer
    
    Problem trigger:
    When application appending data to a file with an invalid data
    buffer such as not big enough or totally invalid, in some case
    the kernel will failed to transfer data from user space buffer
    into the GPFS page pool, as a result a buggy buffer desc is
    left and leading to the assert in later data flush.
    
    Symptom:
    GPFS daemon crash.
    
    Platforms affected:
    All
    
    Functional Area affected:
    All
    
    Customer Impact:
    High Importance, the gpfs will crash, file system will be
    unmounted.
    
    Changed Externals:
    Fixed a GPFS daemon crash problem when application appending
    data with an invalid user data buffer.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ11181

  • Reported component name

    SPECTRUM SCALE

  • Reported component ID

    5725Q01AP

  • Reported release

    423

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-11-08

  • Closed date

    2018-11-08

  • Last modified date

    2019-06-28

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

    IJ11098

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

Fix information

  • Fixed component name

    SPECTRUM SCALE

  • Fixed component ID

    5725Q01AP

Applicable component levels

  • R423 PSY U885025

       19/06/28 I 1000

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STXKQY","label":"IBM Spectrum Scale"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"423","Edition":"","Line of Business":{"code":"LOB26","label":"Storage"}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSFKCN","label":"General Parallel File System"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"423","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
28 June 2019