27.12.10

SAP Note 16038 - Assert Failed: Internal error - segmentation viol.

Symptom:
The Informix online server terminates.

In the database log file ("online.log.file") you can find the following entries at this time:
hh:mm:ss Assert Failed: Internal Error - Segmentation Violation
hh:mm:ss Who: Session(...) Thread(...)
hh:mm:ss Results: OnLine must abort
hh:mm:ss Action: Reinitialize shared memory
hh:mm:ss See Also: ...
hh:mm:ss rsinit.c, line ..., thread ..., proc id ..., .
hh:mm:ss PANIC: Attempting to bring system down

In many cases, the memory extract ("shared memory dump") contains among other things the symbol "lockhash". This is the case when the following command returns a number greater than 0:
strings | grep lockhash" | wc -l

Additional key words

ASSERT FAILED, SEGMENTATION VIOLATION, PTS, PTS_BUG, PTS_BUG_72926, SPAM

Cause and prerequisites

This is caused by an error in the database software of Informix or by a configuration problem of the database.

    1. Complex SQl statements (particularly those with large IN clauses) cause intensive use of the stacks in the corresponding Informix thread.
    2. Many tables in a database (this is the case with SAP R/3) can cause the hash lists of the Informix dictionary to be copied too early.
Solution
    1. Increase the value of parameter STACKSIZE in the Informix configuration file $INFORMIXDIR/etc/$ONCONFIG. The value range of this parameter is
    from 32 to 256 (kilobytes).
    For this also refer to the sections on the parameter STACKSIZE in Note 38307.
    2. Increase the values of the parameters DD_HASHSIZE and DD_HASHMAX in file $INFORMIXDIR/etc/$ONCONFIG as follows:

DD_HASHSIZE 511 # Length of DD Hash
DD_HASHMAX 20 # Width of DD Hash

Also refer to the sections on the parameters DD_HASHSIZE and DD_HASHMAX in Note 38307.

Error correction:
The error was corrected in the database versions 7.23. UC4 and in all subsequent versions.

No comments:

Post a Comment